首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在Drupal7中为另一个页面使用front.tpl

问在Drupal7中为另一个页面使用front.tpl
EN

Stack Overflow用户
提问于 2011-11-25 18:51:31
回答 1查看 2.7K关注 0票数 2

非常直接的问题:

我在一个Drupal7站点中使用了page--front.tpl和page.tpl模板页面。但是,我想在另一个页面上使用page-front.tpl t.tpl。这是否可能,或者我是否需要创建另一个.tpl页面来完成此操作。

我正在工作的网站分为两个部分,它本质上是两个独立的网站,你可以在你的消费者或企业所有者之间切换。所以我想为每个站点的主页使用front.tpl模板。

干杯。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2011-11-25 19:35:58

您可以在主题的template.php文件中添加theme_preprocess_page函数,然后在模板建议列表中添加模板名称。

代码语言:javascript
复制
function mytheme_preprocess_page(&$vars) {
    // you can perform different if statements
    // if () {...
        $template = 'page__front'; // you should replace dash sign with underscore
        $vars['theme_hook_suggestions'][] = $template;
    // }
}

编辑

如果您想通过路径别名指定模板名称,您可以编写如下代码:

代码语言:javascript
复制
function phptemplate_preprocess_page(&$variables) {
    if (module_exists('path')) {
        $alias = drupal_get_path_alias($_GET['q']);
        if ($alias != $_GET['q']) {
            $template = 'page_';
            foreach (explode('/', $alias) as $part) {
                $template.= "_{$part}";
                $variables['theme_hook_suggestions'][] = $template;
            }
        }
    }
}

如果没有此函数,默认情况下会有以下节点模板建议:

代码语言:javascript
复制
array(
    [0] => page__node
    [1] => page__node__%
    [2] => page__node__1
)

此函数将应用于您的节点以下新的模板建议。具有node/1路径和page/about别名的示例节点:

代码语言:javascript
复制
array(
    [0] => page__node
    [1] => page__node__%
    [2] => page__node__1
    [3] => page__page
    [4] => page__page_about
)

因此,在此之后,您可以为您的页面使用page--page-about.tpl.php。

如果你想对你的node/15应用page--front.tpl.php,那么在这个函数中,你可以添加If语句。

代码语言:javascript
复制
function phptemplate_preprocess_page(&$variables) {
    if (module_exists('path')) {
        $alias = drupal_get_path_alias($_GET['q']);
        if ($alias != $_GET['q']) {
            $template = 'page_';
            foreach (explode('/', $alias) as $part) {
                $template.= "_{$part}";
                $variables['theme_hook_suggestions'][] = $template;
            }
        }
    }

    if ($_GET['q'] == 'node/15') {
        $variables['theme_hook_suggestions'][] = 'page__front';
    }
}

这将为您提供以下模板建议:

代码语言:javascript
复制
array(
    [0] => page__node
    [1] => page__node__%
    [2] => page__node__1
    [3] => page__page
    [4] => page__page_about
    [5] => page__front
)

最高的索引-最高的模板优先级。

票数 6
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/8268003

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档