Drupal 7 - Создайте пользовательский шаблон, который можно назначить разным страницам
Я хочу иметь собственный шаблон для страниц. В WordPress есть функция выбора шаблонов для страниц или сообщений. Возможно ли это для Drupal?
4 answers
Смотрите здесь Предложения по тематическому крючку Drupal 7
Для узлов Вы можете использовать
node--[type|nodeid].tpl.php
base template: node.tpl.php
Theme hook suggestions are made based on these factors,
listed from the most specific template to the least.
Drupal will use the most specific template it finds:
node--nodeid.tpl.php
node--type.tpl.php
node.tpl.php
Также Предложения по шаблонам Drupal 6
Чтобы использовать один и тот же tpl для нескольких страниц, вам нужно использовать theme_preprocess_node
Как
function theme_preprocess_node(&$vars, $hook) {
$node = $vars['node'];
if(in_array($node->nid), $myuids)
$vars['template_file'] = 'your_template_file';
}
Взгляните на Панель . Это позволяет использовать панели для типов контента, и вы можете определять различные макеты, контент, контексты и т.д. для каждого узла.
На мой взгляд, этот подход намного проще поддерживать, чем иметь кучу отдельных файлов шаблонов в вашей теме.
- Создайте модуль MYMODULE;
Введите следующий код:
function MYMODULE_theme($existing, $type, $theme, $path) {
$theme = array();
$theme['TEST_NAME'] = array(
'template' => 'TEMPLATE-NAME',
'path' => drupal_get_path('module', 'MYMODULE'),
);
return $theme;
}
Создайте файл TEMPLATE-NAME.tpl.php в папке модуля;
-
Выведите его в нужных местах с помощью кода:
theme('TEST_NAME', $vars);
Также ознакомьтесь с Тематическим руководством и Основными шаблонами.