サインアップ時に役割ごとに異なる登録フォームを作成できるモジュールはありますか? (例: 編集者、メイン ユーザー、サブ ユーザー ロールごとにフォームが異なります)
3 に答える
これがあなたがすべきことです
- profile2-7.x-1.2.tar.gz のインストールから始めます。
- profile2 をインストールしたら、entity-7.x-1.0-rc3.tar.gz -->
- 有効にする --> 構成をクリックします - (ここにプロファイル タイプが表示されます - 必要な数だけ追加します)。
新しいものを追加するか、既存の「メイン」を変更するときは、「プロファイルを編集するための別のページを提供する」にチェックを入れてください。4. ここで、別の登録、ログイン、およびパスワード変更ページをインストールして、profile2_regpath-7.x-1.9.tar.gz を有効にします。プロファイル タイプ ページに再度アクセスすると、「UNIQUE REGISTRATION PATH」が表示されます。あとは簡単です。
がある :)
http://drupal.org/project/autoassignrole
パスで割り当てるには、コンテンツ プロファイルも必要です。
http://drupal.org/project/content_profile
それをやってのける方法については、このチュートリアルをチェックしてください。
http://www.web-a-team.com/blog-post/user-registration-more-one-role
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 ) からこの情報を取得できます。そうすれば、役割が正しく選択されていることをより確実にすることができます。