You are here

node.tpl.php

老葛的Drupal培训班 Think in Drupal

节点模板负责控制一个页面内部的单独的内容片段的显示。节点模板影响的不是整个页面,而仅仅是page.tpl.php中的变量$content。它们负责节点是以摘要视图的方式显示(当多个节点在同一个列表页面时),还是以主体视图的方式显示(当page.tpl.php中的变量$content仅包含一个节点,并且该节点单独成页时)。节点模板文件中的$page变量,当为主体视图时,它为真,当为摘要视图时,它为假。
    文件node.tpl.php是一个通用的模板,可用来处理所有节点的视图。如果你想要一个不同的模板,比如说日志节点模板与论坛节点模板不一致时,那该怎么办呢?你如何才能为特定的节点类型创建一个专有的模板,而不是全都使用一个通用的模板?
  节点模板很容易实现这一点。简单的将node.tpl.php复制一份并重命名为node-nodetype.tpl.php,这样PHPTemplate就会选择这个模板,而不是选择通用模板了。所以对于日志节点的主题化,只需要简单的使用node-blog.tpl.php就可以了。对于你通过管理界面“管理➤内容管理➤内容类型”创建的任何节点类型,都可以使用同样的方式创建一个单独的模板文件。在节点模板中,你可以使用下面的变量:
 
• $build_mode: 构建节点的上下文的相关信息。它的值是下面的常量之一:NODE_BUILD_NORMAL, NODE_BUILD_PREVIEW, NODE_BUILD_SEARCH_INDEX, NODE_BUILD_SEARCH_RESULT, or NODE_BUILD_RSS.
 
• $content: 节点的主体部分,如果是在一个列表页面中显示时,它为节点的摘要部分。
 
• $date: 格式化的节点创建日期。通过使用$created,比如, format_date($created, 'large'),你可以选择一个不同的日期格式。
 
• $links: 与节点相关的链接,比如“阅读全文” 或者“添加新评论”。模块通过实现hook_link()来添加额外的链接。这些链接已经经过了theme_links()的处理。
 
• $name: 该页面的作者的格式化的名称,链接到他/她的个人资料页面。
 
• $node:整个节点对象,还有它的所有属性。
 
• $node_url: URL路径中该节点的部分;例如,对于http://example.com/?q=node/3,它的值为/node/3。
 
• $page: 当节点独自显示为一个页面时,它为TRUE;否则,它为FALSE。
 
• $picture: 如果在管理界面“管理➤站点构建➤主题➤配置”中,选择了“文章中显示用户头像”,并在全局主题设置中的“显示文章的发布信息”选项中选中该节点类型,那么theme('user_picture', $node)的输出将被放到$picture中。
 
• $taxonomy.由节点的分类术语构成的一个数组,术语的格式适用于传递给theme_links()函数。事实上,theme_links()的输出可用在$terms变量中。

Drupal版本: