Темізація сторінки створеної у Views. Робота з файлом page--views--[view_name].tpl.php

Темизация страниц VIEWS в Drupal 7
Оцінка матеріалу: 
Average: 5 (2 votes)

За домогою модуля Views в Друпалі 7 можна виводити безліч сторінок, однак темізувати їх за допомогою NID (як звичайну сторінку) не вийде, оскільки вона у них просто відсутня. Сьогодні ми розглянемо приклад темізації сторінки створеної у Views, яка видає пошук товару по сайту. Назва представлення Search page api.

Темизация страницы

Щоб темізувати цю сторінку у файл template.php добавляємо наступний код:

function НАЗВА_ТЕМИ_preprocess_page(&$variables, $hook) {
  if (!empty($variables['page']['#views_contextual_links_info']['views_ui']['view_name'])) {
    $variables['theme_hook_suggestions'][] = 'page__views__' . $variables['page']['#views_contextual_links_info']['views_ui']['view_name'];
    $variables['theme_hook_suggestions'][] = 'page__views__' . $variables['page']['#views_contextual_links_info']['views_ui']['view_name'] . '__' . $variables['page']['#views_contextual_links_info']['views_ui']['view_display_id'];
  }
}

 Тепер нашу сторінку можна редагувати двома файлами: page--views--[view_name].tpl.php та page--views--[view_name]--[view_display_id].tpl.php

Я використав перйший і добавив у корінь теми файл із назвою page--views--search_page_api.tpl.php. Скидаємо кеш і має темізовану сторінку. 

Якщо у файлі template.php уже використовувалась функція preprocess_page із попереднього уроку по темізація сторінок, тоді вміст template.php буде наступним

<?php

function НАЗВА_ТЕМИ_preprocess_page(&$variables, $hook) {
   //some other stuff
    if (isset($variables['node'])) {  
    $variables['theme_hook_suggestions'][] = 'page__type__'. $variables['node']->type;
    $variables['theme_hook_suggestions'][] = "page__node__" . $variables['node']->nid;
  }
  if (!empty($variables['page']['#views_contextual_links_info']['views_ui']['view_name'])) {
    $variables['theme_hook_suggestions'][] = 'page__views__' . $variables['page']['#views_contextual_links_info']['views_ui']['view_name'];
    $variables['theme_hook_suggestions'][] = 'page__views__' . $variables['page']['#views_contextual_links_info']['views_ui']['view_name'] . '__' . $variables['page']['#views_contextual_links_info']['views_ui']['view_display_id'];
  }
}