8node.tpl.php 默认变量

作者:老葛,北京亚艾元软件有限责任公司,http://www.yaiyuan.com

node.tpl.php 默认变量

Drupal版本:

8.1 可用变量:

作者:老葛,北京亚艾元软件有限责任公司,http://www.yaiyuan.com

$title节点的标题,已过滤。

$content:节点条目数组。使用render($content),可以全部输出;使用 render($content['field_example'])可以输出一个子集;使用hide($content['field_example'])可以临时隐藏给定元素的输出。

$user_picture节点作者的头像,来自于user-picture.tpl.php

$date格式化的创建日期。如果想对这个变量重新格式化,那么可以在预处理函数中,对$created使用format_date()函数,并向其传递合适的参数。

$name节点作者用户名的格式化输出,这里使用了theme_username()

$node_url当前节点的直接URL

$display_submitted布尔值,用来指示是否显示提交信息。

$submitted提交信息,在template_preprocess_node()中基于$name$date生成。

$classes: CSS类字符串。可以在预处理函数中,通过修改$classes_array的值,来修改$classes的值。默认值有:nodenode-[type]node-teasernode-previewnode-promotednode-stickynode-unpublished。注意,这里的node-[type]表示当前节点类型,如果当前节点为博客,那么这里就是"node-blog"

$title_prefix (array): 在模板的主标题标签前面显示的内容,注意它是数组结构,在模板中输出时,使用render()输出。

$title_suffix (array): 在模板的主标题标签后面显示的内容,注意它是数组结构,在模板中输出时,使用render()输出。


Drupal版本:

8.2 其它变量:

作者:老葛,北京亚艾元软件有限责任公司,http://www.yaiyuan.com

$node:完整的节点对象。它里面包含的数据可能并不安全。

$type:节点类型,例如:articlepageblog等等

$comment_count:该节点上面的评论数量。

$uid节点作者的用户ID

$created节点的发布时间,格式为Unix时间戳。

$classes_array一个数组,里面包含了CSS类属性的值。$classes就是基于$classes_array生成的。

$zebra斑马线,可能的值有:"even""odd"。用在摘要列表中。

$id节点的位置。每输出一次,这个变量加一。

 


Drupal版本:

8.3 节点状态变量:

作者:老葛,北京亚艾元软件有限责任公司,http://www.yaiyuan.com

$view_mode:查看模式,比如:'full''teaser'等等。

$teaser:摘要状态的标记,等价于$view_mode == 'teaser'

$page标记,用来表示当前是否是完整页面状态。

$promote标记,用来表示当前节点是否推荐到了首页。

$sticky标记,用来表示当前节点是否被置顶。

$status标记,用来表示当前节点是否已发布。

$comment当前节点的评论设置的状态。

$readmore标记,当摘要内容HOLD不住正文内容时,为TRUE

$is_front标记,用来表示是否显示在首页。

$logged_in标记,用来表示当前用户是否是登录用户。

$is_admin标记,用来表示当前用户是不是管理员。


Drupal版本:

8.4 字段变量:

作者:老葛,北京亚艾元软件有限责任公司,http://www.yaiyuan.com

对于附加在该节点上面的每个字段实例,都会为其定义一个对应的变量。例如,$node->body变成了$body。当需要访问一个字段的原始数据时,推荐大家使用这些变量,如果从$node变量中直接获取,此时还需要考虑字段上面的语言,例如,$node->body['en'];这样就会覆写掉前面设置的语言协定规则。

 

    有关字段变量的生成,可以参看函数field_attach_preprocess,在这个函数中,去掉了字段上面的语言信息。代码如下:

$variables[$field_name] = isset($entity->{$field_name}[$langcode]) ? entity->{$field_name}[$langcode] : NULL;

 

这些变量来自于:

template_preprocess()

template_preprocess_node()

template_process()


Drupal版本: