Le module Views, disponible sur Drupal.org et présenté dans le billet Drupal - Utilisation du module Views 2, est très apprécié dans le monde de Drupal. Sa grande force est qu'il permet d’éviter de coder les requêtes SQL destinées à l’affichage dynamique de contenus.
Bien que cela soit peu connu, Views (dans sa version 3) permet aussi d’aller au-delà de la création de pages, de blocs ou de flux RSS. En effet, il peut être utilisé pour créer un moteur de recherche efficace, et ce en quelques clics, comme nous allons le voir.
Prenons une vue affichant une liste d’objets (ici des livres) dont on affichera certains champs (fields) :
Le principe suivi par les moteurs de recherche est de restreindre le nombre de résultats d’une recherche pour afficher les plus pertinents ; nous allons justement utiliser les critères de filtrage (filter criterias) mais en les rendant ajustables par l’utilisateur (exposed filters), comme c’est le cas dans la figure suivante :
Pour rendre un filtre ajustable, il suffit de cliquer sur son nom puis de cocher la case Expose this filter to visitors :
Après avoir vérifié que les nouvelles options du champ vous conviennent (vous pouvez notamment faire en sorte que Drupal retienne la dernière sélection de l’utilisateur, définir une valeur par défaut...), vous pourrez appliquer les changements. Le filtre apparaîtra alors dans la vue :
On peut appliquer cette méthode autant de fois que nécessaire, pour offrir au visiteur un maximum de filtres pour sa recherche.
Remarques :
- On peut laisser le choix pour l’ordre dans lequel seront triés les résultats en appliquant la même technique sur les critères de tris (sort criteria). L’utilisateur ne pourra cependant sélectionner qu’un critère de tri à la fois.
- Cette technique est utilisée par le moteur de recherche de Littéraction.fr, qui a servi d’exemple dans cet article.