druapl的模板系统

文章分类:drupal  查看次数:359 + 87

上一篇文章简要介绍了一下,我觉得在国内之所以不太流行,关键是她不够傻瓜,就像傻瓜相机一样,那都是一些入门级的人玩的,你再怎么玩的转,没有专业的镜头配合,那都是瞎胡闹。忽然想到了firefox,某种程度上,跟她有一定的相似性,比如:有完善的插件库,各种功能主要通过插件来实现;新手需要摸索一段时间,才能入门,继而为之陶醉;还有就是在中国,使用人数不多,一方面可能是中文文档的不齐全,另一方面国内的CMS也是另一选择。

说了那么多的废话,下面进入正题。

的默认模板引擎是PHPTemplate,如果要创建一个自己的主题,可以在theme目录下,新建一个文件夹,比如mytheme,然后再创建一个page.tpl.php,这样最简单的模板就建立完了(注意:必须是.tpl.php结尾;文件名必须是page.tpl.php)。你可以创建一系列文件来覆盖默认函数

  • theme('page') (page.tpl.php):主题的首页
  • theme('block')(block.tpl.php):区块模板,通常用在侧边栏
  • theme('box')(box.tpl.php):内容区域的模板
  • theme('comment')(comment.tpl.php):评论模板
  • theme('node')(node.tpl.php)详细内容模板

每一个模板,都有各自可以使用的变量,这个在上一篇文章也大概说了一下,具体内容查看

以下是我曾经碰到过的问题,以及解决办法

1、如果我要为单独的页面做一个特殊的模板怎么办

比如说要为http://www.example.com/node/1/edit这个页面,单独做一个模板 ,PHPTemplate会在模板文件夹下按照以下次序寻找模板:

page-node-edit.tpl.php
page-node-1.tpl.php
page-node.tpl.php
page.tpl.php

如果是访问http://www.example.com/tracker

那么搜寻的模板次序就是:

page-tracker.tpl.php
page.tpl.php

具体可以查看这篇文章

2、我想在特定的页面显示特定的区块(block)怎么办?

在block里设置,新建block后,点击“配置”,最后的页面可见性设置,有三个选项可以选择。

3、如果我想对不同的区块(block),设置不同的样式,怎么办?

PHPTemplate会在模板目录下,按照下面的顺序查找

block-[module]-[delta].tpl.php
block-[module].tpl.php
block-[region].tpl.php
block.tpl.php

可以参考这篇文章

评论

共3 条评论 to “druapl的模板系统”

  1. Leeker on 2007-11-18 5:13 pm
    Gravatar

    不错,就是文章少点

    [回复此评论]

  2. lzyy on 2007-11-19 1:03 pm
    Gravatar

    恩,中文资料的确挺少的,不过你可以看看ibm出的drupal系列文章,挺详细的。

    http://www.ibm.com/developerworks/cn/web/i-osource1/

    [回复此评论]

  3. Evance on 2007-12-23 6:03 pm
    Gravatar

    偶昨天也在写drupal theme设计的中文文档。
    哈..

    [回复此评论]

发表评论