Шаблоны страниц в зависимости от типа материала Drupal
В движке оформления phptemplate CMS Drupal существуют богатые возможности управления формированием верстки и оформления страниц. Шаблоны оформления (файлы *.tpl.php) определяют каким образом будут выглядеть страницы, материалы, блоки, комментарии и многое другое. Можно создать отлельное оформление для каждой страницы по её адресу. Например:
- page-front.tlp.php - оформление главной страницы, вне зависимости от её истинного адреса.
- page-node-40.tpl.php - оформление страницы по адресу http://адрес_сайта/node/40 следует отметить, что даже при использовании модуля path следует указывать системные адреса страниц, а не синонимы.
Также гибко и формирование разметки типов содержимого, кроме основного шаблона node.tpl.php, можно создавать шаблон оформления для каждого типа содержимого. Например: node-story.tpl.php будет вызываться при формировании разметки заметок (story - машинное название).
При может возникнуть ситуация когда необходимо менять оформление страницы, в зависимости от типа отображаемого содержимого. В этом случае придется немного попрограммировать. В папке с темой оформления нужно создать файл template.php и добавить в него следующую функцию:
<?php
// Add additional template suggestions
function phptemplate_preprocess_page($vars) {
// Add page template suggestions based on node type, if we aren't editing the node.
if ($vars['node'] && arg(2) != 'edit') {
$vars['template_files'][] = 'page-nodetype-'. $vars['node']->type;
}
return $vars;
}
?>
Данная функция новинка для Drupal 6.x, система предложений шаблонов (template suggestion) открывает множество дополнительных возможностей. В данном случае, движку phptemplate предлагается использовать файлы page-nodetype-название_материала.tpl.php для оформления страницы с соответствующим материалом, кроме случая страницы редактирования.
Если вы используете Drupal более ранней версии, то можно использовать следующий код:
<?php
// Add additional template suggestions
function _phptemplate_variables($hook, $vars) {
switch ($hook) {
case 'page':
// Add page template suggestions based on node type, if we aren't editing the node.
if ($vars['node'] && arg(2) != 'edit') {
$vars['template_files'][] = 'page-nodetype-'. $vars['node']->type;
}
break;
}
return $vars;
}
?>
Теперь можно создавать шаблоны оформления страниц по типу отображаемого содержимого. Например: page-nodetype-story.tpl.php
После добавления новых файлов шаблонов, необходимо очистить кэш системы по адресу /admin/settings/performance, нажав на кнопочку в самом низу страницы. Только после этого изменения вступят в силу.
- Добавить комментарий
- 6293 просмотров
