每个网址的模板

时间:2011-04-21 19:11:41

标签: drupal-6

我正在寻找一个如何在drupal 6中为单个url运行自定义页面模板的示例,也很高兴拥有预处理功能。

2 个答案:

答案 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并创建一个登陆页面。您可以覆盖该页面的每个元素(甚至是外部内容区域)