当您拥有不存储数据的字段时,您会怎么做?该字段仅提供派生数据。
我正在使用Drupal7,我在模块中创建了一个字段。此字段不存储数据 - 当有人调用MYMODULE_field_formatter_view
时,他们会获得包含节点分析的渲染数组。这是一个质量控制程序,用于指示节点内容的质量问题。
一切正常!在视图中我可以调用该字段,指定view_type
(有几个)并且它可以工作。
...直到
我在search-results.tpl.php,我打电话给drupal_render(node_view($node,"qc"));
所有内容都按预期呈现,但分析字段没有html。标题出现但内容没有。 <{1}}的渲染数组包含预期的数据但不打印。
我唯一能想到的是:
节点中的字段为空。例如:node_view
为空。我认为这是因为用户永远不会使用小部件为该字段创建数据,因为它不需要任何内容。
问题是:
如何在创建节点时,以某种方式创建虚假数据以放入$node->field_analysis
?
有不同的方法吗?
非常感谢您的时间。
乍得
答案 0 :(得分:3)
我不确定某个字段是否适合此类功能;字段是 存储数据,所以没有数据字段是没有意义的。
相反,我建议使用以下一个或多个钩子:
例如,您可以使用hook_node_load()
将质量数据附加到从数据库加载的节点,并hook_node_view()
在查看节点时添加额外的内容。
如果要在节点编辑表单上显示数据,可以实现hook_form_alter()
来执行此操作。