Drupal - 如何判断节点是否已通过UI表单更新,与编程方式相反?

时间:2012-11-07 11:06:56

标签: drupal drupal-7 drupal-modules

我正在使用node_save从Web服务导入/更新节点。我想要实现的一个功能是在本地更改导入的节点时,它不应该从Web服务接收任何进一步的更新。

所以,我想要实现的是:

  • 检测节点何时更新
  • 如果更新是由提交表单的用户(与编程方式相反)执行的,则
  • 然后标记该节点不应再从Web服务接收更新(我不需要任何此部分的帮助)

我想使用hook_node_update,但我不知道如何判断更新是否由提交表单的用户执行。

有什么建议吗?

1 个答案:

答案 0 :(得分:1)

在用户创建节点期间(初始设置): 为节点创建隐藏字段,默认值设置为“用户提交”。由于它是一个隐藏字段,它在节点编辑表单中不可用,但它仍然带有默认值。

用户更新节点: 使用hook_form_alter将隐藏输入的值设置为“用户提交”。

在使用webservice的节点的CREATE / UPDATE期间: 以编程方式创建节点时,使用“由webservice提交”更新隐藏字段值。

现在在hook_node_update中,您可以检查此隐藏字段值并相应地做出决定。