Анонимный пользователь может размещать узлы. После публикации узла пользователь перенаправляется на регистрацию. После регистрации ранее представленный узел должен быть связан с вновь зарегистрированным пользователем. Я играл с правилами и сущностями, но не смог заставить их работать должным образом. Есть идеи?
Изменить автора узла автоматически
Ответы (3)
Я бы написал собственный модуль (но это я). Модуль должен реализовать hook_node_insert
и сохранить nid
в SESSION
. Затем на hook_user_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);
}
}
}
Изменить: не забудьте unset($_SESSION['mynodes']);
person
chx
schedule
08.02.2011
Сохраните данные узла до момента регистрации и затем опубликуйте их.
person
Chad
schedule
08.02.2011
Существует модуль Создание анонимных узлов.
Модуль позволяет анонимным пользователям создавать узлы. Но «анонимность» в этом модуле сомнительна. Этот модуль изменяет форму узла для анонимных пользователей, добавляя две группы полей в конце перед кнопкой сохранения.
Первая группа полей содержит поля, которые позволяют пользователям создавать новую учетную запись. Эта новая учетная запись является автором созданного нового узла.
person
keva
schedule
09.02.2011