1

私はdrupal7サイトを持っていて、コメントフォームを常にプレーンテキストになるようにカスタマイズしたいと思っています(ユーザーと認証されているかどうかに関係なく)。テキスト形式の設定が修正されるので、コメント本文の下部に表示される小さな宣伝文句を削除したいと思います。

一般的に、コメントフォームのルックアンドフィールをカスタマイズするにはどうすればよいですか?

アップデート

Berdirの指示に従って、#after_build関数を追加しました。hook_form_comment_form_altertemplate.phpファイルに関数を追加することでこれを行いました。その新しい関数とそれが呼び出すカスタム関数は次のとおりです。

function mytheme_form_comment_form_alter(&$form, &$form_state, &$form_id)
{ 
    $form['comment_body']['#after_build'][] = 'configure_comment_form';
    //$form['comment_body']['und']['#after_build'][] = 'configure_comment_form';
}

function configure_comment_form(&$form, &$param1, &$param2)
{
    var_dump($form);
}

明らかに、が出力されるときにconfigure_comment_form関数が呼び出されていることがわかりvar_dumpます。コードに示されている配列configure_comment_formの両方の場所にある#after_buildにを追加してみました。$form両方で同じ結果が得られます。コメント本文のフォームフィールドが表示されなくなります。

ビルド後の既存の関数を上書きしていません。 $form['comment_body']['#after_build']関数を追加すると存在せず$form['comment_body']['und']['#after_build']、カスタム関数を追加すると次のようになります。

["#after_build"]=>
      array(2) {
        [0]=>
        string(30) "field_form_element_after_build"
        [1]=>
        string(22) "configure_comment_form"
      }
4

2 に答える 2

1

コメント本文の下にあるフィルター ボックスを削除するには、テーマの template.php を使用して次のフックを実装します。

function theme_filter_tips($variables) {
    return '';
}
function theme_filter_tips_more_info() {
    return '';
}
function theme_filter_guidelines($variables) {
    return '';
}

これはフィルター/ヒント ボックスのアウトラインを残すだけで、テーマの CSS で次のように処理できます。

.filter-wrapper {
    display: none;
}

そのクラスを非表示にすることで他の機能が壊れるかどうかはわかりませんが。

于 2011-08-05T07:42:42.163 に答える
0

http://drupal.org/project/privatemsgにも似たようなことをしました

まず、「'#after_build' => array('privatemsg_check_format_access'),」のように、ボディ フォーム フィールドに #after_build 関数を追加します (フォームを変更するため、まずそのような関数が既に存在するかどうかを確認してから追加します。オーバーライドしないでください)

次に、その関数で、フォーマット フィールドの #access を FALSE に設定し、#default_value を任意の値に強制します。privatemsg_check_format_accessを参照

于 2011-02-04T07:56:10.203 に答える