Многоуровневая регистрация в Drupal - PullRequest
1 голос
/ 21 января 2012

Как реализовать два типа регистрации как ученик и учитель? Мне нужно два типа регистрации: один для учителя и один для студента. У обоих разные регистрации и у обоих разные роли. Возможно ли это в Drupal? Кроме того, мне нужна регистрация Студента, нет разрешения администратора, но для регистрации Учителя требуется разрешение администратора. Как я могу добиться этого в Drupal 6?

Ответы [ 3 ]

2 голосов
/ 22 января 2012

В пользовательской форме регистрации пользователя добавьте еще одно поле выбора с ТИПОМ РОЛЕ (студент, преподаватель). Затем на проверке подтверждения отправки, как показано ниже.

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 голосов
/ 02 февраля 2012

эй, вы можете использовать ниже модули для создания многоуровневой регистрации.

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

вышеупомянутые модули помогут вам создать многоуровневую регистрационную форму на сайте. Из профиля контента вы можете создать форму, а также назначить студенту автоматическую роль.

1 голос
/ 22 января 2012

Насколько мне известно, 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
}

Используя это, вы можете создать любую пользовательскую логику, которую вы хотите для каждой формы

...