2011-02-08 4 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입니다.

모듈을 사용하면 익명 사용자가 노드를 만들 수 있습니다. 그러나 '익명'은이 모듈에서 의심 스럽습니다. 이 모듈은 저장 단추 앞에 끝에 두 개의 필드 그룹을 추가하여 익명 사용자에 대한 노드 양식을 변경합니다.

첫 번째 필드 그룹에는 사용자가 새 계정을 만들 수있는 필드가 있습니다. 이 새 계정은 생성 된 새 노드의 작성자입니다.