2012-01-20 3 views
0

사람이 작성한 사용자 정의 유형이 있는데 필드가 채워집니다. 그러면 다른 사람이 노드를 편집하고 더 많은 데이터를 추가합니다. 숨겨진 필드에 내용을 편집하는 사용자의 사용자 이름을 저장하려고합니다.cck 숨김 필드, 편집 사용자 채우기

는 내가이와 사용자 얻을 수 있습니다 알고

global $user; 
$a = $user->name; 
return array(
    0 => array('value' => $a) 
); 

을하고 난 숨겨진 필드에 대한 기본 코드로 이것을 넣어 가지고 있지만 필드는 현재 노드의 창조자로 가득하고있다 편집기로 대체되지 않습니다. 내 문제를 어떻게 해결할 수 있습니까?

답변

0

나는 당신의 문제에 대한 연구를하고 있습니다, 여기에 해결책이 있습니다 !!!

사용자 지정 모듈을 만들고 다음 코드를 사용하십시오.

//Implementation of hook_nodeapi() 
function hook_nodeapi(&$node, $op, $a3 = NULL, $a4 = NULL) { 
    switch($op) { 
    case 'presave': 
     if($node->type == "Your content type name") 
     { 
      global $user; 
      //In my case 
      //$node->field_username[0]['value'] = $user->name; 
      //In your case it will be like 
      $node->hidden_field_name[0]['value'] = $user->name; 
     } 
     break; 
    }  
} 
0

직접 노드 편집을 테스트 할 때 필드에 고유 한 사용자 이름 또는 원 작성자가 포함되어 있습니까?

다른 해결책은 특정 노드 편집 양식을 form_alter로 만들고 node_save에 숨겨진 필드를 사용자 이름으로 채우는 것입니다.