【问题标题】:A Drupal7 Field that does not store data - how can I get it to render?一个不存储数据的 Drupal7 字段 - 我怎样才能让它呈现?
【发布时间】:2012-01-21 20:00:47
【问题描述】:

当你有一个不存储数据的字段时你会怎么做?该字段仅提供派生数据。

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

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

直到...

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

一切都按预期呈现但是分析字段没有 html。标题出现,但内容不出现。 node_view 的渲染数组包含预期的数据,但未打印。

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

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

有不同的方法吗?

非常感谢您的宝贵时间。

乍得

【问题讨论】:

    标签: drupal drupal-7 field


    【解决方案1】:

    我不确定某个字段是否真的适合这种类型的功能;字段用于存储数据,因此拥有无数据字段实际上没有意义。

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

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

    如果您想在节点编辑表单上显示数据,您可以实现 hook_form_alter() 来做到这一点。

    【讨论】:

    • 非常感谢您抽出宝贵时间提供此建议。我很可能会走这条路。在相关说明中,有没有一种方法可以确保节点中的字段至少具有一个值,而无需用户添加一个值?例如,有没有办法将默认图像放置在多图像图像字段的新节点中?新节点的创建是否会通知其字段已创建节点?
    猜你喜欢
    • 2013-06-03
    • 2021-05-27
    • 2011-02-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-03-21
    • 2011-07-25
    • 2022-11-19
    相关资源
    最近更新 更多