Comment utiliser une listbox pour définir l'argument d'une vue ?

Information importante

En raison d'un grand nombre d'inscriptions de spammers sur notre site, polluant sans relache notre forum, nous suspendons la création de compte via le formulaire de "sign up".

Il est néanmoins toujours possible de devenir adhérent•e en faisant la demande sur cette page, rubrique "Inscription" : https://www.drupal.fr/contact


De plus, le forum est désormais "interdit en écriture". Il n'est plus autorisé d'y écrire un sujet/billet/commentaire.

Pour contacter la communauté, merci de rejoindre le slack "drupalfrance".

Si vous voulez contacter le bureau de l'association, utilisez le formulaire disponible ici, ou envoyez-nous un DM sur twitter.

Débutant, j'apprend à définir et à filtrer une vue.

L'exemple que j'étudie définit un argument à cette vue et me liste donc les différentes valeurs possibles.

Mais pour mes besoins,cette liste de risque d’être longue et je souhaiterai pouvoir la "compacter" grâce à une une liste déroulante.

J'ai trouvé dans ce forum une référence à un module qui lui, permet dans ce cas de figure, de substituer des checkboxes à des listbox justement...ce qui a priori (et si j'ai bien compris) me laisse penser que c'est possible.

Mais je n'ai rien trouvé sur la façon d'implémenter cette fameuse liste déroulante.

Merci de votre aide.

Version de Drupal : 

Bonjour Kouri,

Puisque tu parles de vues et de filtres, je suppose que tu utilises bien le module "views".

Partant de là et si je comprends bien ton problème,

  • tu ajoutes à ta vue un "filtre" que tu dois "exposer" (cliquer sur le champ filtré, puis sur le bouton "exposer"),
  • tu définis ce filtre exposé avec une liste déroulante (cocher la case correspondante).

Dès lors, cela va créer automatiquement un "bloc" qui contient cette liste déroulante associée à ta vue.

Tu trouveras dans la liste des blocs (Administrer / Construction du site / Blocs) le nouveau bloc créé. Tu n'auras qu'à l'afficher quelque part sur ton site (souvent, sur une colonne, ou au dessus du corps) et il sera lié à ta vue.

Pour que ce bloc n'apparaisse que sur ta vue, il te faudra le "configurer" et dire que tu ne veux qu'il n'apparaisse que sur la fameuse page (radio bouton en bas de l'écran de configuration).

En espérant que ce soit ce que tu cherches !

Merci StefU2 pour tes explications

J'arrive a "exposer" le champ qui doit servir de filtre (Utilisateur:Nom) mais je n'ai pas trouvé comment indiquer que je souhaite tous ces noms dans une liste déroulante (les 3 seules cases a cocher qui sont apparues lors de l'exposition sont : Facultatif, Mémoriser et Limiter la liste aux éléments sélectionnés (j ai coché cette dernière)

Le résultat est une page avec toutes les reponses de tous les utilisateurs et au dessus une simple textbox et un bouton Appliquer.

Je dois taper le nom d'un utilisateur dans la textbox pour obtenir la liste des seules réponses de ce membre (ce qui représente pas mal de risque dans le cas d'un nom malgache ou finlandais...:)

J'ai surement raté quelque chose
:(

Salut Kouri,

Ce que je peux te proposer de tête, c'est non pas la liste déroulante, mais au moins un champ à saisir.

1) tu "exposes" ton champ, en l'occurrence, nom si j'ai bien compris.

2) dans l'opérateur, tu choisis "débute par" ou "contient" ou...

3) dans la partie "basics settings" de ta vue, n'oublie pas de mettre "oui" à la propriété "Exposed form in block", cela signifie que ça va te créer un "block" avec le champ de recherche.

4) tu vas dans la gestion des blocks, tu le mets où tu veux (col de droite ?) et tu spécifie que tu ne veux l'afficher que pour la page correspondant à ta vue.

5) ben... Ca doit marcher ! Dans ton écran, tu dois avoir ta vue, puis à côté un champ texte. Il ne te reste plus qu'à mettre un libellé du style "tapez le début du nom à rechercher" et ça te fera le bon filtre. Si tu as mis "débute par" et que tu tapes les 3 premières lettres du nom, il doit te filtrer tous les noms qui commencent par ces lettres.

Ce que tu cherches à faire doit forcément être possible mais là sans Drupal sous la main, je n'ai pas la solution.

@+

Merci Stef pour ton aide.

En fait, ce que j'obtenais correspondait déjà a ça. La textbox est en fait une combo box qui ne se déroule qu’après saisie des premiers caractères reconnus.

C'est pas si mal.