[Решено]Файл перекрытия шаблона для словаря таксономии

Главные вкладки

Аватар пользователя skill skill 1 апреля 2013 в 17:54

Добрый день. Подскажите пожалуйста как перекрыть шаблон page.tpl.php для определенного словаря таксономии в 7 друпале. файл должен выглядеть как то так page--vocabulary-20.tpl.php (в таком варианте не работает). Как это происходит для 6-ки нашел здесь http://www.drupal.ru/node/29726 . А вот как для 7-ки неясно. Заранее спасибо.

Комментарии

Аватар пользователя skill skill 2 апреля 2013 в 3:10

Хотя в списке файлов шаблонов обозначенных здесь http://drupal.org/node/190815 , шаблонов именно словарей я не нашел. Возможно это делается путем добавления препроцесса в темплейт пхп. Сам с пхп не дружен, поэтому прошу помощи, черкните пожалуйста, кто сведущь, как это выглядит для семерки

Аватар пользователя skill skill 2 апреля 2013 в 20:10

Мне не нужна темизация термина таксономии, мне нужна темизация именно словаря (то есть всех включенных в него терминов) И если уж вы пиарите свой труд, то конкретизируйте пожалуйста

Аватар пользователя skill skill 2 апреля 2013 в 20:45

Прошу прощения, по первой ссылке и правда затронута тема темизации именно словаря таксономии спомощью модуля который позволяет к каждому словарю подключить свое представление, но мне это никчему. Я ипользую модуль вью филд в совокупности с дисплей сьют и в каждом словаре могу создавать свои поля-представления. У меня же простейшая задача: в файле page.tpl.php прописан тег H1 с переменной title, во всех других материалах и словарях меня все устраивает. Но в одном словаре я хочу убрать заголовок выводимый title, создать новое текстовое поле и при помощи дисплей сьют вывести его как заголовок H1/ Таким образом я получу возможность гибко прописывать заголовки для терминов этого словаря, при этом сами термины будут иметь тот-же короткий "терминовский" вид)))

Аватар пользователя skill skill 3 апреля 2013 в 14:43

Эх. Сам задал вопрос, сам и отвечу в template.php след. код
function YOURTHEME_preprocess_page(&$variables) {

if (arg(0) == 'taxonomy' && arg(1) == 'term' && is_numeric(arg(2))) {
$tid = arg(2);
$vid = db_query("SELECT vid FROM {taxonomy_term_data} WHERE tid = :tid", array(':tid' => $tid))->fetchField();

$variables['theme_hook_suggestions'][] = 'page__vocabulary__'.$vid;
}
}

И файл будет называться page--vocabulary--X.tpl.php
Взято здесь http://drupal.org/node/1325846

Аватар пользователя maked1sky maked1sky 28 апреля 2014 в 12:59

skill wrote:
Эх. Сам задал вопрос, сам и отвечу в template.php след. код
function YOURTHEME_preprocess_page(&$variables) {

if (arg(0) == 'taxonomy' && arg(1) == 'term' && is_numeric(arg(2))) {
$tid = arg(2);
$vid = db_query("SELECT vid FROM {taxonomy_term_data} WHERE tid = :tid", array(':tid' => $tid))->fetchField();

$variables['theme_hook_suggestions'][] = 'page__vocabulary__'.$vid;
}
}

И файл будет называться page--vocabulary--X.tpl.php
Взято здесь http://drupal.org/node/1325846[/quote]

Спасибо добрый человек! Работает! Два дня ищу способ решения этой задачи!

Аватар пользователя vitaboss vitaboss 10 мая 2013 в 2:29

Сцуко! Вот это работает:

function YOURTHEME_preprocess_page(&$variables) {
if(arg(0) == 'taxonomy' && arg(1) == 'term') {
$tid = (int)arg(2);
$term = taxonomy_term_load($tid);
if(is_object($term)) {
$variables['theme_hook_suggestions'][] = 'page__taxonomy__'.$term->vocabulary_machine_name;
}
}
}

page--taxonomy--vocabulary_machine_name.tpl.php

Аватар пользователя gnom22 gnom22 10 октября 2013 в 16:37

Здравствуйте!
как сделать отдельный шаблон для словаря таксономии или его термина?
Есть словарь "Catalog" с терминами, при переходе с одного на другой термин каталога выводится анонс товара а потом и подробное описание товара с картинкой, сама тема будущего магазина сверстана под 3 калонки и они отоброжаются на всех стр., а мне надо что колонки отображались на всех кроме стр анонса товара, создавал тип товара и пытался его переопределить, все получилось только вот не там где надо, блок пропал не на стр с анонсом а на полном содержании, выручите пожалуйста! Какой код вставлять в temlate.php и как называть сам файл шаблона?

Аватар пользователя sandman81 sandman81 28 января 2014 в 1:32

"vitaboss" wrote:

Сцуко! Вот это работает:

function YOURTHEME_preprocess_page(&$variables) {
if(arg(0) == 'taxonomy' && arg(1) == 'term') {
$tid = (int)arg(2);
$term = taxonomy_term_load($tid);
if(is_object($term)) {
$variables['theme_hook_suggestions'][] = 'page__taxonomy__'.$term->vocabulary_machine_name;
}
}
}

page--taxonomy--vocabulary_machine_name.tpl.php

пробую а нифига оно не работает(