Abonnement à ma liste de contacts

PJ1: rechercheget.zip
Etoiles inactivesEtoiles inactivesEtoiles inactivesEtoiles inactivesEtoiles inactives
 

Je vous présente aujourd'hui un petit plugin qui répond à une problématique professionnelle très simple sur Joomla Content qui se trouve être la suivante :

 Nous utilisons sur notre site un petit composant écrit avec Ajax qui permet par une méthode d'auto completion, d'afficher le résultat de recherche suite à un saisie par l'utilisateur, d'une chaîne de caractères. En d'autres termes, nous utilisons un composant de recherche.
Toutefois, nous avons dans notre système d'information, l'obligation de posséder des URL "uniques", qui pointent sur des pages spécifiques. En d'autres termes, une URL. Ces URL sont appelées d'ailleurs, de l'exterieur à Joomla et sont TOUJOURS, dans le cas qui nous concerne ici, des URL vers des fichier pdf.

La problématique

D'une manière historique, chacun de nos noms de fichiers comporte une sous-chaîne "unique" : la date.
Le problème est le suivant, chaque fois que je mets à jour un fichier dans Joomla dans lequel la date est contenue dans son nom, l'URL précédente devient caduque. C'est ainsi que nous nous retrouvons avec des liens de type 404 qui pointent sur rien.. Et il faut refaire les mises à jours depuis chacun des appels, ces appels se trouvant essentiellement dans des applications métiers.
Or, la date contenue dans le champ du nom du fichier n'est pas le premier élément. Il se trouve donc que l'on peut effectuer une recherche, en spécifiant une sous-chaine de caractères qui correspond à une partie du nom du fichier que je souhaite rechercher. Je dirais même, que je souhaite trouver.
Par exemple, un nom de fichier peut être 20230102-KIT-00000005-vehicule-voiture-twingo-5-portes.pdf
Ce nom de fichier comporte :
  1. une date
  2. un type de fichier (je parle de type "métier" du fichier
  3. un identifiant auquel se rattache ce fichier
  4. le reste est une chaine libre aves des tirets séparateurs
  5. une extension de fichier (pdf)
À partir de là, nous sommes bien d'accord que si nous faisons une recherche sur une chaîne de caractères qui se trouve être unique, bien qu'incomplète pour le nom d'un fichier que nous recherchons, nous avons tout de même trouvé un et un seul résultat.
Partant de ce constat, je me suis dit que j'allais réutiliser non pas le moteur de recherche de Joomla, mais de simples requêtes SQL qui vont me permettre de faire une recherche sur une sous-chaiêne de caractères, qui donc se trouve être unique, et qui va me retourner le ou les articles de Joomla content qui contiennent ces sous chaînes de caractères.
Statistiquement, 1 et un seul résultat sera retourné dans 95 % des cas. Cela vient du fait que nous nommons nos fichiers avec des noms qui arrivent à peu près à être presque uniques, même si je fais abstraction de l'identifiant date dans ce nom.

Mon plugin 

Après avoir analysé longuement (plusieurs semaines mais pas à temps complet) la situation afin de trouver une manière simple d'obtenir le résultat escompté, je me suis rendu compte que si nous pouvions dans Joomla récupérer un paramètre de URL passé en get, et réutiliser ce résultat dans une requête SQL. Ainsi, je pouvais récupérer l'ensemble des articles dans lesquels cette souus-chaîne de caractères est contenue. Or, si cette chaîne de caractères est le nom du fichier, dans lequel je fais un lien hypertexte sur ce fichier se trouvant sur mon serveur ou un autre, je récupère l'article qui concerne cette chaines de caractères. Je pourrais passer mon article pour me récupérer que l'URL mais je n'en suis encore pas là.
Pour le moment, mon petit plugin que j'intègre à un article Joomla par la balise {recherche_get}, me récupère le paramètre passé dans URL de la chaîne que j'ai à rechercher, et me renvoie une liste des articles qui contient cette chaîne.
Bien entendu je parle de nom de fichier, mais dans la mesure où je travaille avec des chaînes de caractères, vous pouvez réutiliser ce plugin pour rechercher n'importe quelle chaîne de caractères contenue dans un article de type Joomla content en GET.
Et dans le retour, je n'affiche que les ID + titres des articles, mais ils serait possible d'aller plus loin, en faisant des extractions au moyen de regex pour afficher le contenu de l'article où la chaine a été trouvée.
 

Le paramètre et l'utilisation de ce plugin

Je ne l'ai pas précisié mais il vous assufit de lire mon code pour le trouver, le paramètre de l'URL est ?chaine_recherchee.

Pour utiliser ce plugin, il vous suffit donc :

  1. de créer un article (dont le rôle est simplement d'etre le récipient du plugin)
  2. l'intégrer le plugin dans cet aprticle via son shortcode : {recherche_get}
  3. d'enregistrer l'article et de connaitre son URL d'accès (que ce soit en moed directe avec les paramètres de base, ou en URL rewritée
  4. de générer son url de recherche. Attenntion ici, si votre serveur est configuré en url rewritée ou pas (je vous mets en bleu les paramètres) :
    1. en URL Rewritée : index.php/liste-des-articles-articles-non-categorises/71-recherche-en-get?chaine_recherchee=Monkit
    2. en URL non rewritée
      index.php?option=com_content&view=article&id=71&chaine_recherchee=KIT
 

 

Vous retrouverez ici tous mes articles explicatifs de mes concepts, mes résultats d'analyses techniques m'ayant permi d'aboutir à un fonctionnement de mes applicatifs très fonctionnel

Rapport sondage marche

Voici le rapport statistique du sondage (auquel vous pouvez toujours répondre) que j'ai lancé sur le sujet

Mon GitHub

Voyant que l'intégration du flux RSS ralentissait tout mon site, voisi le simple lien de mon flux RSS : Mon GitHub