特定のタグでタグ付けされた「ニュース」タイプのすべてのコンテンツを表示するビューがあります。 "world"(ビューへのパラメーターとして渡されます)。
ビューマシン名はnews
です。コンテンツペインタイプ(マシン名panel_pane_1
)の表示があります。また、「field_tags」に設定されたコンテキストフィルターもあります。
このビューコンテンツペインをプログラムでレンダリングし、タグ値「world」をそれに渡す方法は?
(ctools_content_render
は見つかりましたが、これがこのタスクに適切な関数であるかどうかと、その使用方法はわかりません)
使用できます
例えば
print views_embed_view('news', 'panel_pane_1', 'world');
追加のパラメーターは、引数として、つまりコンテキストフィルター値として渡されます。
views_content_views_panes_content_type_render() を使用できます。以下に詳細な例を示します。
// Important to include target content type.
// You can also use 'views' content type but with a different render function.
module_load_include('inc', 'views_content', 'plugins/content_types/views_panes');
// Use your views machine name and display name here.
$subtype = 'views_name-display_name';
// Adjust settings to yours. You can debug ctools_content_render to see
// all available settings in $conf. Or check
// views_content_plugin_display_panel_pane::option_definition().
$conf = array(
'items_per_page' => 2,
'offset' => 0,
'more_link' => 1,
'override_title' => 1,
'override_title_heading' => 'blablalba',
'override_title_text' => '',
'pager_id' => 0,
'use_pager' => 0,
);
// (optional) Prepare ctools context and context keys if your argument type
// is 'context'. Check handling of other argument types in
// views_content_views_panes_content_type_render().
$conf['context'] = array('mycontext');
$context = array(
'mycontext' => ctools_context_create('node', $node),
);
// Render views pane.
$pane = views_content_views_panes_content_type_render($subtype, $conf, $args, $context);
// Get pane HTML.
$output = render($pane->content);