Catégories:
Bonjour,
Je suis un nouvel utilisateur de Drupal qui m’a grandement convaincu pour l’instant !
J’aimerais savoir comment mettre en œuvre une recherche d’utilisateur personnalisée ? En gros, j’aimerais avoir un formulaire de recherche avec des champs tels que le nom, le prénom, la date de naissance de l’utilisateur.
Y a-t-il des modules qui réalisent cela ? Ou une astuce pour modifier le module Search existant ? J’ai cherché mais sans succès…
Merci d’avance pour votre aide.
- Vous devez vous identifier ou créer un compte pour écrire des commentaires

Hello !
As-tu regardé du côté du module Views ?
Il permet d’afficher des listes (notamment d’utilisateurs) et d’exposer les filtres utilisés à l’utilisateur
Voici un exemple rapide obtenu avec Views. Il crée une page dont le chemin est
/rechercheutilisateur. Il suffit de copier-coller ce code dans Views via sa fonction d’import. En théorie, ça devrait marcher étant donnée la simplicité de la vue mais je n’ai jamais testé ;-)$view = new view; $view->name = 'infouser'; $view->description = 'Infos utilisateurs'; $view->tag = ''; $view->view_php = ''; $view->base_table = 'users'; $view->is_cacheable = FALSE; $view->api_version = 2; $view->disabled = FALSE; /* Edit this to true to make a default view disabled initially */ $handler = $view->new_display('default', 'Paramètres par défaut', 'default'); $handler->override_option('fields', array( 'mail' => array( 'label' => 'Adresse électronique', 'alter' => array( 'alter_text' => 0, 'text' => '', 'make_link' => 0, 'path' => '', 'link_class' => '', 'alt' => '', 'prefix' => '', 'suffix' => '', 'help' => '', 'trim' => 0, 'max_length' => '', 'word_boundary' => 1, 'ellipsis' => 1, 'strip_tags' => 0, 'html' => 0, ), 'link_to_user' => 'mailto', 'exclude' => 0, 'id' => 'mail', 'table' => 'users', 'field' => 'mail', 'relationship' => 'none', ), 'created' => array( 'label' => 'Date de création', 'alter' => array( 'alter_text' => 0, 'text' => '', 'make_link' => 0, 'path' => '', 'link_class' => '', 'alt' => '', 'prefix' => '', 'suffix' => '', 'help' => '', 'trim' => 0, 'max_length' => '', 'word_boundary' => 1, 'ellipsis' => 1, 'strip_tags' => 0, 'html' => 0, ), 'date_format' => 'small', 'custom_date_format' => '', 'exclude' => 0, 'id' => 'created', 'table' => 'users', 'field' => 'created', 'relationship' => 'none', ), 'language' => array( 'label' => 'Langue', 'alter' => array( 'alter_text' => 0, 'text' => '', 'make_link' => 0, 'path' => '', 'link_class' => '', 'alt' => '', 'prefix' => '', 'suffix' => '', 'help' => '', 'trim' => 0, 'max_length' => '', 'word_boundary' => 1, 'ellipsis' => 1, 'strip_tags' => 0, 'html' => 0, ), 'link_to_user' => 1, 'exclude' => 0, 'id' => 'language', 'table' => 'users', 'field' => 'language', 'relationship' => 'none', ), 'name' => array( 'label' => 'Nom', 'alter' => array( 'alter_text' => 0, 'text' => '', 'make_link' => 0, 'path' => '', 'link_class' => '', 'alt' => '', 'prefix' => '', 'suffix' => '', 'help' => '', 'trim' => 0, 'max_length' => '', 'word_boundary' => 1, 'ellipsis' => 1, 'strip_tags' => 0, 'html' => 0, ), 'link_to_user' => 1, 'overwrite_anonymous' => 0, 'anonymous_text' => '', 'exclude' => 0, 'id' => 'name', 'table' => 'users', 'field' => 'name', 'relationship' => 'none', ), )); $handler->override_option('filters', array( 'status' => array( 'operator' => '=', 'value' => '1', 'group' => '0', 'exposed' => FALSE, 'expose' => array( 'operator' => FALSE, 'label' => '', ), 'id' => 'status', 'table' => 'users', 'field' => 'status', 'relationship' => 'none', ), 'uid' => array( 'operator' => 'in', 'value' => '', 'group' => '0', 'exposed' => TRUE, 'expose' => array( 'use_operator' => 0, 'operator' => 'uid_op', 'identifier' => 'uid', 'label' => 'Utilisateur : Nom', 'optional' => 1, 'remember' => 0, 'reduce' => 0, ), 'id' => 'uid', 'table' => 'users', 'field' => 'uid', 'relationship' => 'none', ), )); $handler->override_option('access', array( 'type' => 'none', )); $handler->override_option('cache', array( 'type' => 'none', )); $handler = $view->new_display('page', 'Page', 'page_1'); $handler->override_option('path', 'rechercheutilisateur'); $handler->override_option('menu', array( 'type' => 'none', 'title' => '', 'description' => '', 'weight' => 0, 'name' => 'navigation', )); $handler->override_option('tab_options', array( 'type' => 'none', 'title' => '', 'description' => '', 'weight' => 0, ));Zigazou
194
Merci pour ta réponse.
Pour l’instant, j’ai +/- su me débrouiller à l’aide du module «Finder» qui me permet de faire de la recherche de views. Et je crée donc un formulaire de recherche de views avec les infos des utilisateurs.
Je ne sais pas si c’est optimal ni si ça fonctionne nickel car je n’ai testé que sur un utilisateur et avec un seul champ de recherche.
Je vais aussi tester ton idée ! Merci beaucoup !
boudincweole
2