节点模板负责控制一个页面内部的一片单独的内容的展示。而不是影响整个页面,节点模板仅影响page.tpl.php
中的变量$content。他们负责节点以teaser视图的方式展示(当多个节点在同一个页面列出时),或者以body视图的方式(当节点填充
page.tpl.php中的整个变量$content并单独出现在他自己的页面)。节点文件中的变量$page,当为body视图方式时,它为真,当为
teaser视图方式时,它为假。
模板文件node.tpl.php是一个处理所有节点视图的一般模板。如果你想要一个不同的模板,比如说,日志模板而不是论坛节点模板?你如何才能为特定节点类型创建一个专有的模板而不是全部都使用一个通用的模板?
幸好节点模板提供了一个令人喜欢的粒度而没有超出盒子的范围。简单的将node.tpl.php复制一份并重命名为node-
nodetype.tpl.php,这样PHPTempalte就可以选择这一个模板而不是通用模板。所以为blog实体定制输出样式时,仅需要简单的使用node-blog.tpl.php即可。你通过Administer
➤ Content management ➤ Content
types创建的任何节点类型都可以以同样的方式拥有一个单独的模板文件。在节点模板中,你可以使用下面的变量:
• $content: 节点的主体部分,如果是一个分页显示的结果时,它为teaser。
• $date:节点被创建的格式化日期。
• $links: 与节点相关的链接,比如“read more” 或者“add
comment.”模块通过实现hook_link()来添加额外的链接。
• $name:创建该页面的用户名,连接到他的个人主页。
• $node:整个节点对象和它的所有属性。
• $node_url:该节点的持久化的URI。
• $page: ,当为body视图方式时,它为真,当为teaser视图方式时,它为假。
• $taxonomy.由节点的分类词语构成的一个数组
•
$teaser:布尔值,用来决定是否展示teaser。当它为假时,意味着节点采用body方式展示,为真时,表示以teaser方式展示。
• $terms:与该节点相关的分类单词的HTML。每一个单词都指向他自己的分类单词页面。
• $title:节点的标题。当在多个节点列表的页面这里有个链接指向该节点的主体视图。
• $submitted: “Submitted
by”文本。管理员可以配置这一信息的展示,在一个基于单个节点类型的主题配置页面配置。
• $picture:用户图像的HTML,如果启用了图像并且设置了用户图像。
通常节点模板文件中的变量$content并不会像你期望的方式构建数据。当使用了一个扩展了节点属性的贡献模块比如CCK等字段相关的模块时,这尤其正确。
幸运的是,PHPTemplate将整个节点对象传递给了节点模板文件。如果你在你的模板文件中的头部使用下面的调试语句并加载包含节点的页面,你将发现组成节点的所有属性。如果查看你浏览页面的源代码的话,读起来可能更容易一些。
现在你可以看到组成节点的所有部分了,直接访问他们的属性,像期望的那样标识它们,而不是使用聚合的变量$content.