web-dev-qa-db-ja.com

hook_preprocess_views_viewから表示名を取得します

この記事で説明されているようにtheme_hook_suggestionsを追加して、複数のビューで同じテンプレートを共有するために、hook_preprocess_views_viewを使用したいと思います。 http://greenash.net.au/thoughts/2014/04/sharing-templates-between -multiple-drupal-views /

function mytheme_preprocess_views_view(&$vars) {

  if (in_array(
    $vars['view']->name, array(
      'whatever'))) {
    $vars['theme_hook_suggestions'][] =
      'whatever';
  }
}

問題は、ビュー全体ではなく、特定のビューのどの表示に適用するかを指定する必要があることです。 $ varsを出力してみたところ、表示名がどこにも含まれていないように見える巨大な繰り返し配列ができました。

また、ビューのUIでタグ付けを使用してこれを行っていることも知っています。同じ問題が発生しますが、ビューの特定の表示にタグを追加できません。

私がこれを達成できる別の方法がある場合、私はすべて耳です!

7
Chris

表示IDは、Viewオブジェクトのcurrent_displayプロパティを通じて取得できます。

$view = $vars['view'];
if ($view->name == 'foo' && $view->current_display == 'bar') {
  // ...
}
15
Clive