Я использовал следующий код в недавнем проекте Drupal 6; для этого требуются записи в файл template.php
, который находится в корневом каталоге вашей темы. Просто перетащите созданную вами страницу шаблона в корень папки вашей темы, и все готово. {: ¬)
Возможно, эта функция уже указана в вашем файле template.php
; в этом случае вам, вероятно, придется рефакторинг, чтобы добавить это. Вот функция полностью:
function yourThemeName_preprocess_page(&$vars) {
if (isset($vars['node'])) {
$node = $vars['node'];
$vars['template_files'] = array();
switch ($node->nid) {
case '17': /* to override a specific node ID */
$vars['template_files'][] = 'page-my-page-name';
break;
default: /* to override a content type */
switch ($node->type) {
case 'page':
$vars['template_files'][] = 'page-normal-page';
break;
case 'my_own_content_type':
$vars['template_files'][] = 'page-my-own-content-type';
break;
default:
/* take no action */
}
}
}
}
Там, где я указал 'page-my-page-name'
, обратите внимание, что Drupal (точнее, PHPTemplate) автоматически добавит часть '.tpl.php'
.
Это позволяет вам переопределить сначала по идентификатору узла (более конкретно), а затем по общему типу контента, например, история или страница. Чтобы добавить больше переопределений, просто добавьте больше дел в нужном месте.
Надеюсь, это поможет.