Как настроить вид в материалах, размещенных с использованием мод. book?
Здравствуйте.
Скажите, как настроить свой собственный вид для материалов, построенных в иерархию с использованием модуля book? Я могу настроить вид для первого уровня вложенности, а вот для второго и последующих применяется обычный набор полей из типа материала "подшивка", а мне нужно чтобы и второй уровень имел настраиваемый вид. Спасибо.
Вы хотите разные шаблоны сделать для разных уровней или небольшие изменения внести?
Если небольшие изменения, то уровень можно задать в классе для div'а #node. В шаблоне выведите в
<div id="node-<?php print $node->nid; ?>" class="<?php print $node->...
Наверняка где-то указан уровень вложенности ноды в иерархии, можно его вывести классов и уже по этому классу задавать CSS.
Если нужно добавть отдельный шаблон, тогда нужно использовать хуки theme_preprocess_page и theme_preprocess_node, в них можно добавить в массив шаблонов нужный вам массив:
<?php function themeName_preprocess_page(&$vars, $hook) { if ((arg(0) == 'node') && (arg(1) == 'add' || arg(2) == 'product')) { $vars['template_files'][] = 'page-node-add-product'; } } ?>
Это как пример для page, добавляет шаблон страницы (точнее переопределяет page.tpl.php), а вот этот переопределяет node.tpl.php:
/** * Adding node templates for all cases */ function MYTHEME_preprocess_node(&$vars){ $vars['template_files'] = array(); //default template $vars['template_files'][] = 'node'; if (drupal_is_front_page()) { //front page template $vars['template_files'][] = 'node-front'; } if($vars['page']) { //individual node (page) $vars['template_files'][] = 'node-page'; $vars['template_files'][] = 'node-'.$vars['node']->type.'-page'; $vars['template_files'][] = 'node-'.$vars['node']->nid.'-page'; } else { //multiple nodes at one page $vars['template_files'][] = 'node-'.$vars['node']->type; $vars['template_files'][] = 'node-'.$vars['node']->nid; //template for teaser if($vars['teaser']) { $vars['template_files'][] = 'node-'.$vars['node']->type.'-teaser'; $vars['template_files'][] = 'node-'.$vars['node']->nid.'-teaser'; } } }
Вообщем нужно кукую-то переменную найти у контент типа книги, которая отвечает за иерархию и за нее зацепить шаблон. Если покажите дамп объекта $node с разных иерархий (кнопочка вставки кода есть в toolbar), то я посмострю и подскажу.
Спасибо, но мне бы чего попроще) с помощью стандартных инструментов Друпала. Я понять не могу, как в Друпале делаются многоуровневые структуры?! Например, сайт состоит из главной, каталога, о фирме и контактов, в свою очередь каталог делится на несколько подкаталогов, а те на какие-то перечни сведений. Соответственно, страница каталога имеет один вид, списка подкаталогов другой, а списка сведений третий. Простейшая структура, а как делать на Друпале понять не могу никак!