web-dev-qa-db-ja.com

コメントとコメントフォームを編集してテーマを設定する方法

drupal 7とアダプティブテーマを使用してdrupal 7のサイトを構築しています。

レシピというコンテンツタイプをいくつか作成しました。パネルにレシピを表示するために、ビューにコンテンツペインを作成しました。コメントとコメントフォームを同じパネルに追加します。

次に、レシピの下にコメントフォームと他のすべてのコメントを表示します。私の問題は、コメントフォームのプレゼンテーションを編集する方法がわからないことです。コンテンツタイプのコメントフィールドを確認したところ、「comment_body」フィールドのみが表示されました。

フィールドを編集するにはどうすればよいですか。また、コメントとコメントフォームでのフィールドの表示方法を教えてください。

以下はスクリーンショットです。
「あなたの名前」フィールドを削除し、「保存」ボタンを「コメントを投稿」に変更します。どうやってやるの?

enter image description here

ありがとう!

1
EB84

comment.tpl.phpという名前のファイルを、ベースATテーマが置かれているフォルダーからコピーできます。 Adaptivetheme\at_core\templates)を作成し、sites\all\themes\YOUR_AT_SUBTHEME\templatesに貼り付けます。

レシピがコンテンツタイプのマシン名であると仮定すると、特にコメントのテーマを設定する場合は、comment--recipes.tpl.phpという名前を付けることもできますレシピ。

次に comment.tpl.php API の助けを借りて(phpファイル自体にも多くの情報を見つけることができます)、コメントの表示方法を編集できます。

つまり、代わりに

_print render($content);
_

特定のフィールドを表示できます。

_print render($content['comment_body']);
_

または特定のフィールドを非表示にする

_hide($content['author']);
print render($content);
_

フォーム自体を変更するには、カスタムモジュールでhook_form_alter()を使用する必要があります。

_/**
 * Implements hook_form_alter().
 */
function YOUR_CUSTOM_MODULE_form_alter(&$form, &$form_state, $form_id) {
  //get the form id
  drupal_set_message("Form ID is : " . $form_id);
  $print = '<pre>' . print_r($form, TRUE) . '</pre>';
  drupal_set_message($print);

  switch($form_id){
    case 'YOUR_COMMENT_FORM_ID':
      //alter your form (with the complete correct fields names)
      $form['YOUR_FIELD_YOUR_NAME']['#type'] = 'hidden';
      $form['YOUR_FIELD_SUBMIT']['#value'] = t('Post comment');
    break;
  }
}
_

Develがインストールされている場合はdpm($form)を使用するか、または

_$print = '<pre>' . print_r($form, TRUE) . '</pre>';
drupal_set_message($print);
_

正確なフォームフィールドを取得するため

3
Kojo

@Kojoのソリューションフォームを使用するときに、独自のモジュールを使用したくない場合は、template.phpに関数を作成します。

function THEMENAME_form_FORMID_alter(&$form, &$form_state) {
    //...
}

例えば

function bartik_form_comment_form_alter(&$form, &$form_state) {
    //...
}

このコードはすべてのコメントフォームを変更します。より具体的にして、あるタイプのフォームのIDを提供できます。 [〜#〜] formid [〜#〜]を取得するには、レンダリングされたページを開き、htmlで次のフィールドを見つけます。

<input type="hidden" value="HERE-WILL-BE-THE-FORMID" name="form_id">
1
hennadiy.verkh

コメントフォームを読み込むことでこれを行うことができます。

$ comment = comment_load($ cid); // $ cidはコメントIDです$ form = drupal_get_form( 'comment_form'、$ comment); drupal_render($ form);を印刷します。

url: https://api.drupal.org/api/drupal/modules!comment!comment.module/function/comment_load/7.x

0
Drock