Ajouter un filtre pour la recherche des utilisateurs

Bonjour,

Sur la page «/admin/user/user/list» d’un site drupal, il y a une liste des utilisateurs avec des filtres au-dessus permettant de rechercher un/des utilisateur(s) plus aisément.

Je voudrais ajouter un filtre à cette collection. Ce filtre doit être un champ texte et j’ai du mal à saisir comment faire.

J’ai testé de créer un hook sur la fonction user_filter_form() seulement il semblerait qu’elle n’aime pas créer des champs textes… Visiblement son dada, c’est les champ de type select… donc ça ne me convient pas !!!

Au final, j’ai ajouter un champ à mon formulaire en passant par le hook_form_alter() :

/**
* Implementation of hook_form_alter().
* @ingroup form
*/
function monmodule_form_alter(&$form, &$form_state, $form_id) {
    switch ($form_id) {
        case 'user_filter_form':
         if ($form['filters']['status'] && $form['filters']['filter']) {
                $form['filters']['status']['club'] = array ( '#type' => 'textfield', '#size' => 25 );
                $form['filters']['filter']['#options']['club'] = 'n° carte club';
            }
          // Fichier reprenant le système du fichier /misc/form.js => adaptation pour les champs de type text
         drupal_add_js('themes/montheme/scripts/sort_users.form.js', 'core');
       break;
     default:
       break;
}
}

Ensuite j’ai précisé la requête SQL qui doit être effectuée lorsqu’on choisit ce filtre.

/**
* Implementation of hook_filters().
* @ingroup user
*/
function monmodule_filters() {
    $filters['club'] = array(
        'title' => 'n° carte club',
     'join' => 'LEFT JOIN {profile_values} p ON ur.uid = p.uid',
     'where' => "p.fid = 12 AND p.value = '%s'",
   );
return $filters;
}

Là je pensais être plutôt bien mais ma requête n’est pas du tout prise en compte.
Résultat je suis un peu perdu… je pense devoir passer par la fonction user_filter_form_submit($form, &$form_state), sauf que je ne vois pas trop comment intervenir dessus de manière à ce qu’il prenne en compte mon champ texte…

Si quelqu’un a une idée/orientation/solution, je suis ultra-preneur !

Merci d’avance

Syndiquer le contenu