0

我对 Drupal 7 有疑问,我有一个名为“服务器”的内容类型,它包含不同的字段:

  • 主机名
  • 中央处理器速度
  • ...

字段主机名是手动输入的。其他字段必须以编程方式输入。所以我指定了一个主机名,一个函数必须搜索信息(CPU 速度,...)并填充空白字段。

但我无法更新我的节点。我尝试了函数hook_node_inserthook_node_insert. 当我在 (1) 和 (2) 使用这些函数之前打印节点时,我可以看到区别。但是当我访问节点http://localhost/drupal/?q=node/32修改时已经消失了。

这是我的功能的一部分:

function module_node_presave($node) {
    if ($node->type == 'server') {

        dpm($node); //(1)
        $node->field_server_cpu_speed[LANGUAGE_NONE][0]['value']  = 55;
        dpm($node); //(2)

    }
}

有人能帮我吗 ?

提前致谢, BDR

4

1 回答 1

0

尝试使用计算字段模块创建动态字段或node_save($node);在代码末尾添加以保存节点:

function module_node_presave($node) {
  if ($node->type == 'server') {
    $node->field_server_cpu_speed[LANGUAGE_NONE][0]['value']  = 55;
    node_save($node);
  }
}
于 2013-07-09T15:31:51.560 回答