作者:老葛,北京亚艾元软件有限责任公司,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()