每个网址的模板

发布于 2024-11-02 21:58:39 字数 65 浏览 0 评论 0原文

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

I'm looking for an example of how to run a custom page template for a single url in drupal 6, would be nice to have a preprocess function too.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

伪装你 2024-11-09 21:58:39

我在最近的 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'< /code> 自动部分。

这使您能够首先按节点 ID(更具体)进行覆盖,然后更一般地按内容类型(例如故事或页面)进行覆盖。要添加更多覆盖,只需在正确的位置添加更多案例即可。

希望这有帮助。

I used the following code in a recent Drupal 6 project; it requires entries into the template.php file which resides in the root of your theme folder. Simply drop the template page you create into the root of your theme folder, and you're off. {:¬)

You may have this function specified in your template.php file already; in which case, you'd probably have to refactor to add this. Here's the function in full:

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 */
                }
        }
    }
}

Where I've specified 'page-my-page-name', note that Drupal (or rather, PHPTemplate) will add the '.tpl.php' part automatically.

This enables you to override by node ID first (more specific), and then more generally by content type, e.g. story or page. To add more overrides, just add more cases in the right place.

Hope this helps.

骄傲 2024-11-09 21:58:39

嗯,您可能必须使用模块面板3并创建一个登陆页面。您可以覆盖该页面的每个元素(甚至在内容区域之外)

Humm, you might have to use the Module Panels3 and create a landing page. You can override every element of that page (even outside content area)

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文