Posted by bzj00220 on September 5, 2014 at 6:32am
新しいコンテンツタイプを作っています。
すでに会員になっている者同士がユーザー名などを
表示させないでやりとりできるようにしたいと思っています。
仮にコンテンツタイプの内部名称をbbsとした場合
/admin/structure/types/manage/bbs
の表示設定で投稿者の情報を非表示にできます。
コメントの投稿者の表示についても
display suiteというモジュールを使えば投稿者欄を非表示にできそうです。
ところが、実際に投稿して見ると投稿したノードのコメントの投稿欄に
ログインしているユーザー名が添付した画像のように
自動的に表示されています。
コメントの投稿欄に自動的に表示されているユーザー名を
非表示にしたいのですがなにかいい方法はあるでしょうか?
| Attachment | Size |
|---|---|
| comment.png | 43.41 KB |
Comments
CSS または hook_form_alter() で...
コメントの投稿欄に表示されるユーザー名を非表示にされたい、とのことですね。
いくつかのアプローチが考えられるかと思います。
まず、見かけ上非表示になるだけでよいのであれば、スタイルシートで
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;
}
?>
このアプローチですと、フォームには表示されないけどデータベース上には投稿者がきちんと記録される形になるようです。
ご参考になれば幸いです。