2011-02-08 15 views
2

匿名ユーザーはノードを投稿できます。投稿ノードの後、ユーザーは登録にリダイレクトされます。登録後、以前に提出されたノードは、新たに登録されたユーザとリンクされるべきである。 ルールやエンティティを使用していましたが、正しく動作させることができませんでした。何か案は?ノード作成者を自動的に変更する

答えて

5

私はカスタムモジュールを書くつもりですが(それは私です)。モジュールはhook_node_insertを実装し、nidSESSIONに保存する必要があります。その後、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']);

+0

完璧、ありがとう! – user506259

0

は、登録後までノードデータを保存し、それを投稿することを忘れないでください。

0

モジュールはAnonymous Node Createです。

このモジュールでは、匿名ユーザーがノードを作成できます。しかし、このモジュールでは「匿名」が疑わしい。このモジュールは、保存ボタンの前に最後に2つのフィールドグループを追加して、匿名ユーザーのノードフォームを変更します。

最初のフィールドグループには、ユーザーが新しいアカウントを作成できるフィールドがあります。この新しいアカウントは、作成された新しいノードの作成者になります。

関連する問題