コメントの作成者名からデフォルトの「匿名」を削除するにはどうすればよいですか?


7

コメントフォームフィールド(コアコメントモジュール)では、コメンテーターが独自のエピソードを思い付くように、コメントの作成者名を空のままにします。

それを行う最も簡単な方法は何ですか?


私の現在のサイトはD6ですが、D7への移行を開始しているので、両方の回答が役立つでしょう。
daphshez

回答:


1

これを行う方法がいくつかあります。

  1. カスタムモジュール-誰かがあなたのために作成してくれました-http://drupal.org/node/240610#comment-1096024
  2. 文字列オーバーライドの使用-匿名を[空の文字列]に変更します
  3. コメントモジュールから削除します-コンテンツ管理->コンテンツタイプとノードタイプの[編集]をクリックして、「匿名の投稿者は連絡先情報を入力できない場合があります」を有効にします。
  4. JavaScriptを使用する-誰かがこれも書いた-http://drupal.org/node/240610#comment-2051378

おそらく他の要件に合わせてフォームを変更する際の柔軟性が高まるため、おそらくオプション1を選択します。


私はオプション1を使用しました
daphshez

また、オプション3は実際には私の質問に答えません-匿名ユーザーにコメントを残すことを許可します。
daphshez

最後に、realnameモジュールを使用すると、これらの変更が上書きされることに注意してください。
daphshez 2011年

3

hook_form_alter()

http://api.drupal.org/api/drupal/modules--system--system.api.php/function/hook_form_alter/7

デフォルトのテキストを空に設定するなど、任意のフォームに接続して変更できます。以下は、有効な要素についてのヘルプです。

http://api.drupal.org/api/drupal/developer--topics--forms_api_reference.html

開始する最良の方法は、mymodule_form_alter()関数を作成し、ページの上部に表示されるように$form_id使用方法を印刷してフォームIDを判別するprintことです。(さらに良いことに、Dvelalステータスメッセージに出力するにはdevelモジュールを使用してください)。フォームIDがわかったら、を追加して、ifそのフォームのみを操作するようにし、配列を変更して不要なデフォルト値を削除できます。

実装例については、ほとんどすべてのモジュールを見てください。多くのモジュールがこのフックを使用しています。頭の上の具体的な例は思いつきませんが、負荷はあります。

編集:これは問題についての良いLullabotブログ投稿です...この点でDrupal 6とDrupal 7の間に大きな違いはありません。AFAIK:http ://www.lullabot.com/articles/modifying-forms-drupal-5- および-6


2
コードが単一のフォームに固有の場合は、実装しますhook_form_FORM_ID_alter()。これはhook_form_alter()、すべての実装の前に呼び出され、フック関数に渡されるパラメーターの値を確認する必要はありません。
kiamlaluno

hook_form_FORM_ID_alter()は、タイミングの問題があるため、常にhook_form_alter()に代わる優れた方法とは限りません。また、hook_form_alter()と同時に実行されず、変更するフォームの正しいバージョンを取得できない場合があります。少なくともそれは私の経験でした。
解読する

ありがとう。$ form_idは「comment_form」です。drupal.org/node/240610#comment-1096024で、この特定のフォームを変更するためのいくつかのより詳細な手順があります。
daphshez

2

カスタムモジュールを使用することを決定したが、明確な理由もなく[ 名前]入力ボックスに[ 匿名]が表示され、それらのhook_form_alter(またはhook_form_comment_form_alter)は大丈夫であるという人へのメモです。

のモジュールJavascriptが以前に使用した名前を保存するために使用するcomment_info_nameCookie を必ず削除してくださいcomment。見つけるのに少し時間がかかりました...

ここではすべて1か所で説明されています。http//jan.tomka.name/blog/how-remove-anonymous-name-comment-form


1

これは、私がJavaScriptで行う一種の簡単な調整です。

$(document).ready(function() {
    var editbox = $('#edit-name');
    if (editbox.val() == 'Anonymous' {
        editbox.val('');
    }
});

テーマのどこかにポップし、ページが読み込まれると名前フィールドがクリアされます。


1
また、ユーザーがJavaScriptを無効にしている場合はどうなりますか?
2011年

@解読:AnonymousJavaScriptが無効になっているとまだ言っているボックスは、優雅な低下の範疇に入ると思います。質問は「それを行う最も簡単な方法は何ですか?」でした。、そしてテンプレートに数行のJavaScriptを追加する方が、モジュールを作成するよりも簡単だと思います。
ポールジョーンズ
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.