2012-01-21 80 views
1

如何實現兩種類型的註冊,如學生和老師? 我需要兩種類型的註冊一個老師和一個學生。兩者都是不同的註冊,都有不同的角色。在Drupal中可能嗎?而且我還需要註冊學生沒有管理員批准,但對於教師註冊,需要管理員批准。我如何在Drupal 6中實現這一點?Drupal中的多級註冊

回答

1

據我所知,drupal沒有提供任何機制來擁有多種類型的註冊表單。不過,您可以從頭開始創建自己的註冊表單。所有你真正需要的是創建一個新用戶的user_save函數。請參閱下面的示例代碼爲form_submit鉤

function add_student_form_submit($form, &$form_state) { 

    $fields = array(); 
    $fields['is_new'] = true; 
    $fields['name'] = $form_state['values']['user_name']; 
    $fields['pass'] = $form_state['values']['pass']; 
    $fields['status'] = 1; 

    // $user = user_save(drupal_anonymous_user(), $fields); //This works in D7 
    $user = user_save('', $fields); //pretty sure this is what works in D6 
} 

使用這個,你可以創建要爲每個表單

2

在自定義用戶註冊表單的任何自定義邏輯的一部分添加更多的選擇框場角色類型(學生,老師)。然後在提交鉤子檢查如下所示。

function add_student_form_submit($form, &$form_state) { 

$fields = array(); 
$fields['is_new'] = true; 
$fields['name'] = $form_state['values']['user_name']; 
$fields['pass'] = $form_state['values']['pass']; 

$role_type = $form_state['values']['role_type']; 

//Add the user to the corresponding role 
$fields['roles'] = array($role_type) 

//here you can achieve the thing which you want.If the role is a teacher then set 
//status = 0, else status = 1 
if($role_type == 'student') 
    $fields['status'] = 1; 
else 
    $fields['status'] = 0; // $user = user_save(drupal_anonymous_user(), $fields); //This works in D7 

$user = user_save('', $fields); //pretty sure this is what works in D6 } 

如果用戶是你應該去http://localhost/domain_name/admin/user/user老師。您可以在這裏過濾非活動用戶並激活它們。

2

嘿,你可以使用下面的模塊創建多級註冊。

http://drupal.org/project/content_profile http://drupal.org/project/autoassignrole

上述模塊幫助您創建網站多註冊表格。從內容配置文件中您可以創建表單併爲學生賦予自動分配角色。