как сделать различную регистрационную форму в drupal? - PullRequest
1 голос
/ 14 февраля 2011

Существует ли модуль, который может создавать разные регистрационные формы для разных ролей при регистрации?(например, каждый редактор, основной пользователь, роль дополнительного пользователя имеют различную форму)

Ответы [ 3 ]

2 голосов
/ 19 сентября 2012

Вот что вы должны сделать

  1. начать с установки профиля 2-7.x-1.2.tar.gz.
  2. entity-7.x-1.0-rc3.tar.gz, если у вас установлен profile2 ->
  3. enable -> нажмите на configure - (Здесь вы видите типы профилей -add столько раз, сколько хотите).

когда выдобавьте новый или измените существующий «Основной», убедитесь, что вы отметили «Предоставить отдельную страницу для редактирования профилей».4. Теперь, чтобы иметь разные страницы регистрации, смены логина и пароля, установите и включите profile2_regpath-7.x-1.9.tar.gz Теперь снова посетите страницу типов профилей, здесь вы должны увидеть «УНИКАЛЬНЫЙ ПУТЬ РЕГИСТРАЦИИ» ... отдыхать просто ...

1 голос
/ 14 февраля 2011

Есть:)

http://drupal.org/project/autoassignrole

для назначения по пути вам также понадобится Content Profile:

http://drupal.org/project/content_profile

Изучите этот урок о том, как это сделать:

http://www.web -a-team.com / блог-пост / пользователем учетно-более-один-роль

0 голосов
/ 30 апреля 2016

Вот некоторая идея, как решить ваш вопрос в Drupal 7 (я думаю, что он также должен работать в Drupal 6).Однако это небезопасно, поскольку любой может просто изменить свою роль:

function my_module_form_user_register_form_alter(&$form, &$form_state, $form_id) {

    $company_role = $form_state['build_info']['args'][0];

    $form['account']['company_role'] = array(
        '#type'         => 'select',
        '#title'        => t('Company role'),
        '#options'      => drupal_map_assoc(array('editor','main user','Sub User')),
        '#description'  => t('Please select your company role'),
        "#empty_option" =>t('- Select -'),
        '#weight'       => -11,  // Add the select box above username that have weight -10

    );

    switch (strtolower($company_role)) {
        case 'editor':
            // add extra fields for editor
            $form['account']['company_role']['#default_value'] = $company_role;
            break;
        case 'main user':
            // add extra fields for main
            $form['account']['company_role']['#default_value'] = $company_role;
        case 'sub user';
            // add extra fields for 'Sub User'
            $form['account']['company_role']['#default_value'] = $company_role;
            break;
        default:
            $form['account']['company_role']['#empty_option'] = t('- Select -');
            $company_role = null;// error handling or default case
    }

}

Если у вас, например, есть LDAP в вашей компании, вы можете вместо этого получить эту информацию из LDAP (https://www.drupal.org/node/1053748). Тогда вы можетебудь уверен, что роль выбрана правильно.

...