You are here

我自定义模块的页面如何使用我自定义的模板?

Yes1000 的头像
Submitted by Yes1000 on 星期三, 2013-01-23 07:00

比如,我定义了一个模块,其中路径定义为$items['mypage']。

那么,我想给/mypage访问时单独定义一个模板,而其他页面的模板用默认的。

这样,这个页面的模板文件应该放在那里,文件名如何定义呢?

论坛:

Drupal版本:

Yes1000 的头像

还有其他地方需要设置吗?

我现在用的默认的bartik主题,我新建了文件
\themes\bartik\templates\page--mypage.tpl.php

不生效,改为

\themes\bartik\templates\page-mypage.tpl.php
\themes\bartik\page--mypage.tpl.php
\themes\bartik\page-mypage.tpl.php

等也不生效。

 

但我如果直接修改
\themes\bartik\templates\page.tpl.php
就会生效,但是这样所有的页面就都改变了

 

 

Yes1000 的头像

好了,非常感谢。

再追问点问题:
1.为什么文件名用page--mypage.tpl.php而不是page-mypage.tpl.php?
看到很多地方使用的-和--都不同,这个的规则是什么?

2.我当前使用的主题是系统自带的bartik,我想定义某个页面的模板,必须得新建文件到系统的\themes\bartik目录吗?能不能放在自定义的\sites\all\themes\custom目录下?

3.我如何能给我的自定义模板赋一个自定义变量,像自带的$head一样使用?

g089h515r806 的头像

1,drupal6里面,使用page-mypage.tpl.php,

drupal7里面使用page--mypage.tpl.php。

默认就是这样设计的。

2,是的,需要放到\themes\bartik目录。你可以把文件放到\themes\bartik\templates目录下面的任意子目录下面,但是不能直接放到\sites\all\themes\custom目录下。

3,变量需要在预处理函数中定义,具体用法可以参看THink in Drupal第1集第2章里面的例子。