2012-01-20 20 views
0

私は人によって作成されたcckカスタムタイプを持っていて、フィールドは塗りつぶされています。 他の誰かがそれらのノードを編集し、より多くのデータを追加します。隠しフィールドにコンテンツを編集しているユーザーのユーザー名を保存します。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には、隠しフィールドにユーザー名を入力します。

関連する問題