Drupal 7 : Création d’un moteur de recherche avec Views

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) :

article_img1.PNG

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 :

article-img2.PNG

Pour rendre un filtre ajustable, il suffit de cliquer sur son nom puis de cocher la case Expose this filter to visitors :

article-img3.PNG

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 :

article-img4.PNG

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.

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Captcha *

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.