2011-08-01 2 views
1

나는 등록시 콤보에서 선택한 항목을 기반으로 내 사이트에 등록하는 사용자에게 내 역할이 특정 역할을 수행하는 Drupal 6 모듈을 작성합니다 컨텐츠 프로파일 별 필드. (자동 선택 역할 모듈은 역할 선택을 기반으로 조건부 필드를 사용해야하기 때문에 작동하지 않습니다.이 두 작업을 함께 할 수 없습니다.)Drupal 6의 등록 필드 콤보를 기반으로 새 사용자의 역할 설정

내 모듈에서 hook_user()가 구현되었지만 ' 내 & 편집 또는 & 계정 개체에서 프로필 필드의 값을 볼 수 없기 때문에 필드 값을 기준으로 결정하는 방법을 알고 있습니다.

/** 
* 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

:-) 귀하의 답변에 그것을 포함하십시오 코드 :

$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

관련 문제