web-dev-qa-db-fra.com

Obtenir le nom d'affichage de hook_preprocess_views_view

Je souhaite utiliser hook_preprocess_views_view afin que plusieurs vues partagent le même modèle, en ajoutant theme_hook_suggestions comme décrit dans cet article: http://greenash.net.au/oughtts/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';
  }
}

Le problème est que je dois spécifier à quel affichage de la vue particulière il doit s'appliquer, plutôt que de la vue entière elle-même. J'ai essayé d'imprimer les $ vars, ce qui entraîne un énorme tableau récurrent qui ne semble inclure le nom d'affichage nulle part.

Je suis également conscient que vous le faites via le balisage dans l'interface utilisateur des vues. Le même problème se produit cependant - je ne peux pas ajouter une balise à un affichage particulier d'une vue.

S'il y a une autre façon de le faire, je suis tout ouïe!

7
Chris

Vous pouvez obtenir l'ID d'affichage via le current_display propriété de l'objet View, par exemple.

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