gpt4 book ai didi

Drupal 7 : difference between node insertion/node update

转载 作者:行者123 更新时间:2023-12-02 02:35:36 24 4
gpt4 key购买 nike

我创建了一个模块来获取服务器信息。因此,我创建了一种特定的内容类型。要收集所有数据,需要一个字段(主机名)。

我使用函数hook_node_presave()在我的节点中添加CPU、RAM等信息。因此,当我创建新节点时,我手动指定名称,然后 drupal 调用函数 hook_node_presave() ,该函数会自动将其他信息插入我的节点中。

我还设置了一个 cron 来定期更新每个节点信息。为此,我使用 hook_cron()。感谢 node_load(),我设法加载每个节点并更新它们,但是当我想使用 node_save() 保存它们时,Drupal 逻辑调用 hook_node_presave() ...但不希望这种情况发生:因为这个函数会再次更新信息!

如何在 hook_node_presave() 中区分新节点更新节点?否则我可以调用哪个函数来避免这个问题?

感谢您的帮助

最佳答案

只需检查节点对象上的 is_new 成员或是否存在 nid:

function MYMODULE_node_presave($node) {
if ($node->is_new) {
// ...
}

// Equivalent to
if (empty($node->nid)) {
// ...
}
}

根据 user_save()文档:

Parameters

$node: The $node object to be saved. If $node->nid is omitted (or $node->is_new is TRUE), a new node will be added.

关于Drupal 7 : difference between node insertion/node update,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17615254/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com