2011-02-14 68 views
1

有没有一个模块可以在注册时为不同的角色制作不同的注册表格? (。每前主编,主用户,副用户角色有不同的形式)如何在Drupal中制作不同的注册表单?

+0

你怎么知道用户在注册之前会有什么作用? – mingos 2011-02-14 13:58:56

+0

与url(例如reg/editor,reg/main,reg/sub) – MJH 2011-02-14 14:02:23

回答

2

这里是你应该做的

  1. 开始与安装profile2-7.x-1.2.tar.gz。
  2. 实体7.x的-1.0-rc3.tar.gz一旦你安装了PROFILE2 - >
  3. 启用 - >点击配置 - (这里你可以看到你的个人资料类型 -add只要你想尽可能多的)。

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

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)这一信息。那么你可以更确定角色是否被正确选择。