drupal 7とアダプティブテーマを使用してdrupal 7のサイトを構築しています。
レシピというコンテンツタイプをいくつか作成しました。パネルにレシピを表示するために、ビューにコンテンツペインを作成しました。コメントとコメントフォームを同じパネルに追加します。
次に、レシピの下にコメントフォームと他のすべてのコメントを表示します。私の問題は、コメントフォームのプレゼンテーションを編集する方法がわからないことです。コンテンツタイプのコメントフィールドを確認したところ、「comment_body」フィールドのみが表示されました。
フィールドを編集するにはどうすればよいですか。また、コメントとコメントフォームでのフィールドの表示方法を教えてください。
以下はスクリーンショットです。
「あなたの名前」フィールドを削除し、「保存」ボタンを「コメントを投稿」に変更します。どうやってやるの?
ありがとう!
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);
_
正確なフォームフィールドを取得するため
@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">
コメントフォームを読み込むことでこれを行うことができます。
$ 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