2011-08-01 8 views
1

私は自分のサイトで登録したユーザーに特定の役割を割り当てているDrupal 6モジュールを作成していますコンテンツプロファイル別のフィールド。 (私はロール選択に基づいて条件付きフィールドを使用しなければならないため、役割割り当て自動割り当てモジュールは機能しませんでした)私は&編集または&アカウントオブジェクトでプロファイルフィールドの値を見ることができないので、フィールド値に基づいて決定を行う方法を知っています。Drupal 6の登録フィールドのコンボに基づいて新しいユーザーの役割を設定する

/** 
* Implementation of hook_user(). 
*/ 
function mymodule_user($op, &$edit, &$account, $category = NULL) { 
    switch ($op) { 
    case 'isnert': 

     $rolenames = user_roles(); 

     // 6 : magical role 

     //profile_load_profile($account); // tried with and without this 

     var_dump($account); 
     //var_dump($edit); 

     if(true) { // the decision should be made here based on the combo! 
     $edit['roles'] += array('6' => $rolenames[6]); 
     } 


    break; 

PS:あなたがリモートデバッグなしできれいにメッセージをログに記録する方法任意の提案を持っている場合は、以下を使用することができ、特定のユーザーのためのコンテンツプロファイルをロードするには

答えて

1

:-)あなたのANSERにそれを含めてくださいコード:

$profile = content_profile_load('content_profile_type', $uid); 

「content_profile_type」は、コンテンツプロファイルであるコンテンツタイプのマシン名で置き換える必要があります。

リモートデバッグを行わずにメッセージをうまくロギングする方法については、develモジュールが提供するdpm()関数を使用することをお勧めします。

dpm($profile); 

はあなたに含まれているかについての情報を表示します:DPM()関数についての詳細情報については、あなたがそうhttp://drupal.org/node/174575

を訪問することができ、コンテンツをアップロードした後、あなたは、DPM()そうのような呼び出すことができますプロフィールDrupalテーマのメッセージ領域にある$ profile変数に追加します。

+0

ありがとう、dpm()はクールです! – jabal

関連する問題