Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/drupal/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Drupal 自动更改节点作者_Drupal_Drupal 7 - Fatal编程技术网

Drupal 自动更改节点作者

Drupal 自动更改节点作者,drupal,drupal-7,Drupal,Drupal 7,匿名用户可以发布节点。在发布节点之后,用户被重定向到注册。注册后,先前提交的节点应与新注册的用户链接。 我玩规则和实体,但我不能让它正常工作。有什么想法吗?我想写一个自定义模块,但那就是我。模块需要实现hook_node_insert并将nid保存到会话中。然后在hook\u user\u insert上,它可以进行更改。未测试代码: function foo_node_insert($node) { $_SESSION['mynodes'][] = $node->nid; } fu

匿名用户可以发布节点。在发布节点之后,用户被重定向到注册。注册后,先前提交的节点应与新注册的用户链接。
我玩规则和实体,但我不能让它正常工作。有什么想法吗?

我想写一个自定义模块,但那就是我。模块需要实现hook_node_insert并将nid保存到会话中。然后在hook\u user\u insert上,它可以进行更改。未测试代码:

function foo_node_insert($node) {
  $_SESSION['mynodes'][] = $node->nid;
}

function foo_user_insert($edit, $account) {
  if (!empty($_SESSION['mynodes'])) {
    foreach ($_SESSION['mynodes'] as $nid) {
      $node = node_load($nid);
      $node->uid = $account->uid;
      // This saves the revision as the current user uid but that's just what we wanted.
      node_save($node);
    }
  }
}

编辑:不要忘记取消设置$_会话['mynodes']

将节点数据保存到注册后再发布。

有模块

该模块允许匿名用户创建节点。但是在这个模块中,“匿名”是有问题的。此模块通过在“保存”按钮之前的末尾添加两个字段组来更改匿名用户的节点形式

第一个字段组具有允许用户创建新帐户的字段。然后,这个新帐户就是创建的新节点的作者