本文是基于我的实践经验所写,我的客户向我提出了一个要求,如何让CCK定义的节点类型拥有一个他想要的主题外观。当然,有多种方式可以实现这一点:1)仅用CSS(并不是所有情况下都有效);2)使用Contemplate模块,(是不是的会让我挠头);3)一个自定义模块(根据他的情况,也不是一个好办法);4)主题模板。
随着他的需求的日益明确,我觉得主题模板模板应该是最好的办法。当然,这也是能够传授给他的最简单的方法。
具体要求和环境
新的节点类型已经用CCK定义好了,当然它还可以更精简一些。节点类型的名字是“agency”。
这个Drupal站点使用的主题为Garland。
站长对于外观没有太明确的要求,她只是想让我给他一个简单的教程,这样将来他好自己修改。他熟悉CSS,也了解一点PHP。
解决方案
首先,让我们看一下由CCK定义的节点类型。
在这个图片中,我们看到"Name"(名称)和 "Type"(类型);注意这些字段下面的说明:
-
Name – “用户可读的该节点类型的名字”
-
Type –“机器可读的该节点类型的名字”
为了构建主题模板文件,我们需要"Type"。
我们还需要注意,在这里我们把"body"字段叫作了什么。我们称它为"Description"。
当我们来到"Manage fields"(管理字段集)页面时,我们看到上图所示的页面。其中,"Name"列是我们需要的。然而,这里需要注意一点:我们这里没有字段叫作"body filter",这是Drupal内核中的一个表单技术,将“body”名称为"body_filter".
好了,现在全部信息我们都有了,让我们开始为这个节点类新定制主题。