PJ1: qr.zip

Je vous propose aujourd'hui un petit plugin que j'ai écrit, en m'appuyant sur le travail de l'auteur Alvaro que j'ai trouvé sur le site code Pen. Je vous mets ici le lien de référence  : https://codepen.io/alvarotrigo/pen/qBpBezx

La problématique

Dans le cadre de mes fonctions de documentaliste, je suis amené à répondre de manière téléphonique, à des demandes documentaires ou techniques qui sont souvent spécifiques à certains éléments très particulier. Ces questions peuvent revenir très souvent. Aussi, le développement de cet outil a pour but de fabriquer une base de connaissance documentaire, qui pourra être disponible à l'ensemble de mes utilisateurs pour chacun des article que je gère dans Joomla.
Après interview de mes supérieurs, il a été choisi de ne pas organiser ces questions-réponses sous la forme de thématiques, dans la mesure où ce nombre de questions-réponses reste relativement faible. C'est la raison pour laquelle je ne me contente que d'un seul niveau dans la présentation : une question égale à une ou plusieurs réponses, réponses au sein d'un même paragraphe. En effet, l'idée étant d'agrémenter au fil du temps les réponses à les questions auxquelles nous sommes confrontées. Cette rubrique a pour but d'être non figée dans le temps est très dynamique et réactive.

Le plugin 

Avec une formation assez ancienne d'informaticien, je suis relativement attaché à la cohérence des données qui nous retrouvons notamment dans la méthode d'analyse de bases de données MERISE 2. Partant de ce principe, je n'ai pas voulu fabriquer un module que j'intègre à chacune de mes fiches (on pourrait penser à Qlue Accordion, le lien entre le module et article étant à recréer à chaque fois, mais surtout il faudrait créer un nouveau module à la création de chacune des fiches. Je ne suis pas de ce genre-là, je suis un gros fainéant (et donc un grand garant de la cohérence des données, ca va souvent de pair !) !  c'est la raison pour laquelle je pars du principe que le rédacteur de la documentation, à savoir moi-même, va fabriquer dans chacun de ses articles, une "orthographe" particulière (c'est à dire un shortcode pour parler Joomla) qui va pouvoir présenter mes questions réponses.

Le fonctionnement 

 Comme je souhaite donc rédiger mes questions ainsi que leur réponse au cœur de mon article, j'ai plutot souhaité fabriquer un plugin qui, chargé en amont de l'article par le système Joomla, va savoir  récupérer mes tags travaillant en couple : un tag question, un tag réponse. J'aurais pu englober comme en XML ce couple dans un tag père mais je n'y voyais pas l'interet technique, dans la mesure ou je n'opère pas de tri ou d'autres action sur mes questions-reponses.
Ainsi, mon système va pouvoir détecter l'ensemble des questions, qui vont apparaître dans un volet fermé mais visible par l'utilisateur, et sa réponse qui sera dans le volet fermé (mais ouvrable) par défaut à utilisateur. Lorsque ce dernier cliquera sur la petite icône flèche située sur la droite du titre, à ce moment-là, l'accordéon va s'ouvrir et la réponse apparaîtra à l'utilisateur.
firefox HAYhSvKsTL
Le contenu de la réponse sera du texte brut. En effet, l'utilisation de tag HTML de type <a fonctionne mal voire ne fonctionne pas. Dans mon cas ce n'est pas très dramatique car je n'ai pas l'intention de m'en servir, mais en procédant à quelques tests, je n'ai pas réussi à mettre en place des liens hypertextes dans les réponses à mes questions.
 
Toutefois, dans les réponses, vous pouvez bien entendu styliser votre texte au moyen de balises de type spam avec une classe CSS relié à cette balise.
Comme à mon habitude, je fournis à ce plugin, un fichier CSS dans lequel vous pouvez corriger et modifier votre propre style. J'ai apporté quelques modifications de sélection et de correction sur certains petits affichage, mais vous pouvez vous référer au fichier original au travers du lien que je vous ai mis, lien pointant sur le magnifique site internet codepen.
NB : dans le code récupéré de codepen, l'auteur utilise une balise <i> qui n'a rien a voir avec de l'italique, il s'en sert comme un conteneur span
 
 

Mon Github

slhuilli1's GitHub repositories