Sébastien LHUILLIER

Sébastien LHUILLIER

dimanche, 07 août 2022 12:00

QRCode autonome (sans webservice)

Après avoir regardé sur la JED les différents modules gratuits de générateur de QR Code, et après les avoir bien entendu téléchargé et analysé un tout petit peu le code de ces modules, je suis fort surpris de voir que beaucoup d'entre eux faisaient appel à un web service externe ! 

Qu'elle ne fut pas ma surprise d'apprendre et de voir ceci, lorsque l'on sait qui existe des bibliothèques PHP toutes faites permettant de générer des codes 3D.

Fort de ce constat, je m'empresse de regarder sur l'excellent site PHPClasses si quelqu'un n'aurait pas déjà écrit une classe toute faite permettant la génération de QR Code de manière autonome et sans connexion au net. bah oui, tout le monde ne bosse pas avec un e connexion internet ! loin de là.

Cette absence de connexion me donne une problématique supplémentaire : je dois, moi, oui oui bien moi, travailler sans API !!! Vous avez bien lu !!!  C'est quand même fort pour LE gars qui s'amuse sur son site web avec !

Partant de ce constat, et donc sans que l'on soit tributaire d'un web service externe, je me suis mis à intégrer une bibliothèque PHP permettant la génération d'une image de ce type.

Le gros avantage à cette méthode, c'est que nous ne dépendons plus d'un web service externe, si ce dernier vient à tomber en panne, votre site continue de fonctionner de manière tout à fait normal puisque la bibliotheque reste sur VOTRE serveur ! Sans compter, comme je le disais, en cas de non connexion au net... ca continue de marcher

Nous allons donc voir dans ce module comment implémenrter et la bibliothèque génératrice du QR code. Je ne rentrerai pas dans le détail de la bibliothèque car je n'en suis pas auteur, mais je vais vous expliquer comment je l'ai intégré grâce à mes commentaires.

Encore un point. Est ce que je triche ? Oui un peu je l'avoue car les QRCodes sont généré en tant que fichiers puis affichés dans la page. Ils devraient être affichés à la volée. Cela dit, chose que je n'ai pas faite, il suffit de supprimer les fichiers générés dans le code du module.

 

samedi, 23 juillet 2022 09:47

Sticky notes (Post-it) pour Joomla

Dans le cadre de mes attributions professionnelles, je dois gérer un ensemble de données cohérent autour de différents matériels.

Un matériel est en constitué de plusieurs éléments. Parmi ces éléments, peuvent se trouver des notes utilisateurs. On en arrive à notre module que je vous présente aujourd'hui.
Vous avez compris, sur un article Joomla content, je souhaite rajouter des notes. Ces notes sont ni plus ni moins qu'un champ personnalisé Joomla content, au format répétable.
Ce format est défini dans la liste des formats possibles des champs personnalisés. Il vous permet pour un champ donné, de proposer à l'utilisateur l'insertion de plusieurs éléments. En d'autres termes, c'est une relation 1-N d'une base de données. Notons toutefois que dans Joomla, il n'y a pas cette relation directe au niveau de la base de données, puisque c'est dans un gros champ texte que Joomla stock l'ensemble des informations au format Json !

Première étape, création de notre champ personnalisé répétable

La première étape de notre système et de créer un champ personnalisé Joomla, tel que défini dans la copie d'écran ci-dessous, qui est un champ de type répétable.
description champs repetable
 
Dans la notion de répétabilité, nous allons simplement stocker un champ que j'intitule... note, de type "éditeur", dans lequel le format html va être filtré (proessus interne qui vire les balise inutiles ou dangeureses).
Je reviens rapidement  sur le type éditeur, ce n'est pas un type de base de données mais bien un type de formulaire que nous devons présenter à l'utilisateur. Dans ce cadre, c'est un format wisiwig, éditeur de type "Word", qui va être présenté à l'utilisateur.
 
Une fois la description du champ terminé et enregistré, n'oubliez pas d'affecter une catégorie auquel vous souhaitez que ce champ apparaisse, vous aurez la possibilité dans la zone "administrateur" de Joomla, de pouvoir créer autant de fiches de ce type pour un enregistrement donné, pour un article donné si je reprends les termes Joomla
 
Désormais, notre structure Joomla des données est prête et fonctionnelle, commençons par créer un article de la catégorie dans laquelle nous avons spécifié l'affichage de ce champ.
 

Création de l'article

Lorsque je crée un nouvel article, j'ai un onglet chant qui apparaît. En fonction de la configuration du champ répétable que vous avez créé, le nom de cet onglet peut changer.
 
Dans cet onglet, vous avez la possibilité de créer autant de notes que vous le souhaitez puisque le champ est rééptable.
Pour créer une note, il vous suffit de cliquer dans la petite icône verte avec une signe plus. Vous allez avoir un éditeur WISIWYG qui va apparaître, vous pouvez saisir vos premières notes.
 
Si une deuxième note doit être saisie, vous avez la possibilité de cliquer sur l'un des boutons verts permettant de créer une nouvelle note. Remarquez aussi, que vous avez une croix sur fond bleu qui vous permet d'organiser vos notes dans l'ordre que vous désirez. Je ne reviens pas sur le bouton moins sur fond rouge qui vous permet simplement de supprimer la note correspondant à la ligne que vous avez envisagée.
 
boutonsss
 
Le module que j'ai écrit, va rechercher le champ que j'ai intitulé note, que vous devez aussi intitulé note pour que ce module reste fonctionnel sur votre site.
 
Dans le cas où vous souhaitez changer le nom de ce champ, il vous suffit de changer le nom de la variable dans le fichier helper.php, sur la ligne 33. Attention, selon la mise en page de votre éditeur de code, le numéro de ligne peut varier. C'est dans la ligne élément du dernier foreach du fichier helper.php.
 
Dans le paquet je fourni en téléchargement, je vous joins un fichier CSS permettant d'appliquer un style post-it sur l'ensemble des notes que nous avons créées. C'est la raison pour laquelle dans le fichier lelper.php (je mets toujours malheureusement mon code HTML dans le helper alors que je sais qu'il faut le mettre ailleurs), j'ai pris que style fourni dans le CSS fourni dans le package.
 
Si vous suivez régulièrement mes articles, vous serez que je suis absolument nul en infographie. C'est la raison pour et accueil, pour utiliser la notion de post-it, rendons à César ce qui appartient à Jules, je me suis inspiré de post-it déjà créé, trouvé sur le site codepen et écrit par Dillon Brady sous la référence EzRoZQ.
 

Revenons à l'utilisation

Désormais, il vous suffit de créer autant de champ de type note que vous souhaitez afficher de notes sur votre module, affecter ce module à article sur lequel vous souhaitez voir apparaître vos post-it, puis d'enregistrer le tout. Vos notes apparaissent ainsi lorsque comme vous le désirez point je vous laisse bien entendu ici un exemple.
 
Enccore une fois, ce module est spécifiquement développé pour Joomla Content. Mon sité étant piloté par K2, je ne peux que vous joindre une copie d'écran du résultat.
 
Module post it pour Joomla
dimanche, 31 juillet 2022 08:27

Ruban

Je vous propose aujourd'hui un module ruban que j'ai spacifiquement écrit pour la template Protostar. N'utilisant pas cette template sur ce site, il ne fonctionne pas ici. 

L'idée est de placer dans la coin gauche des pages un module qui affiche de manière diagonale, un texte. Ce texte est placé sur fond rouge mais vous pouvez changer tout le CSS fourni.

 

 

BANNER

samedi, 23 juillet 2022 00:00

Table tri

j'en rêvais, et je n'ai fait... non sans mal !

Totalement ignorant en Javascript, je me suis lancé un défi de fabriquer un tableau des articles, triables et filtrables. Alors, ce module est à prendre toutefois avec des pincettes et si vous souhaitez adapter et corriger le code, n'hésitez pas et faites moi remonter vos améliorations... car j'en ai vu un que je n'arrive pas à résoudre. Je sais, je n'ai pas honte ed présenter un outil buggé car le bug n'intervient pas souvent.

Alors voila, je recherchais à afficher une liste d'articles Joomla Content (la démo va donc pas être simple ici étant sous k2) avec la possibilité de trier, afficher les articles et faire des recherches par "colonnes".

Administration

Ce module n'est pas à mettre dans les mains des personnes ignorant le langage SQL. En  effet, l'idée est de travailler avec une très grande souplesse avec cet outil, ainsi, l'ensemble des valeurs affichées est le résultat d'une simple requete SELECT en SQL, dans laquelle l'utilisateur pourra intérroger la base de données de Joomla. Cela rend l'outil super souple car n'importe quel composant (Jevent, K2, Joomla content....) peut être interrogé et ses données retournées. Cerise sur le gâteau : la requete n'est pas dans le code mais dans l'interface d'administraion du module.

A contrario, cet outil permet de maitriser, via SQL, les jointures, les selects... afin de retourner que ce que l'informaticien souhaite.

Voila comment se présente l'interface d'administration de l'outil

desc module admin

Sur cette copie d'écran, vous retrouverez toute la très simple configuration du module ! Rien n'est complexe (même si les champs sont - trop ? - nombreux), les champs à remplir sont ceux sur lesquels sont basés le plugin JQuery Fancytable proposant l'affichage des résultats !

Le résultat

Comme je vous le disais, je n'ai aucun article Joomla content sur mon site donc pas simple de présenter un résultat autre que par copie d'écran sur laquel, qui plus est, le suis obligé de flouter des données. Mais si comme moi, vous utilisez K2 ou autre chose, il vous suffit d'adapter la requête SQL.

resultat

Je commente ce que l'on voit :

  • tabletri : c'est le nom du module que je n'ai pas masqué dans la console d'administration de Joomla
  • "ceci est la légende" : C'est la chaine de caractère légendant le tableau. On peut aussi dire que c'est le titre du tableau
  • Identifiant, titre, Alias... : ce sont les titres du tableau, configurés dans la console d'adminitration (j'avais essayé de passer par des alias dans la requete SQL mais sans succès). Ces noms de colonne sont simplement séparés par le symbole : (qui ne peut dont être utilisé dans le titre de la colonne)
  • (champs/rectangles) : fitres de recherches
  • (chaque ligne) (floutées) : ce sont les résultats de la requête

Alors l'outil est largement perfectible, je le sais. Notament sur la partie client en jquery. Mais encore une fois, ne maitrisant pas ces technos, je travaille pas mal par tatonnement et analyse de code (ici le plugin JQuery utilisé pour ce résultat) que je sais déchiffdrer mais je n'ai pas la prétention de dire que je sais le lire.

Je vous joins mon module en PJ, si vous le retravaillez, ce sera avec grand plaisir que le mentionnerai ici les personnes qui se sont basées sur mon module pour le rentre perfectible. En encore une fois, je doute qu'il soit fort utile sur internet, mais sur une "application" métier Joomla en interne, la vision n'est pas la même !

 

 

 

jeudi, 14 juillet 2022 11:35

Un plugin de "rapport de bugs"

Que voit on aujourd'hui ?

Oui vous avez bien lu le titre... mais vous allez être déçus... ou pas :) !

Dans le cadre de mes fonctions professionnelles d'adminitration d'un site intranet national, il arrive que des infos mentionnées soient devenues osolètes, erronnées, ... et donc l'article doit être supprimé de Joomla. Mais pour que j'en sois averti, Il faut donc faire une remontée de l'information au gestionnaire de la page (moi, quoi) afin que je corrige.

Alors, oui, j'ai déja écrit un module de ce type mais je souhaitais développer, pour me faire la main, un plugin pour ca. De plus, l'utilisation d'un plugin est drôlement plus souple puisqu' on peut l'intégrer où l'on veut dans sont article (Joomla content pour ma part) à l'aide de shortcodes.

L'idée de ce plugin est de définir une chaine entre deux tags dans un article et le plugin générera une chaine, avec un hyperlien et un mailto.

Alors le spam ? Oui bah pour être honnête, rien a faire puisque mon intranet n'est pas relié au net. On peut se permettre donc un lien hypertexte de type mailto: .

Alors j'ai déja écrit un article sur un plugin que j'avais fait à l'époque où je n'avais pas trop le temps de m'apesantir sur le sujet. Cette fois, je vais essayer de rendre et article plus pédagogique.

Il fait quoi ce plugin ?

Le plugin va remplacer l'appel dans un article {mailtoEnreg}Cette adresse e-mail est protégée contre les robots spammeurs. Vous devez activer le JavaScript pour la visualiser.{/mailtoEnreg} par Cette adresse e-mail est protégée contre les robots spammeurs. Vous devez activer le JavaScript pour la visualiser.

Rien de bien folichon, mais c'est un besoin... ou plutôt un besoin pédagogique ! Apprenons à réaliser ce plugin

Un plugin répond à un événement

Joomla a recenséune multitude d'événements que l'utilisateur peut générer. Bonne nouvelle, vous n'avez pas à détecter l'événement, juste trouver le bon pour y implémenter le code qui va bien. Vous pouvez retrouver la liste des événements et ce à quoi ils répondent sur la page Plugin/Events de Joomla! Documentation. Je ne vais pas ici faire un inventaire à la Prévert mais sachez que le système Joomla possède une cinquantaine d'événements. Pour celles et ceux qui ont déja codé avec des IDE comme Delphi, ou encore VB, c'est le code que vous mettez dans les onEvent. (Ex : onClick). Sauf qu'ici c'est bien à un événeemnts serveur qu'il faut répondre.

Il est a noter qu'ici, on souhaite transformer un shortcode en une chaine mailto. Alors il est où cet événement ? Que peut il bien être ? Et voila le premier travers auquel je me suis heurté et je tenais à prendre quelque igne pour mieux expliquer. Contrairement à un IDE comme ceux que j'ai cité, les événements de Delphi par exemple sont des événemments engendrés par des actions utilisateurs, qu'ils soient directs ou par ricochet (OnClick est direct car c'est sur une action souris, onChange peut être par ricochet car ca peut être, par exemple, en cliquant sur un bouton qu'un élément peut changer. Et ce sera sur l'événement onChange de l'objet sur lequel produire le test que l'on intégrera le code). Si je transpose cette explication au web, il nous vient tout de suite à l'esprit les différents événements Javascript. Et bien, vous avez tout faux, c'est pas ce que l'on cherche. 

Pourquoi dis-je cela ? Car je suis tout de suite fourvoyé dans ce travers et n'ai plus rien compris jusqu'à ce que je reprenne tout depuis 0. Si vous analysez les différents événements de la liste dont je vous ai mis le lien, vous vous rendez vite compte que ces événements sont détéctés par joomla "en interne" et ne sont pas directement la conséquence d'actions utilisateurs directes. Il faut imaginer un moteur Joomla qui passe son temps à attendre de voir si l'utilisateur a fait une action qui puisse engendrée une action qui puisse répondre à un événement. 

Dans notre exemple, le plugin répond à un onContentPrepare (je détaille le code plus loin). Si je regarde la documentation de onContentPrepare, on se rend compte qu'Il s'agit de la première étape de la préparation du contenu pour la sortie et est le point le plus courant pour les plugins orientés contenu pour effectuer leur travail. C'est donc une action qui est intercalée entre le moment où la page web est demandée, mais non encore affichée. Juste avant son affichage, on lance l'action avant de la retourner au navigateur modifiée (les shortcodes sont modifiés par du HTML). Nous verrons plus bas l'action (le code) en détail.

Organisation des fichiers d'un plugin Joomla.

L'organisation des fichiers d'un plugin s'organise ainsi et je crois bien que c'est encore plus simple que mes modules :

  • un fichier php au coeur du systeme (mailidenreg.php) qui est le coeur de l'action
  • le fichier XML associé (mailidenreg.xml)

Attention : je me suis fait avoir. Dans le fichier XML, il faut bien spécifier (ligne 13), le nom du plugin : nom du fichier sans l'extension.

Les fichiers

Et voila, j'ai quand même passé du temps dessus a trouver des choses qui n'allaient pas.... Mais le plugin tourne désormais

Dans un cadre pro, j'ai besoin de connaitre le nombre d'éléments saisis dans Joomla pour connaitre les différents taux d'avancement de mon projet, sachant que nous connaissons par avance le nombre d'enregistrements finaux. Je dois rendre compte au SHD (je ne sais pas si tout le monde connait l'abbréviation : supérieur hiérarchiquye direct) le nombre d'enregistrements gérés par le système. Sans rentrer dans la technique nous avons mis en place pour ette saisie, je dois pouvoir dire : j'en suis à X % de saisie.

Pour connaitre ce taux, il faut que je sache combien le système possèdent d'enregistrements totaux publiés. Ce petit module joue ce rôle. Pour chaque éléments, j'ai proposé de pouvoir demander une phrase d'introduction à afficher, phrase saisie par l'utilisateur, le reste des infos est simplement issu d'une simple requete SQL

 

samedi, 02 juillet 2022 12:34

Prix essence

Aujourd'hui je vous présente un petit module que j'ai écrit vite fait, en entendant parler, paraît-il, de personnes qui ont des gilets jaune et qui sont descendus dans la rue. Vous allez me dire c'est quoi ce gilet jaune, et bien je n'en sais fichement rien. Il paraît que les prix du carburant ont augmenté !

M'emparant de ce sujet d'actualité, qui remonte à quelques mois déjà, donc pas très vieux, je me suis renseigné et suis tombé sur des API, ou plutôt plus particulièrement des jeux de données avec API, jeux de données mis à jour très régulièrement, environ une fois par jour, hébergés sur la plateforme Open Data soft, qui recense les prix des carburants quasiment en temps réel.
 
Faisons dans un premier temps une petite parenthèse sur la plate-forme Open Data Soft. Si vous ne connaissez pas ce site et que vous êtes intéressé par des jeux de données, cette plateforme recense une quantité phénoménale de jeux de données sur à peu près n'importe quoi. A l'heure où j'écris ces quelques lignes, 621 jeux de données sont actuellement disponibles en libre-service.
Masi alors qu'est-ce que réellement Open Data soft? C'est une plate-forme unique qui permet de partager des jeux de données que vous pouvez créer en ligne ou uplaoder. Comme le dit sa présentation, l'outil propose une plateforme SaaS tout inclus permettant à toutes les équipes de créer et diffuser rapidement des expériences data qui nourrissent leurs écosystèmes.
Cette plateforme héberge des quantités phénoménales de données toutes en Open Data. Cette plateforme héberge notamment les données Open Data de l'État français. Le gros avantage de cette plateforme, et que chacune des données hébergées est accessible non seulement dans leur intégralité, mais cette plateforme propose aussi des API qui permettent de se connecter à des "sous-ensembles" l'ensemble des données. Vous pouvez par exemple lister des éléments avec déjà un tri effectué, ou encore lister des éléments selon des critères de sélection prédéfinis. En d'autres termes, si je transforme cette phrase en SQL, vous pouvez spécifier des clauses Where ou order by. Les serveur de cet outil qui vont vous prémâcher le travail de tri ou de sélection. Bien entendu, les données hébergées sur cette plateforme sont sous une licence libre, ce qui vous permet, selon la licence des jeus de données, de vous connecter non seulement à la plateforme mais aussi de réutiliser les données fournies. Lorsque vous travaillez avec Open Data Source, sur la page de présentation du jeu de données, vous avez des métadonnées qui vous expliquent notamment le thème des données, un ensemble de mots clés (ici "essence") associé au jeu de données, la date de dernière modification le nom du producteur pour ne citer que les meta-données importantes.
 
Il faut noter que chacun des jeux de données hébergé par Open Data Source possède un identifiant. C'est identifiant est très pratique car, utilisé dans l'URL, il vous permet de pointer directement sur l'unique jeux de données qui vous intéresse.
Lorsque vous mettez en place un jeu de données, et après de forme vous propose a priori, il y a possibilité de mettre en place à partir de ce jeu de données, une API d'interrogation. Cette API vous permet donc de proposer à vos utilisateurs, des critères de restriction, en d'autres termes, si je traduis en SQL, des closes Where permettant à vos utilisateurs de restreindre l'ensemble des jeux de données qui vous intéresse.
Notons enfin que le script utilisé pour mettre en place ces jeux de données vous permet aussi sur chacun d'entre eux de pouvoir les réutiliser par rapport à une carte géographique. Je vous laisse la main sur l'accès à Open Data Source pour pouvoir voir l'ensemble des fonctionnalités que vous propose cet outil.
 
Revenons désormais à notre jeu de données sur le prix de l'essence. J'ai écrit un petit module pour Joomla, qui vous permet de lister l'ensemble des informations d'un jeu de données spécifique recensés sur la plateforme, mis à jour de manière extrêmement régulière, entre une à plusieurs fois par jour, avec les derniers prix des carburants recensés sur la France entière.
 
Les critères de sélection fournies par Open Data Source vous permettent de faire des recherches sur plusieurs critères comme le code postal, la ville ou encore si la station-service est un automate ou non point bien entendu il est tout à fait possible de restreindre ses recherches à un carburant spécifique. Vous pouvez notamment lister du E-85, E-10 ou encore du gasoil pour ne citer que trois carburants.
 
Revenons à mon Module Joomla. Une fois installé sur votre site Joomla, vous pouvez spécifier dans les paramètres du module, un code postal sur 5 caractères, vous permettant de lister les carburants qui correspondent à une ville particulière. Sur ce que vous voyez ci-dessous, j'ai utilisé le code postal de ma grande ville la plus proche de chez moi, Nancy. ( d'ailleurs, si vous passez dans le coin, n'oubliez pas la place Stanislas à visiter)
 
Une fois ce code postal spécifié, le module va rechercher l'ensemble des stations services présentes sur la ville mentionnée au travers de ce code postal, et va vous lister plusieurs informations. Vous allez retrouver bien entendu le nom de la ville, si la station-service est une station entièrement automatique ou non. Les trois prochaines informations concernent le tarif en euros des différents carburants délivrés, ce tarif étant au 100 litres.
 
Pourquoi au 100 litres, simplement car le jeu de données fonctionne de cette manière.
 
Enfin vous retrouverez la marque de la station-service, et surtout la dernière date de mise à jour du jeu de données. C'est la raison pour laquelle sur l'exemple ci-dessous, la date de mise à jour peut varier.
 
Vous vous infographiste et vous voulez utiliser et styliser le module ? Contactez moi et je peux rajouter à cet article VOS CSS avec vos références.
Nom : ESSO JEAN JAURES - 47 Boulevard Jean Jaurès - 54000

Ville : NANCY
Automate : Oui
E10 : 0.001815
Gazoil : 0.001857
Sans plomb 98 : 0.001989
Marque : Esso Express
Mise à jour : dimanche 07 août 2022 03:57:00

La station se trouve sur une route

Ville : NANCY
E10 : 0.001889
Gazoil : 0.001959
Sans plomb 98 : 0.001999
Mise à jour : dimanche 07 août 2022 12:01:00

La station se trouve sur une route
Nom : SARL STOCK - 6 Avenue de Boufflers - 54000

Ville : NANCY
Gazoil : 1.416
Sans plomb 98 : 1.541
Marque : Indépendant sans enseigne
Mise à jour : jeudi 23 janvier 2020 08:45:20

La station se trouve sur une route

Ville : NANCY
Automate : Non
Gazoil : 1.554
Sans plomb 98 : 1.699
Mise à jour : jeudi 09 décembre 2021 07:18:37

La station se trouve sur une route

Ville : NANCY
Automate : Oui
Gazoil : 0.002012
Mise à jour : samedi 30 juillet 2022 06:57:02

La station se trouve sur une route

Ville : NANCY
Automate : Non
Gazoil : 0.001913
Sans plomb 98 : 0.001965
Mise à jour : mardi 02 août 2022 10:28:49

La station se trouve sur une route
Nom : Auchan nancy centre - 127 Boulevard Lobau - 54000

Ville : NANCY
Automate : Non
E10 : 0.001776
Gazoil : 0.001821
Sans plomb 98 : 0.001875
Marque : Auchan
Mise à jour : vendredi 05 août 2022 07:13:00

La station se trouve sur une route
Nom : ESSO ST JOSEPH 54 - 40 Avenue de la Libération - 54000

Ville : NANCY
Automate : Oui
E10 : 0.001769
Gazoil : 0.001861
Sans plomb 98 : 0.001931
Marque : Esso Express
Mise à jour : dimanche 07 août 2022 03:47:00

La station se trouve sur une route
Nom : SARL BMCV - 44 BOULEVARD ALBERT 1ER - 54000

Ville : NANCY
Automate : Oui
Gazoil : 1.599
Marque : Avia
Mise à jour : mardi 07 décembre 2021 01:04:20

La station se trouve sur une route

Dans ma série "j'ai développé" plein de trucs mais j'ai pas encore eu le temps de les partager", voici l'un des N modules qu'il faut que je vous présente.

Au départ, l'idée est de pouvoir présenter au vos utilisateurs, les dernières vidéos qui ont été mises en ligne par une chaine Youtube. Une fois votre module installé, vous spécifiez dans votre console d'administration la référence de la chaine Youtube que vous voulez "suivre" et affectez le module à l'endroit où vous voulez.

Dans la console d'administration, vous avez 3 paramètres propres au module (je ne parle pas des paramètre d'affectation Joomla) obligatoires à renseigner :

  • l'identifiant de la chaine Youtube à suivre
  • La clef API que vous avez demandé à Youtube
  • Le nombre maximal de résultats que vous voulez afficher

Une fois cette config effectuée, affectez le module comme bon vous semble et voila, c'est déjà fini. La présentation est facilement modifiable via les CSS mais je n'ai rien fourni dans le CSS. Comme à ma mauvaise habitude (enfin ce module date de l'époque où je l'ignorais), la présentation est (encore) dans le helper. N'hésitez pas à modifier le code si besoin.

Suite à une migration, ce matin, d'un module que j'avais développé en local sur mon environnement de développement, que je souhaitais migrer en production sur mon environnement de prod, je me suis rendu compte d'une grosse erreur que je souhaitais notifier dans cet article.

En effet, lorsque j'ai migré mon module en prod, lle fichier CSS dans lequel je stocke tous les styles propres à mon module, était absent du serveur . Et la procédure que j'avais mise en place, était de prendre le répertoire de mon module de mon serveur de test, de fabriquer un zip de ce répertoire, dans le but de l'installer sur le serveur destination.

En faisant cette manipulation, comme je le disais, aucun fichier CSS n'était présent sur le serveur de destination. En cherchant un peu et en demandant de l'aide, je me suis rendu compte que pour faire cette manipulation, il était très important de notifier dans le fichier manifest de mon module, la présence de fichiers CSS.  Bien qu'appelé dans les fichiers php, un bug ce produisit puisque le fichier était introuvable car non migré. En effet il n'était pas installé puisque absent du fichier manifest.

Ne reproduisez donc pas l'erreur que j'ai faite, lorsque vous développez en local votre module, n'oubliez pas de bien renseigner le fichier manifest avec l'ensemble des fichiers qui constitue votre module.
 
Je viens donc de découvrir que le fichier manifest, en quelque sorte, sert pour l'installation sur un serveur externe de mon module. Je souligne bien le fait que j'installe tous mes modules en mode développeur, m'abstenant ainsi de développer les procédures d'installation, par simple manque de temps
vendredi, 17 juin 2022 17:44

Si nous votions.... par QRCode

Je ne sais pas si je suis totalement déformé par les nouvelles technologies, mais cette semaine, en prenant mon bus, j'ai vu sur une affiche un QR code. Période électorale oblige, par association d'idées, je me suis dit : pourquoi ne serait-il pas intéressant de voter par QR Code ?

Avant d'aller plus loin dans mon article, je tiens à mettre en garde les futurs détracteurs qui pourraient d'ores et déjà me dire "il est fou ce type". Et, je reconnais, ces détracteurs auraient raison !
Mon idée n'est pas de recueillir des informations, comme on pourrait le faire pour un vote politique, mais plutôt de recueillir des avis tel qu'un référendum. L'idée étant plus de monter un ensemble de données dans un but statistique, que de trouver un candidat à une fonction quelconque.
 
Rentrons dans le vif du sujet.
 
Vous savez désormais tout ce qu'un QR code a pour but de renvoyer, par exemple, utilisateur qui flash le code, sur une page web. En d'autres termes, le QR code stocke dans l'URL, tout un tas de données. Et comme vous le savez, après le ? d'une URL, vous povez paser des paramètres. Et bien utilisaons les pour receuillir des datas ! L'ensemble de l'URL, qui contient donc une valeur à l'intérieur, peut tout à fait être transformée en QR Code. Si nous prenons l'URL fictive suivante
 
 
Cette url, bien que totalement fictive, retourne au fichier reponse.php la valeur Oui. Les développeurs sauront récupérer cette valeur passer dans l'UR. Et justement, comme nous sommes dans le cadre d'une URL, il est tout à fait possible de l'encoder sous forme de QR code. de ce fait, il suffirait de flasher ce QR code pour se voir incrémenter une valeur qui correspond aux paramètres oui de l'URL point ainsi, votre vote est créé.
 
Notons aussi que nous pouvons tout à fait utiliser le même principe pour un vote autre que référendum, en d'autres termes, vous pouvez passer en paramètre de l'URL n'importe quelle chaîne de caractère. C'est à vous de récupérer cette valeur dans le fichier d'accueil, ici dénommé valeur, et de lancer, par exemple, un incrément dans un fichier ou dans une base de données, en fonction du paramètre récupéré de l'URL.
En d'autres termes, chacun des flashages du QR code généré, va engendrer un enregistrement dans votre persistance. Il ne vous reste plus, dans le cas où votre persistance est une base de données, de lancer une requête de type SELECT count afin de récupérer et de calculer le nombre de votes recueilli par flashcode. Et intérêt ainsi, c'est de proposer plusieurs flashcode pour plusieurs valeurs à recueillir, vous pourrez alors connaître la vie de votre public sur une question ou une idée précise.
Alors, oui, je le sais, l'idée est un peu farfelue car elle ne prend aucune valeur d'authentification des votes. C'est ainsi, c'est pour cette raison, que j'ai bien mis en évidence le fait que ce type de vote ne peut être utilisé qu'à des fins statistiques. Comme je disais si bien Jules de Goncourt, la statistique et la première des sciences inexactes.
Sur ce, bon vote.
 
ouinon
Page 1 sur 44