コメントの投稿欄に自動的に表示されているユーザー名を非表示にしたい

Events happening in the community are now at Drupal community events on www.drupal.org.
bzj00220's picture

新しいコンテンツタイプを作っています。
すでに会員になっている者同士がユーザー名などを
表示させないでやりとりできるようにしたいと思っています。

仮にコンテンツタイプの内部名称をbbsとした場合

/admin/structure/types/manage/bbs
の表示設定で投稿者の情報を非表示にできます。

コメントの投稿者の表示についても
display suiteというモジュールを使えば投稿者欄を非表示にできそうです。

ところが、実際に投稿して見ると投稿したノードのコメントの投稿欄に
ログインしているユーザー名が添付した画像のように
自動的に表示されています。

コメントの投稿欄に自動的に表示されているユーザー名を
非表示にしたいのですがなにかいい方法はあるでしょうか?

AttachmentSize
comment.png43.41 KB

Comments

CSS または hook_form_alter() で...

hgoto's picture

コメントの投稿欄に表示されるユーザー名を非表示にされたい、とのことですね。

いくつかのアプローチが考えられるかと思います。

まず、見かけ上非表示になるだけでよいのであれば、スタイルシートで display: none; にするアプローチが最も早いかと思います。

そうではなく HTML 上も非表示にしたい(削除してしまいたい)とのことでしたら、 カスタムモジュールを作ってその中で hook_form_alter() を書く形が最もストレートかと思います。

英語の投稿にはなりますが、 bzj00220 さんとちょうど同じニーズを持たれた方の投稿があります。

https://www.drupal.org/node/1844976
http://planken.org/2013/10/drupal-remove-your-name-elements-comment-form

要はコメント投稿フォームに対応する hook_form_alter() を書いてその中に次のコードを書く、というような形です。

<?php
$form
['author']['#access'] = FALSE;
?>

対象とするコンテンツタイプを絞り込みたい場合には、 $form['#node'] の中身を見て対象コンテンツのタイプ(ノードタイプ)をチェックする必要があるかと思います。

<?php
# コンテンツタイプが bbs の場合にだけ、コメント投稿フォームのユーザー名を非表示にする
if ($form['#node']->type === 'bbs') {
 
$form['author']['#access'] = FALSE;
}
?>

このアプローチですと、フォームには表示されないけどデータベース上には投稿者がきちんと記録される形になるようです。

ご参考になれば幸いです。

日本 コミュニティ: Drupal Japan User Group

Group organizers

Group categories

Group notifications

This group offers an RSS feed. Or subscribe to these personalized, sitewide feeds:

Hot content this week