Module d'enregistrement d'utilisateur pour Drupal

22

Drupal utilise le courrier électronique à des fins d'enregistrement des utilisateurs. Au lieu de l'enregistrement utilisateur Drupal prêt à l'emploi qui nécessite que l'utilisateur spécifie un nom d'utilisateur et une adresse e-mail, je veux un formulaire d'inscription utilisateur complet (avec captcha, profil utilisateur, etc., comme l'enregistrement yahoo ou gmail) pour mon site Web.

Y a-t-il un module qui fait ça?

Graviton
la source

Réponses:

24

Il y a quelques options pour cela.

Pour obtenir des champs de profil, la solution la plus courante est le module de profil inclus dans le noyau Drupal. Accédez à Administer > Site building > Moduleset activez-le sous core-optional. Ensuite, vous pouvez configurer le module Profil dans Administer > User settings > Profileet dans les paramètres, vous pouvez dire si les champs s'afficheront lors de l'inscription ou non.

Pour obtenir un captcha lors de l'inscription, vous aurez besoin de l'un des deux modules:

Je préfère Mollom car il fonctionne très bien sans être gênant, mais il envoie votre contenu vers un site externe pour faire une vérification.

Il y a aussi Captcha qui est moins fiable que Mollom mais qui garde le contenu à l'intérieur de votre site.

greggles
la source
L'utilisation du module de profil de contenu est un meilleur choix au lieu du module de profil standard. Le profil de contenu crée des nœuds.
eddy147
2
Blech. Pas vraiment. Le profil de contenu est un tas de frais généraux. Si le profil principal fonctionne bien pour les besoins de l'utilisateur (ce qu'il fait dans ce cas), il est beaucoup plus simple que le profil de contenu. "Le profil de contenu crée des nœuds" mais les nœuds ne sont pas toujours meilleurs!
gréggle
10

Le choix typique pour cela est d'utiliser une combinaison de content_profile pour créer le profil utilisateur en tant que nœud, content_profile_registration , un composant de content_profile, pour créer un tel profil lors de l'inscription en utilisant un tel formulaire d'édition de nœud à part entière, et éventuellement auto_assign_role si vous avoir plusieurs types d'utilisateurs avec des types de profil distincts.

Pour la partie captcha, Mollom est un service intéressant, comme l'a suggéré Greggles, mais vous voudrez peut-être également envisager reCaptcha , qui est également bon même en tant que service public.

MGF
la source
7

Il semblerait que le processus recommandé crée maintenant des champs. Depuis le site Drupal :

Le module Profil est obsolète dans Drupal 7. Il est conservé uniquement pour fournir un chemin de mise à niveau pour les sites Drupal 6 qui l'ont utilisé. L'utilisation du module Profile2 ou la création de champs directement sur l'entité utilisateur est recommandée dans Drupal 7.

Tony
la source
1

ReCaptcha à coup sûr.

Vous pouvez également faire apparaître les champs de profil de base simples lors de l'inscription si vous souhaitez rester maigre. Bien que cela vous oblige souvent à thème user_profile.tpl.php si vous voulez que cette page soit publique.

PS: Le module d' inscription par e-mail peut être d'utilisateur, ainsi que LoginToboggan .


la source
1

En ce qui concerne le "formulaire d'inscription utilisateur à part entière", vous pouvez aller dans Admin >> Utiliser la gestion >> Profils puis créer / personnaliser vos champs et assurez-vous de cocher l'option "Visible dans le formulaire d'inscription utilisateur".


la source
0

Si je modifie, user_profile.tpl.phpje peux facilement conserver la partie d'enregistrement comme je le souhaite.

<?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'])));
     }
   }
?>

la source