コメントからビューを作成しました。ビューのボタンにフッターでコメントフォームを追加したい。 「views_php」モジュールをインストールして「Global:PHP」をフッターに追加し、フッターにコメント追加フォームを印刷するこのコードを記述します。
$comment = new stdClass;
$comment->nid = $row->nid;
$form = drupal_get_form('comment_form', $comment);
print render($form);
しかし問題は、印刷されたフォームにcomment_bodyまたは他のカスタムフィールドがないことです。実際には、作成者、件名、保存ボタンだけです。
私もこのコードを試しました:
print drupal_render(drupal_get_form("comment_form", (object) array('nid' => $data->nid)));
または
print drupal_render(drupal_get_form("comment_node_news_form", (object) array('nid' => $results[0]->nid)));
しかし、どれも正しく機能しませんでした!
<?php
$comment = new stdClass;
$comment->nid = $row->nid;
$form = drupal_get_form('comment_form', $comment);
print render($form);
?>
私のために働く。 Content:Nidフィールドが[〜#〜] above [〜#〜]Global:PHPフィールド、それ以外の場合(その下にある場合)$row->nid
は変数として使用できません。
Qをより注意深く読んだ後、フッターにそれを入れたいので、フォームのノードIDを指定する必要があります。 (このコメントが格納されるノードの下)例の場合:/ node/1
<?php
$comment = new stdClass;
$comment->nid = 1;
$form = drupal_get_form('comment_form', $comment);
print render($form);
?>
/ node/5が必要な場合は、この行を$comment->nid = 5;
に変更します
[〜#〜]または[〜#〜]
これを動的にしたい場合、nidは表示しているページに基づいてください。次に使用します
<?php
if ($node = menu_get_object()) {
$comment = new stdClass;
$comment->nid = $node->nid;
$form = drupal_get_form('comment_form', $comment);
print render($form);
}
?>
注:フォームはビューのプレビューではレンダリング/表示されませんが、ノードにアクセスすると表示されます。