Drupalのユーザー登録モジュール


22

Drupalはユーザー登録の目的で電子メールを使用します。ユーザーがユーザー名とメールアドレスを指定する必要のあるすぐに使えるDrupalユーザー登録の代わりに、私のウェブサイトの本格的なユーザー登録フォーム(yahooやgmail登録などのcaptcha、ユーザープロファイルなど)が欲しいです。

それを行うモジュールはありますか?

回答:


24

これにはいくつかのオプションがあります。

プロファイルフィールドを取得するための最も一般的なソリューションは、Drupalコアに含まれるプロファイルモジュールです。Administer > Site building > Modulescore-optionalに移動して有効にします。次にAdminister > User settings > Profile、設定でプロファイルモジュールを設定し、登録中にフィールドが表示されるかどうかを指定できます。

登録中にキャプチャを取得するには、いくつかのモジュールのいずれかが必要です。

Mollomは、迷惑をかけることなく非常にうまく機能するので、Mollomを好みますが、コンテンツを外部サイトに送信して検証を行います。

Mollomよりも信頼性は低いが、コンテンツをサイト内に保持するCaptchaもあります。


標準プロファイルモジュールではなく、コンテンツプロファイルモジュールを使用することをお勧めします。コンテンツプロファイルはノードを作成します。
eddy147

2
Blech。あんまり。コンテンツプロファイルはオーバーヘッドの束です。コアプロファイルがユーザーのニーズに合っている場合(この場合)、コンテンツプロファイルよりもはるかに簡単です。「コンテンツプロファイルはノードを作成します」が、ノードが常に優れているとは限りません!
11

10

このため、一般的な選択は、組み合わせ使用することですcontent_profileを、ノードとしてユーザプロファイルを作成するにはcontent_profile_registration、content_profileの構成要素は、そのような本格的なノード編集フォームを使用して登録時に、このようなプロファイルを作成するために、そしておそらくauto_assign_roleあなたの場合異なるプロファイルタイプを持つ複数のタイプのユーザーがいます。

キャプチャの部分については、Gregglesが示唆したようにMollomのは、興味深いサービスですが、あなたも考慮する必要がありますreCAPTCHAの公共サービスとしても、ダブルスであまりにも良いです、。


7

現在、推奨されるプロセスはフィールドの作成です。Drupalサイトから:

プロファイルモジュールは、Drupal 7で非推奨になりました。プロファイルモジュールは、それを使用したDrupal 6サイトのアップグレードパスを提供するためだけに残されています。Drupal 7では、Profile2モジュールを使用するか、ユーザーエンティティでフィールドを直接作成することをお勧めします。


1

ReCaptchaは確かです。

無駄を省いたい場合は、登録時に単純なコアプロファイルフィールドを表示することもできます。ただし、そのページを公開したい場合は、user_profile.tpl.phpをテーマにする必要があります。

PS:メール登録モジュールは、LoginTobogganと同様にユーザーのものである場合があります。


1

「本格的なユーザー登録フォーム」に関しては、「管理」>>「管理の使用」>>「プロファイル」を選択し、フィールドを作成/カスタマイズして、「ユーザー登録フォームに表示」オプションにチェックマークを付けます。


0

編集するとuser_profile.tpl.php、登録部分を簡単に維持できます。

<?php
   // Validate the username:
   if (user_access('change own username') || user_access('administer users') || arg(1) == 'register') {
     if ($error = user_validate_name($edit['name'])) {
       form_set_error('name', $error);
     }
     else if (db_num_rows(db_query("SELECT uid FROM {users} WHERE uid != %d AND LOWER(name) = LOWER('%s')", $uid, $edit['name'])) > 0) {
       form_set_error('name', t('The name %name is already taken.', array('%name' => $edit['name'])));
     }
     else if (drupal_is_denied('user', $edit['name'])) {
       form_set_error('name', t('The name %name has been denied access.', array('%name' => $edit['name'])));
     }
   }
?>
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.