Варианты и файлы шаблонов в Drupal7

Формирование шаблона сущности производиться в функциях обработки и предварительной обработки для каждой конкретной сущности.
Рассмотрим пример для сущности 'node'

Переменная отвечающая за формирование имени шаблона

$variables['theme_hook_suggestions'][]

  1. /**
  2.  * Препроцесс для файла «node.tpl.php».
  3.  */
  4. function mytheme_preprocess_node(&$variables) {
  5. if ($variables['type'] == 'article') { // Машинное имя типа материала = article
  6. $current_month = date('F');
  7. // Наступил декабрь
  8. if ($current_month=='December')
  9. $variables['theme_hook_suggestions'][] = 'node__article_happynewyear';
  10. // Наступило лето
  11. if (($current_month=='June') ||
  12. ($current_month=='July') ||
  13. ($current_month=='August'))
  14. $variables['theme_hook_suggestions'][] = 'node__article_summer';
  15. }
  16. }

Пример для обертки html

  1. function mythemename_preprocess_html(&$vars) {
  2. if (arg(0) == 'qrule') {
  3. $vars['theme_hook_suggestions'][] = 'html__qrule';
  4.  
  5. }

}

На выходе получаем массив

  1. theme_hook_suggestions = array(
  2. 0 => node__article,
  3. 1 => node__2,
  4. 2 => node__article_summer,
  5. );

Для визуализации будет использоватся последний элемент в массиве.

Если определена переменная $theme_hook_suggestion
То ее значение будет приоритетнее

Russian
Категория: 
The code has been tested and works