[Drupal 7]
ビューで作成した「handy_tips-block_1」というブロックがあります。
次に、ノードのbodyフィールドに挿入します。
どうすればよいですか?
here に関するガイドを見つけました。次のコードを使用することをお勧めします:
<?php
print $block = module_invoke('views', 'block_view', 'handy_tips-block_1');
print render($block['content']['#content']);
?>
ただし、出力されるのは「配列」という言葉だけです。 (PHP bodyフィールドの入力フィルターを有効にしました)。
注:投稿されたコードでは、「ビュー」を「ブロック」などのさまざまなアイテムに置き換えてみました。 IDとして「handy_tips-block_1」を使用しました。これは、ブロック管理ページの構成リンクに表示されるためです。
確かに配列なので、出力は「配列」です。次に、配列を印刷して、使用できるフィールドを確認するとします。
print_r($block);
print_r($block['content']['#content']);
print_r(render($block['content']['#content']);
ビューの表示については、テンプレート内で次のコード行を使用して、ビューを呼び出すことができます。
echo views_embed_view('view-name', $display_id = 'display-name');
たとえば、node.tl.php内にtest view
というビューを挿入し、マシン名block_test
で彼のブロック表示を使用したい場合は、次のように使用できます。
echo views_embed_view('test_view', $display_id = 'block_test');
(ビューのマシン名およびディスプレイのマシン名を使用することを忘れないでください)。
この情報がお役に立てば幸いです。
テンプレートファイルにビューを埋め込む私のお気に入りの方法は、 views_embed_view()関数 を使用することです。
使い方はとても簡単です。
<?php print views_embed_view('view-name', 'display-name','arguments'); ?>
フィールドのようにモジュールにビューを挿入できる Entity Views Attachment モジュール、またはカスタマイズできる Display Suite モジュールを使用することをお勧めしますノードをレイアウトし、そこにあらゆる種類のブロックを挿入します。
これは古いスレッドであることに気づきましたが、これも探していたところ、 BlockReference モジュールが見つかりました。ブロックをフィールドとしてノードに関連付けることができます。
御馳走です!