Abonnement à ma liste de contacts

🖮 URL SourceForge ou Github: https://github.com/slhuilli1/ongletvide
Etoiles inactivesEtoiles inactivesEtoiles inactivesEtoiles inactivesEtoiles inactives
 

Dans le cadre de mon projet professionnel de gestion de documents, je classe l'ensemble des fichiers dont je dois fournir un lien de téléchargement, dans des onglets via le composant de régular labs tabs.

Le besoin

Dans chacun de ces onglets, au moyen de l'outil du même éditeur content replacer, si cet onglet ne contient aucun lien de téléchargement, ma hiérarchie m'a demandé de positionner un texte de spécifiant. Afin de ne pas avoir à tout corriger au gré des différents changements politiques, le texte que je remplace est lui-même spécifié dans content templater par la "constante" [[[onglet_vide]]]. Le composant de remplacement va alors remplacer cette chaîne de caractère, par un div auquel j'ai appliqué un style assez sympa, avec la chaîne de caractère "cet onglet ne contient aucun lien de téléchargement." Voila pour la demande de départ.
 
Or, au fil des mois, nous nous rendons compte que sur l'ensemble des onglets d'une fiche, chacune des fiches contenant environ une quinzaine d'onglet, si nous recherchons un document sur une fiche, nous sommes obligés de cliquer sur l'onglet pour voir son contenu. La demande de ma hiérarchie a été à suivante : ne serait-il pas possible d'adjoindre dans le libellé de l'onglet, un symbole distinctif spécifiant et la présence ou absence de document téléchargeable dans cet onglet"
 

Analyse d'expression rationnelle

Je ne vais pas vous le cacher, j'ai passé énormément de temps à réfléchir à une expression régulière pour pouvoir afficher les onglets contenant soit la chaîne spécifiant que l'onglet est vide, soit éventuellement une chaîne de caractères spécifiant que l'onglet n'est pas vide. 
J'ai passé énormément de temps sur ce sujet et ne savais vraiment pas comment faire ma requête point de plus, je m'interrogeais sur le fait de placer ma regex sur le code HTML généré, ou sur le code Joomla contenant les short code du composant tab, totu en réorganisant les appels des plugins dans Joomla.

Fonctionnement 

Après de nombreux tests, j'ai opté pour la recherche dans le code HTML  généré, ce qui paradoxalement a été beaucoup plus simple à traiter.
Ainsi, mon expression rationnelle va rechercher une liste dont la classe est bien spécifique aux onglets, j'en extrais le contenu des listes mais sous 3 groupes de recherche différents
  • dans un premier temps je recherche tout le groupe qui contient la liste jusqu'au libellé de l'onglet
  • dans le deuxième groupe, j'extrais le contenu de l'onglet 
  • donc le dernier groupe, j'extrais le reste avec le contenu de la constante spécifiant que mon onglet est vide. Dans mon cas, cette constante s'appelle [[[onglet_vide]]].

Le code

Comme vous pourrez le voir dans le code source que je vous propose, je recherche donc ma regex avec le début de la liste, j'extrais le contenu ainsi que la fin de ma liste avec la chaîne de caractère spécifiant que mon onglet est vide. Je récupère ensuite dans les paramètres du plugin, le code ASCII correspondant au caractère spécial que je souhaite mettre avant le libellé de l'onglet pour spécifier que ce dernier est vide, puis je substitue simplement cette nouvelle chaîne de caractères au contenu existant de l'onglet. 
 
Voila, rien de bien compliqué même si j'ai mis un certain temps avant de réussir ce plugin

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