Вопростемизация page.tpl.php

Добрый день.
Возможна ли темизация page.tpl.php в зависимости от представления Views?

типа как тут
views-view--classified--page.tpl.php
только для page.tpl.php.

Комментарии

Аватар пользователя Spleshka
Spleshka написал:

Скажите, какая версия Друпала?

09.12.2011 14:48
Аватар пользователя Гость
Гость написал:

7.10

09.12.2011 15:05
Аватар пользователя Spleshka
Spleshka написал:

Накидал немного кода (писать в template.php):

function ИМЯТЕМЫ_preprocess_page(&$vars) {
  $path = implode('/', arg());
  $route = db_query_range('SELECT * FROM {menu_router} WHERE path = :path', 0, 1, 
    array(':path' => $path))->fetchObject();
 
  if (isset($route->page_callback) && $route->page_callback == 'views_page') {
    $name = unserialize($route->page_arguments);
    $suggestion = 'page__views__' . implode('__', $name);
    $vars['theme_hook_suggestions'][] = $suggestion;
  }
}

Если имя вьюхи, например, example, то шаблон будет page--views--example--page.tpl.php.

Пример работает только для страниц, созданных с помощью Views.

09.12.2011 18:13
Аватар пользователя Дмитрий
Дмитрий написал:

Аналогично, при вставке кода, выходит 500 ошибка. Может еще вариант предложите? Необходимо решение.

03.04.2013 14:56
Аватар пользователя Дмитрий
Дмитрий написал:

Drupal 7.21

03.04.2013 14:57
Аватар пользователя bonzik
bonzik написал:

после вставки кода "Помилка HTTP 500 (Internal Server Error)"

09.12.2011 18:29
Аватар пользователя Spleshka
Spleshka написал:

ИМЯТЕМЫ на название темы поменяли? Я только что тестировал этот код - всё работает.

09.12.2011 18:41
Аватар пользователя bonzik
bonzik написал:

менял, иначе не подхватилось бы.
ну да ладно, буду играться, пробовать.
огромное спасибо за помощь

09.12.2011 18:57
Аватар пользователя bonzik
bonzik написал:

не выходит.
в темплате пишу

if (!function_exists('trouble_func')) {
    function trouble_func() {
function framework_preprocess_page(&$vars) {
  $path = implode('/', arg());
  $route = db_query_range('SELECT * FROM {menu_router} WHERE path = :path', 0, 1, 
    array(':path' => $path))->fetchObject();
 
  if (isset($route->page_callback) && $route->page_callback == 'views_page') {
    $name = unserialize($route->page_arguments);
    $suggestion = 'page__views__' . implode('__', $name);
    $vars['theme_hook_suggestions'][] = $suggestion;
  }
}
  }
 }

page--views--имя_представления--machine_name.tpl.php
не работает... (((

11.12.2011 00:51
Аватар пользователя Spleshka
Spleshka написал:

Во-первых, зачем вы функцию в функции пишете? Неправильный код. Я не знаю, для чего вам trouble_func(), но должно быть так:

function trouble_func() {
 
}
 
function framework_preprocess_page(&$vars) {
  $path = implode('/', arg());
  $route = db_query_range('SELECT * FROM {menu_router} WHERE path = :path', 0, 1, 
    array(':path' => $path))->fetchObject();
 
  if (isset($route->page_callback) && $route->page_callback == 'views_page') {
    $name = unserialize($route->page_arguments);
    $suggestion = 'page__views__' . implode('__', $name);
    $vars['theme_hook_suggestions'][] = $suggestion;
  }
}

И представление должно называться page--views-МАШИННОЕ_ИМЯ--page.tpl.php

11.12.2011 13:30
Аватар пользователя Иван
Иван написал:

А для 6-го друпала как такое сделать ?

26.03.2012 11:13
Аватар пользователя Сергей
Сергей написал:

Напишите пожалуйста для 6го Друпала

15.10.2012 14:37

Комментировать