Объединение нескольких шаблонов views в один

При темизации вьюса иногда бывает необходимость сделать вывод полей для нескольких вьюх одинаковый, при этом не затрагивая шаблоны для других представлений. К примеру для темизации вывода полей в шаблоне views-view-fields.tpl.php для списка необходимых представлений views нам предлагает использовать следующие шаблоны: views-view-fields--new-articles.tpl.php, views-view-fields--top-articles.tpl.php и views-view-fields--related-articles.tpl.php для представлений с соответствующими именами - new_articles, top_articles и related_articles. Чтобы не создавать три шаблона с одинаковым выводом, можно воспользоваться preprocess функциями views и создать для всех трех представлений один шаблон, определив его в theme_hook_suggestions.

В файл template.php используемой темы запишем следующий код:


function MYTHEME_preprocess_views_view_fields(&$vars) {
  // Перечисляем имена представлений
  $list_views = array( 
    'new_articles',
    'top_articles',
    'related_articles',
  );
  if (in_array($vars['view']->name, $list_views)) {
    $vars['theme_hook_suggestions'][] = 'views_view_fields__combined_articles';
  }
}

Теперь для всех трех вьюх будет один шаблон - views-view-fields--combined-articles.tpl.php