我正在寻找一个如何在drupal 6中为单个url运行自定义页面模板的示例,也很高兴拥有预处理功能。
答案 0 :(得分:2)
我在最近的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'
部分。
这使您可以首先按节点ID覆盖(更具体),然后更一般地按内容类型覆盖,例如故事或页面。要添加更多替代,只需在正确的位置添加更多案例。
希望这有帮助。
答案 1 :(得分:0)
嗯,你可能不得不使用Module Panels3并创建一个登陆页面。您可以覆盖该页面的每个元素(甚至是外部内容区域)