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


7

:私は、この記事で説明したように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でタグ付けすることでこれを実行していることも承知しています。同じ問題が発生しますが、ビューの特定の表示にタグを追加できません。

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

回答:


15

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

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

あぁ、どうして...どうして見なかったの?ありがとう!
Chris

1
あわやあわや、私はこの百倍以上を使用している必要がありますし、私はまだ探しに行くdisplay_nameか、display_id毎回...
クライヴ

今、私はそれが私のテンプレートを拾わないという問題を抱えていますが、それは別の質問です...
Chris

3
drupal 8 $view->id()では、代わりにプロパティ名を使用 します
anonym-developer
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.