去年初开始用Drupal的时候就找到contemplate模块,用于定制化输出页面,觉得这个模块很好用,既可以放在数据库中也可以放在磁盘上,可以实现对每个字段的精确控制,这个模块成了我们做各种导入数据库的Drupal网站的必配模块。
今年在使用Drupal 7的时候,我也准备继续用这个模块,但看到提示说这个模块可能会废弃,原因是Drupal 7有了一些与Drupal 6不同的机制。不过现在依然提供了可以在Drupal 7上运行的版本,我也试用了一下,有一些地方不是很方便,读取字段老是报错,breadcrumb也不能控制了。
这段时间摸索Drupal 7的时候,接触各种tpl.php的模板文件多了一些,今天就试着在新网站上不安装contemplate这个模块,而是直接修改node.tpl.php,例如网站上content type为industry的页面对应模板就是node--industry.tpl.php。
需要注意的是,contemplate中有body和teaser,rss三种模板,而node.tpl.php中只有通过判断页面的类型来转向不同的处理,从而在一个node--industry.tpl.php中实现body和teaser两种模板。
在node.tpl.php中开头的部分写明了哪些变量可用,还可以在网上找到一些资料和例子,再自己多试验一下,应该也不比contemplate的使用难多少。