没有存储数据的Drupal7字段 - 如何让它呈现?

时间:2012-01-21 20:00:48

标签: drupal drupal-7 field

当您拥有不存储数据的字段时,您会怎么做?该字段仅提供派生数据。

我正在使用Drupal7,我在模块中创建了一个字段。此字段不存储数据 - 当有人调用MYMODULE_field_formatter_view时,他们会获得包含节点分析的渲染数组。这是一个质量控制程序,用于指示节点内容的质量问题。

一切正常!在视图中我可以调用该字段,指定view_type(有几个)并且它可以工作。

...直到

我在search-results.tpl.php,我打电话给drupal_render(node_view($node,"qc"));

所有内容都按预期呈现,但分析字段没有html。标题出现但内容没有。 <{1}}的渲染数组包含预期的数据但不打印。

我唯一能想到的是:
节点中的字段为空。例如:node_view为空。我认为这是因为用户永远不会使用小部件为该字段创建数据,因为它不需要任何内容​​。

问题是:
如何在创建节点时,以某种方式创建虚假数据以放入$node->field_analysis

有不同的方法吗?

非常感谢您的时间。

乍得

1 个答案:

答案 0 :(得分:3)

我不确定某个字段是否适合此类功能;字段是 存储数据,所以没有数据字段是没有意义的。

相反,我建议使用以下一个或多个钩子:

例如,您可以使用hook_node_load()将质量数据附加到从数据库加载的节点,并hook_node_view()在查看节点时添加额外的内容。

如果要在节点编辑表单上显示数据,可以实现hook_form_alter()来执行此操作。