2011-02-08 4 views
2

L'utilisateur anonyme peut publier des noeuds. Après l'envoi du noeud, l'utilisateur est redirigé vers l'enregistrement. Après l'enregistrement, le noeud précédemment soumis doit être lié avec l'utilisateur nouvellement enregistré. J'ai joué avec des règles et des entités mais je n'ai pas réussi à le faire fonctionner correctement. Des idées?Modifier automatiquement l'auteur du noeud

Répondre

5

Je voudrais écrire un module personnalisé (mais c'est moi). Le module doit implémenter hook_node_insert et enregistrer le nid dans SESSION. Puis sur hook_user_insert il peut faire le changement. code non testé:

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); 
    } 
    } 
} 

Edit: ne pas oublier unset($_SESSION['mynodes']);

+0

Fonctionne parfaitement, merci! – user506259

0

Sauvegardez les données de nœud qu'après l'enregistrement et l'afficher ensuite.

0

Il y a le module Anonymous Node Create.

Le module permet aux utilisateurs anonymes de créer des nœuds. Mais «anonyme» est discutable dans ce module. Ce module modifie le formulaire de noeud pour les utilisateurs anonymes en ajoutant deux groupes de champs à la fin avant le bouton de sauvegarde.

Le premier groupe de champs comporte des champs permettant aux utilisateurs de créer un nouveau compte. Ce nouveau compte est alors l'auteur du nouveau noeud créé.

Questions connexes