web-dev-qa-db-ja.com

コメントフォーム/レンダリングをnode.tpl.phpから(別の領域に)移動します

Node.tpl.phpファイルの外にあるノードの$content['comments']部分をレンダリングし、テーマの別の領域にコメント(フォームとすべて)をレンダリングしたいと思います。

私は Commentsblock がこれらの行に沿って何かを行うことに気づきましたが、ビューが必要であり、完全ではないようです。

Node.tpl.php内で配列をレンダリングするのではなく、特定のノードタイプのページにいる場合、コメントのレンダリング可能な配列全体をpage.tpl.phpテンプレートに取り込むためにいくつかの前処理を行うことはできますか? ( このコメント の行に沿った何か)。

また、単に$ content ['comments']をレンダリングせず、他の方法(ビュー、Commentsblockの動作など)でコメントを取得すると、Drupalがすべてのコメントtwice(悪いパフォーマンスなど)?

2
geerlingguy

あなたはすべきノードテンプレートのコメントを単にhide()し、次にmenu_get_object()を呼び出してそれらをそこに出力するブロックを作成することができます...

6
Jimajamma

これにはパネルを使用することをお勧めします。

  1. パネルモジュールをアクティブにする
  2. ノードのオーバーライド「node_view」を有効にします
  3. バリアントを追加し、ウィザードを実行します。ウィザードの最も重要な部分は、 "Node:type"がこれを実行するノードタイプである選択ルールを作成することです。または、基準に一致する他の選択ルール。
  4. ノードのコンテンツに適した領域で小さな歯車をクリックします-> Node-> Node Content。
  5. コメントフォームの適切な領域で小さな歯車をクリックします-> Node->コメントフォーム。

その他のリソース: ページマネージャーとパネルのビデオ紹介

2
Letharion