我如何在drupal中制作不同的注册表单?

时间:2011-02-14 13:56:31

标签: drupal-6 drupal-modules drupal-forms

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

3 个答案:

答案 0 :(得分:2)

这是你应该做的事情

  1. 从安装profile2-7.x-1.2.tar.gz开始。
  2. entity-7.x-1.0-rc3.tar.gz一旦安装了profile2 - >
  3. 启用 - >点击配置 - (在这里您可以看到您的个人资料类型 - 尽可能多地添加。)
  4. 当您添加新的“Main”或修改现有的“Main”时,请务必选中“提供单独的页面以编辑配置文件”。  4.现在要有不同的注册,登录和密码更改页面 安装并启用profile2_regpath-7.x-1.9.tar.gz 现在再次访问配置文件类型页面,您应该看到“独特的注册路径”..休息很容易..

答案 1 :(得分: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

答案 2 :(得分: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)获取此信息。然后你可以更加确定正确选择角色。