我将在global$user中获得哪些数据;在drupal 7 cron执行时用于hook_node_更新

我将在global$user中获得哪些数据;在drupal 7 cron执行时用于hook_node_更新,drupal,drupal-7,Drupal,Drupal 7,我已经在一个模块中实现了hook\u node\u update。我可以通过定义全局用户对象global$user来访问loggedin用户数据。我需要了解用户和内容创建者,以便处理一些说明 问题是,如果一个节点被安排为未发布,当drupal运行cron时,我将在global$user中得到什么?是同一个用户在节点或其他地方进行了更改?是否有任何方法可以访问上次更新此节点的用户的数据 更新: 我想我没能解释我需要什么。考虑这种情况。 有两个用户,A和B。A创建了一个内容(节点),例如示例。当B在

我已经在一个模块中实现了
hook\u node\u update
。我可以通过定义全局用户对象
global$user来访问loggedin用户数据。我需要了解用户和内容创建者,以便处理一些说明

问题是,如果一个节点被安排为未发布,当drupal运行cron时,我将在
global$user中得到什么?是同一个用户在节点或其他地方进行了更改?是否有任何方法可以访问上次更新此节点的用户的数据

更新:

我想我没能解释我需要什么。考虑这种情况。

有两个用户,A和B。A创建了一个内容(节点),例如
示例
。当B在
示例中更改某些内容时,我需要向A发送电子邮件通知。因此,当用户B计划存档此
示例
内容时,此cron任务将被保存并由cron执行。当cron运行时,我怎么知道这是由B安排的呢?

全局对象始终是:

表示当前访问站点的用户的对象

可以是经过身份验证的用户,也可以是匿名用户(uid=0)(如果适用)

因此,如果用户通过UI创建/编辑节点,并且您实现了
hook\u node\u update()
,那么
$user
对象将是负责创建内容的用户的对象,正如您所期望的那样

Drupal以匿名用户的身份运行cron,它不会基于不相关的上下文数据(如附加到任意节点的用户ID)创建会话-这样的工作流没有意义

要从节点对象获取用户对象,只需使用:


$node
对象中有一个属性,该属性具有上次更新节点的用户id


$node->revision\u uid

你能不能检查一下
$node->original->uid
来获取这些信息?这会给我内容作者id。它会给你原始作者id,就像“outing”作者id一样。
$node->uid
会给你新作者的id。这不是你要找的吗?
$account = user_load($node->uid);