1

是否有模块可以在注册时为不同的角色制作不同的注册表单?(例如,每个编辑者、主用户、子用户角色都有不同的形式)

4

3 回答 3

2

这是你应该做的

  1. 从安装 profile2-7.x-1.2.tar.gz 开始。
  2. entity-7.x-1.0-rc3.tar.gz 一旦你安装了 profile2 -->
  3. 启用->单击配置-(在这里您可以看到您的个人资料类型-根据需要添加任意数量)。

当您添加新的或修改现有的“主要”时,请确保选中“为编辑配置文件提供单独的页面”。4. 现在要安装不同的注册、登录和密码更改页面并启用 profile2_regpath-7.x-1.9.tar.gz 现在再次访问配置文件类型页面,您应该会看到“唯一注册路径”.. 休息很容易..

于 2012-09-19T13:33:08.967 回答
1

有 :)

http://drupal.org/project/autoassignrole

要按路径分配,您还需要内容配置文件:

http://drupal.org/project/content_profile

查看本教程,了解如何将其拉下来:

http://www.web-a-team.com/blog-post/user-registration-more-one-role

于 2011-02-14T14:08:18.700 回答
0

这是一些如何在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 ) 获取此信息。然后,您可以更加确定角色选择是否正确。

于 2016-04-30T07:14:31.167 回答