samedi, 01 octobre 2022 00:00

Personnalisation des résultats de recherche dans une recherche joomla classique

Écrit par
Évaluer cet élément
(0 Votes)
Je ne sais pas vous, mais je trouve que la recherche classique de notre CMS favoris ne retourne pas une présentation folichonne.
C'est la raison pour l'accueil j'ai dû, dans mon application professionnelle, modifier certains éléments pour présenter de manière plus sexy, les résultats de recherche retournés par joomia (Joomla content).
Dans cet article, je vous présente le résultat des travaux que j'ai entrepris sur la template dénommée protostar.
Pour effectuer cette personnalisation des résultats de recherche, je commence par hériter dans la termplate protostar, le composant com_search.
 
firefox P0fy9VO6V8
 
Désormais, si vous vous rendez dans votre répertoire de votre template, dans notre cas protostar, dans le sous répertoire template > protostar >  html > com_search, vous trouverez le fichier default_results.php.
explorer GU3wnreXv2
Vous l'aurez sans doute compris, c'est ce fichier qu'il faut hériter pour personnaliser l'affichage des résultats.
Vous le savez sûrement mais je tiens à lui rappeler, pour effectuer cet héritage, deux solutions s'offrent à vous :
  • soit vous vous rendez dans le répertoire présenté ci-dessus, en copiant com_search dans le répertoire de votre template,
  • soit vous utilisez l'option fournie par la console d'administration de Joomla afin de générer cet héritage. Désormais, si vous vous rendez dans votre sous répertoire du CMS, [dossier joomla]/template/[nom_de_votre_template]/html, vous allez retrouver un répertoire dénommé com_search. Et c'est dans les fichiers de ce répertoire que nous allons désormais travailler.
Désormais, ouvrons le fichier intitulé default_results.php. C'est effectivement ce fichier qui vous permet la présentation des résultats de recherche. Dans la version que j'utilise de Joomla, ce fichier contient certains commentaires vous permettant de comprendre ce qu'il se passe. Vous remarquerez 'ligne 16 par exemple que nous entrons dans une boucle qui permet de parcourir l'ensemble des résultats.
<?php foreach ($this->results as $result) : ?>
Dans cette boucle foreach, vous avez une classe qui vous permet d'identifier chacun des résultats. Je n'en dirai pas plus sur la partie technique, mais c'est à vous de voir ce qui se passe. Je ne peux que vous conseiller de commencer par faire, dans la boucle, un print_r de l'objet $result, c'est en effet dans cet objet que vous allez trouver l'ensemble des informations retournées par la classe générant les résultats.
Bien entendu, si vous n'avez pas bien analysé la documentation aupréalable concernant l'objet retourné, à savoir $this->results, je ne peux que vous encourager à simplement effectuer un print_r de ce résultat.
Vous avez donc désormais sous les yeux l'ensemble des résultats retournés par l'objet de recherche.
Sans rentrer trop dans les détails, vous pouvez vous rendre compte que chacun des objets retournés, sont "rangés" dans un tableau. Il vous est retourné un titre, un texte, une méta description, les données de type méta, la date de création, à quelle langue sont à attribués les résultats (Joomla est multilingue, ne l'oublions pas), la catégorie bien entendu, le texte, la section ou autrement dit à catégorie dans laquelle le résultat est rangé, et ce que Joomla appelle le slug c'est-à-dire la concaténation de l'id de l'objet suivi de l'alias de l'article, idem pour la catégorie, le texte de l'article, la référence de type href (c'est à dire le lien vers l'article) et enfin l'ensemble des champs personnalisés associés à cet article. La dernière propriété retournée étant le numéro d'ordre dans le tableau renvoyé.
un resultat de recherche
Maintenant que nous avons l'ensemble des résultats dans un tableau, il ne vous reste plus qu'à fabriquer, dans votre fichier que vous avez édité dans lequel nous avons fait notre print_r, une jolie présentation des résultats retournés.
afin d'afficher uniquement les résultats "complémentaires" que vous souhaitez voir afficher à votre page de recherche fournie par Joomla. Soyez créatif, rajoutez vos CSS et faites vous une jolie présentation personnalisée. Vous pouvez bien entendu, grâce aux objets du moteur Joomla, intégrer une nouvelle classe CSS afin de présenter votre page de recherche différemment.
Lu 642 fois Dernière modification le lundi, 26 septembre 2022 11:42

Intro Joomla QR

 

JoomlaQRVous avez des questions Joomla ? - J'ai vos réponses pratiques dans Joomla QR... mais n'hésitez pas à me soumettre vos questions sur Joomla.