Auteur : AFUJ
Rapporteur : Christophe Avonture

Commentaire : 0

Site des JoomlaDagen NL (en Néerlandais)

Lors du week-end du vendredi 13 et samedi 14 avril 2018, les JoomlaDagen aux Pays-Bas ont eu lieu à Eindhoven. Marc Dechèvre et Christophe Avonture s’y sont rendus pour la troisième année consécutive.

Table des matières

1. Avant d’aller plus loin

L’article ci-dessous est un compte-rendu écrit par Christophe, concernant les sessions auxquelles il a pris part. La publication de ce compte-rendu vise à partager avec le lecteur des liens et quelques informations relatives aux informations reçues.

2. Un peu d’histoire

Avec ses douze JUGs, la Hollande est l’un des pays ayant la plus grande densité de JUGs; les aficionados pouvant probablement assister à plusieurs rencontres en une semaine ! Et cela en s’y rendant à vélo ;-)

JUGs

https://community.joomla.org/user-groups/europe/netherlands.html

La communauté hollandaise est tellement vigoureuse qu’ils en sont à leur treizièmeJoomlaDay, ayant commencé un an avant la France (JoomlaDays – l’historique). C’est même eux qui ont “inventé” le concept en étant les tout premiers à proposé un tel évènement en 2006 !

Les JoomlaDagen se tiennent en Néerlandais bien sûr mais, grâce à son rayonnement internationnal, plusieurs conférences se font en anglais et vous ne trouverez aucun (ou presque) hollandais ne parlant pas l’anglais.

3. Téléchargement des présentations

Les présentations sont déposées par les conférenciers au fur et à mesure sur le site des JDagen.

Vous pouvez les retrouver dans la page du programme : https://www.joomladagen.nl/programma#zaterdag-14-april

Accès aux présentations

Lorsque vous voyez l’icône avec les quatre carrés, cela signifie que la présentation est disponible.

4. Vendredi 13 avril

Keynote d’ouverture avec Sander Potjer qui, comme chaque année, excelle dans le rôle de chef d’orchestre.

jd18nl intro

La première journée avait des thèmes plus accessibles à un public non familier à Joomla, les sessions plus techniques ont pris place le samedi. L’idée étant de permettre à un public moins technique de prendre part aux JDagen.

4.1. Daarom Joomla

Quatre sessions ayant pour thème “Daarom Joomla” (que l’on pourrait traduire par “Voilà pourquoi (choisir) Joomla”) ayant pour objectifs de pouvoir répondre à un prospect en quoi Joomla! peut répondre à son besoin.

Les thèmes furent :

  • Inspiratie uit de praktijk (Inspiration par la pratique)
  • Makkelijk content publiceren (publier du contenu facilement)
  • Een fantastiche basis (un noyau fantastique)
  • Uitbreidbaar en koppelbaar (Extensible et ouvert)

(Je n’ai assisté qu’aux deux premières sessions)

Lors de chaque session, plusieurs conférenciers se sont succédé afin de faire des mini-présentations d’une quinzaine de minutes chaque (une forme plus allongée du concept des Lightning Talks que l’on aura au JDay 2018 FR).

Chacun venant expliquer pourquoi Joomla est un excellent choix pour répondre au besoin exprimé.

4.1.1. Een fantastiche basis (un noyau fantastique)

Description NL

Plusieurs intervenants, dont Sander Potjer, Rachel Walreven (web agency), Peter Martin Pe7er(qui sera présent à Paris)

Présentation de quelques fonctionnalités du core de Joomla permettant de répondre à des questions du type Je veux un ... (site rapide, un site qui soit bien référencé, simple à maintenir, polyvalent, extensible, multilingue ...)

La présentation de Sander pouvant servir d’arguments à des questions posées par un futur prospect et lui répondre “Oui, Joomla le fait”.

Par exemple, Je veux de la liberté, question à laquelle on peut répondre que Joomla est gratuit, libre, le code est ouvert, on peut l’adapter à ses propres besoins. Aucun coût en licence; tout est libre et accessible depuis la base de données (p.ex. la table #__content).

Rachel insiste pour sa part sur le fait que Joomla est très flexible, qu’il est très aisé de développer des designs (templates) sur mesure et de développer des écrans précis qui, selon les utilisateurs connectés, pourront afficher exactement ce qu’ils souhaitent voir (ne pas afficher le contenu du site p.ex. à la fleuriste qui est essentiellement intéressée de savoir combien de commandes elle doit délivrer).

Peter Martin souligne la robustesse de Joomla qui est solide comme une maison et donne quelques bonnes pratiques comme :

  • la nécessité d’installer un certificat SSL pour sécuriser les échanges de données entre son site et l’utilisateur (ce qu’il compare à un tunnel autoroutier comme on en a lorsqu’on traverse les montagnes Suisse, tunnel où il n’y aurait que vous et vous seul),
  • l’intérêt de tester les extensions non core d’abord offline, sur une copie du site,
  • de limiter leur nombre afin de garder l’aisance de la mise à jour du site,
  • de consulter des pages comme la Joomla Security Strike Team, la VEL (Vulnerable Extension List) afin de se maintenir à jour,
  • ...

4.1.2. Makkelijk content publiceren (publier du contenu facilement)

Description NL

Plusieurs intervenants dont Sander Potjer, Maarten Blokdijk, Anja Hage, ...

La seconde session vise l’éditeur, l’utilisateur du site et de lui donner des moyens simples pour ajouter du contenu et mettre son site aisément à jour.

Sander cite quelques manières d’ordonner les informations comme celles d’utiliser les tags ou les catégories dans Joomla et, p.ex., de gérer l’affichage des informations au travers de pages de type catégorie ou d’entrée de menu.

Il suggère aussi de veiller à la réutilisation d’un contenu comme p.ex. le texte et la photo de description d’une catégorie qui pourra être utilisés dans un module sur la page d’accueil du site, mais aussi dans une page reprenant la liste des catégories et dans la page blog de la catégorie : ainsi, avec un seul contenu (la photo et la description de la catégorie), l’information pourra être affichée à différents endroits et pourra même être légèrement différente avec un peu de personnalisation des différents affichages.

4.2. Workshop : Extensions for Joomla 4

George Wilson

Description NL

George Wilson

Les organisateurs des JoomlaDagen firent le choix cette année d’avoir une session Daarom Joomla dans l’auditorium et de workshops dans d’autres salles.

L’un de ces workshops auquel j’ai participé fût Extensions for Joomla 4 donné par George Wilson qui est le chef d’orchestre, en plus d’être un développeur hyper actif sur le core, de la version 4 de Joomla.

L’objectif du workshop fut de donner des pistes aux développeurs pour leur permettre de prendre en considération les changements à prévoir dans leur code pour que leurs extensions puissent être compatible avec Joomla 4.

Note : la dernière version de J4 se trouve sur le dépôt GitHub de Joomla 

4.2.1. Quelques changements majeurs

J4 vient avec plusieurs grosses nouveautés, dans le code, dont :

  • L’utilisation des namespace dans PHP 7
  • Dependency Injection Container (DIC )
  • La suppression du code noté comme déprécié dans les versions précédentes
  • Une renaissance des plugins

4.2.2. Modèle HMVC

Extension de l’approche MVC de Joomla vers une approche HMVC

Un nouveau venu : le dispatcher qui est le point d’entrée et qui donne ordre aux différentes actions de s’exécuter (auparavant, pris en charge par le seul contrôleur).

Lire plus sur le modèle HMVC

Un exemple du HMVC Joomla : le dispatcher de com_contact 

Joomla 4 revient aussi sur des choix posés avant comme le Legacy MVC qui ne l’est plus : Legacy MVC is no more legacy but, once again, the future

Un des avantages avancé pour l’utilisation des namespace est de permettre une plus grande aisance dans le partage du code entre le frontend et le backend. L’utilisation des namespace réduit également le risque de conflit (p.ex. deux fonctions, programmées par des personnes différentes, se nommant de la même manière).

4.2.3. Dépréciations

Un très grand nombre de classes “historiques” de Joomla disparaissent dans l’architecture J4 :

  • JError/JException supprimé
  • JEventDispatcher supprimé
  • JObservable supprimé
  • JString and JRegistry supprimé
  • Social Media Packages supprimé
  • MySQL Driver supprimé (George mentionne qu’il est préférable d’utiliser PDO si l’hébergeur le supporte; MySQLi sinon)
  • Database Package qui a été déplacé dans le package DBO framework.

4.2.4. Namespacing et DIC

DIC for Dependency Injection Container

Joomla’s DIC remplace la classe JFactory.

En apprendre plus sur DIC

4.2.5. Une nouvelle approche pour la ligne de commande

The current CLI package is flawed (l’actuel CLI est un échec)

Déjà présent dans J3, il est possible de lancer des scripts en ligne de commandes (prompt) comme p.ex. vider le cache de Joomla; toutefois cette fonctionnalité CLI est jugée comme étant un échec parce que :

  • Chaque ligne de commandes CLI est a full blown application c.-à-d. une application complète, lourde et absolument pas optimisée
  • L’application CLI est très limitée en nombre d’options possibles.

J4 implémente une nouvelle CommandInterface (de 21 méthodes) et une implémentation abstraite qui permet de simplifier la programmation en requérant de, juste, surcharger deux méthodes Initialise et Execute. Cette simplification vise à étendre les possibilités du prochain CLI et d’automatiser encore plus Joomla.

4.3. Joomla 4

George Wilson

Coming to a Website near you !

Présentation de ce que sera le futur J4 qui pourrait sortir fin 2018 (selon le temps disponible aux différentes équipes pour refondre Joomla et coder J4)

4.3.1. Target points (objectifs)

  • Éliminer le code déprécié
  • Rendre l’interface d’administration plus conviviale
  • Améliorer le référencement SEF (normes les plus récentes) et l’accessibilité (niveau minimum AA)
  • Mise à niveau de Bootstrap 2 à Bootstrap 4
  • Standardiser sur les Framework Packages Joomla (meilleure testabilité)
  • Préparez les composants pour implémenter les Web Services
  • Identifier les pertes de performances et les résoudre

4.3.2. Problèmes

George mentionne quelques “reproches” fait à Joomla :

  • L’installation en “5 minutes” de WordPress est considérée comme meilleure que celle de Joomla Solution : L’installateur de Joomla a été réécrit afin d’être plus simple, propre et rapide
  • Le media manager de Joomla est lourd et peu fonctionnel Solution : Le media manager a été réécrit et propose maintenant, p.ex., le drag & drop et des fonctionnalités de gestion d’images (redimensionnement, rotation, cropping, ...)
  • Il y a trop d’évènements différents dans Joomla (il y en a 5) Solution : Les plugins systèmes ont été récrits, il n’y a plus qu’un seul type d’évènement
  • L’accessibilité (aux personnes moins valides) est un point faible de Joomla. Solution : Le template natif de Joomla 4 atteint le meilleur score en termes d’accessibilité : AA

4.3.3. Autres

  • Travail sur la résolution de bugs et l’amélioration continue de la sécurité
    • PHP 7 minimum
    • Forçage des type dans la programmation afin de renforcer la solidité du code
    • Augmentation des unit testings afin de diminuer les risques de backward compatibility c.-à-d. les adaptations de code qui cassent des fonctionnalités existantes, déjà implémentées.
  • Implémentation des CSS grids

4.3.4. Migration

La plus grande difficulté dans la migration consistera probablement à la migration de Bootstrap 2 vers Bootstrap 4 ce qui aura un impact important sur quantité de templates existants.

Remarque : Joomla 3.9 sera supporté encore deux ans (bugs fixing et patch sécurité) une fois que Joomla 4 sera accessible. Aucune nouvelle fonctionnalité ne sera proposée sur Joomla 3.9 dès que J4 sera disponible.

L’administration de Joomla propose, déjà, d’un écran “Joomla 4.0 compatibility check” qui reprend des indicateurs visuels (rouge, vert, ...) afin de mettre en évidence les extensions qui sont installées sur votre site et qui sont compatibles ou pas.

4.3.5. Prévision pour les mois à venir

  • Une nouvelle version du template d’administration
  • Support des Webservices
  • Service Workers
  • Continuer le travail sur les Web Components
  • Second round de programmation sur le Media Manager

5. Samedi 13 avril

Ce deuxième jour est celui qui reprend les sessions plus techniques.

5.1. Les champs personnalisés

Description EN

Marc Dechèvre

L’implémentation des champs personnalisés a été une avancée majeure permettant d’enrichir, nativement !, les contenus dans Joomla.

Marc Dechèvre - Les champs personnalisés

Il existe pour l’instant 15 types de champs (calendrier, sélection d’un utilisateur, image, bouton radio, SQL, ...) permettant de répondre à une grande variété de besoins. L’ajout d’un nouveau type est quelque chose de très simple puisque, in fine, il ne s’agit jamais que d’un type de plugin : il est aisé de créer ses propres types; ses propres plugins.

Note : il existe une catégorie spécifique sur la JED reprenant une liste de ce qui existe.

La présentation de Marc consiste alors en la présentation de différents sites internet démontrant la puissance des champs personnalisés, par exemple :

  • Le site d’une association de professionnels où chaque fiche d’un membre montre une description de l’activité du membre (dans un article Joomla) et qui affiche quelques informations additionnelles comme la photo du membre, les langues gérées pour des prises de contact, adresse, numéro de téléphone, .... Tout pourrait se faire à chaque fois dans des articles, mais le risque étant alors que la personne qui édite l’article casse le template ou, s’il faut modifier le template, tous les articles existants devant alors être adaptés. Les champs personnalisés viennent simplifier cette mise en page.
  • Un autre exemple est celui d’un site de festival de films qui propose des pages de présentation de films avec plusieurs champs personnalisés pour l’affiche du film, une capsule vidéo, les horaires pour la diffusion du film ainsi que les lieux, des informations sur le distributeur, le réalisateur, ... L’utilisation des champs personnalisés ayant aussi permis de simplifier la génération d’une page reprenant la liste des films (et de réutiliser toutes les données encodées dans les champs).
  • Une démonstration du champs personnalisé “Color field” (voir Greendog.fr/experimentations)
  • Et, bien évidemment, le site du JoomlaDay Francophone qui est construit pour être une vitrine de ce que Joomla peut faire en natif et en intégrant les champs personnalisés.

5.2. AA rating avec GTMetrix

Description NL

René Kreijveld

Comment atteindre un score A/A avec GTMetrix ?

Note : atteindre un score A/A ne doit pas devenir une obsession; il faut balancer cela avec l’investissement que cela demande (temps, argent).

René fait confiance à Digital Ocean, basé à Amsterdam. La gestion VPS se faisant grâce à ServerPilot. Pour les templates, il utilise Helix 3.

5.2.1. Quick wins

  • Activer la compression GZip (test), cela peut se faire depuis l’interface d’administration de Joomla (mais préférablement à faire depuis .htaccess)
  • Activer le cache (depuis l’interface d’administration de Joomla)
    • Conservatif : prends des photos des différentes composantes de la page (chaque module séparément); choix préféré de René
    • Progressif : prend une photo de la totalité de la page (contenu et modules)

5.2.2. Réduire le nombre de requêtes http

Le Waterfall de p.ex. GTMetrix permet de se rendre compte du nombre de requêtes émises avant d’afficher la page. Moins il y en a plus la page s’affichera rapidement.

Le template Helix Ultimate permet de faire cela simplement, depuis son interface d’administration. Il y a deux options permettant de comprimer et de fusionner les .css et les .js.

5.2.3. Leverage browser caching

Il s’agit ici de spécifier la durée de vie des fichiers (.css, .js, .png, ...) afin que ceux-ci soient stockés sur l’ordinateur de l’utilisateur et ne soient plus téléchargés à nouveau à chaque affichage.

Cela se fait en ajoutant du code au fichier .htaccess pour implémenter les ExpiresByType.

5.2.4. Serve scale images

Il convient d’analyser le code source des pages mentionnées par GTMetrix car certaines images sont affichées à une taille réduite dans la page alors que leurs tailles sur le disque sont plus grandes.

Il suffit alors de juste redimensionner les images directement sur le disque (si les images ne sont jamais affichées à une plus grande taille)

5.2.5. Server Cookies free domains

Voir la présentation de René qui propose une vidéo. L’objectif étant de délivrer les fichiers statiques (.css, .js, .png, .woff, ...) depuis un nom de domaine pour lequel aucun cookie ne sera envoyé.

5.3. Hackez vous-même votre site ! Avant qu’un hackeur ne le fasse.

Description NL

Peter Martin

Peter montre quelques outils permettant de mettre à l’épreuve la sécurité des sites comme p.ex. la distribution Linux nommée Kali.

La démo se fait en local sur des machines virtuelles (utilisation de Vagrant pour cela).

5.4. La recherche dans Joomla 4

Description EN

Hannes Papenberg

5.4.1. Finder

Le “finder” de Joomla est une recherche basée sur une indexation de mots et il est capable, de manière autonome, de faire des recherches sur les versions singulières et plurielles des mots (note : seules 3 langues sont supportées pour cette fonctionnalité (anglais, chinois et français)).

Inconvénient actuel dans J3 : Finder est vraiment lent et consomme beaucoup de mémoire afin de créer ses index (la table des index peut être 7 fois plus grande que la table des contenus !).

5.4.2. Évolution J4

La version de Finder prévue pour J4 devrait être plus rapide et supporter toutes les langues. Cette version devrait également moins “polluer” la base de données en créant moins de tables (#__finder_links_termsX-tables).

En travaillant sur la réduction du nombre de fois où un même terme est indexé, la consommation de mémoire pourra être réduite de 50% voire plus.

Note : pour les besoins vraiment très complexes en possibilités de recherche (pour les entreprises p.ex.), il existe une solution nommée Solr qui permet d’aller plus loin que ce que Finder pourra faire.

5.4.3. Téléchargement pour J3.8

Une version du composant Finder pour J4 est disponible et pourrait être intégrée à un site 3.8 : Télécharger Finder pour J3.8

6. Clap de fin

Tot het volgende keer

   
Laisser un commentaire

La soumission de commentaires est réservée aux adhérents de l'AFUJ. Merci de vous connecter pour soumettre un commentaire.

Connexion

Ce site utilise des cookies pour vous offrir le meilleur service.

En poursuivant votre navigation, vous acceptez l’utilisation de cookies sur ce site. En savoir plus

J'ai compris