web-dev-qa-db-ja.com

プログラムでビューの特定のノード参照を選択する方法

2つのカスタムノードタイプがあります。catalog_itemとcategoryです。

Catalog_itemノードには、ユーザーが複数のカテゴリーノードを選択できるcckノード参照フィールドがあります。 phpコードに基づいて、ノード参照から特定のカテゴリを選択できるようにしたいのですが。これはビューで可能ですか?

3
James

ビューAPI内で、このフィールドを引数として使用し、次にPHPを使用してデフォルトの引数を指定できます。これにより、特定のカテゴリノードが参照されているすべてのcatalog_itemsにビューが制限されます。

コード/モジュール/テンプレート/などでこれを行う場合は、次のように行うこともできます:

$nid=WHATEVERPHPCODEYOUWANT;
return views_embed_view(VIEWNAME,'default',$nid); // 'default' is the views display
2
Jimajamma

他のオプションは viewsフック の1つを使用することです。

私は信じますこれはうまくいきますが、確認するためにテストしていません:

_function mymodule_views_pre_view (&$view, &$display_id, &$args)
{
  if ($view->name == "myview" && $view->current_display == "mydisplay") {
    $nid = some_function_to_get_the_nid();
    $view->args = array($nid);
  }
}
_

ディスプレイハンドラで引数を設定する必要があるかどうかも思い出せません。

このようなもので、あなたは_$view_を dpm() で突き抜け、さまざまなフックを試す必要があります。

0
mpdonadio