Particule Joomla Content

Attention: depuis la mise à jour Gantry 5.4.13 (6 juin 2017), la traduction est maintenant OK pour les particules "dates" et "joomla articles"

L'équipe RocketTheme a développé mi 2016 une particule "Joomla Articles" permettant d’intégrer facilement les articles de Joomla! où l'on veut dans le layout Gantry. Elle est intégrée par défaut dans tout les templates RocketTheme y compris les templates gratuits Hydrogen et Helium.

Le grand soucis de cette particule est que la langue de la date est en anglais. Malgré les formats multiples de date dans la particule, aucun format sans un texte correspondant au mois ou à la journée n'est sélectionnable, donc celle-ci apparaît en anglais même si une autre langue est utilisée par défaut dans joomla.

En Français la date se présente comme cela

Particle Joomla Article Date En

J"ai ouvert un topic sur ce sujet dans le Forum RocketTheme fin de l'année dernière mais aucune solution n'est ou n'était en vue.

Un utilisateur Gantry 5 m'a donné une solution à ce problème sachant que :

  • Celle-ci sera à refaire à chaque mise à jour de Gantry, ce qui est problématique car depuis l'implémentation de Grav à Gantry 5, les mises à jour se font crescendo (Le framework doit gérer Joomla, Wordpress et Grav)
  • La traduction doit se faire manuellement
  • Utilisable que pour le format de date "14 August 2016"

Pour les puriste, le principal problème des fichiers twig sont qu'ils utilisent la fonction date.  Le manuel php dit (php.net/manual/en/function.date.php) ,
Pour formater des dates dans d’autres langues, vous devez utiliser les fonctions setlocale() et strftime() au lieu de la fonction date() (To format dates in other languages, you should use the setlocale() and strftime() functions instead of date()).

Pour résoudre provisoirement ce problème de date, 2 fichiers à modifier :

Un fichier de la librairie Gantry 5: libraries/gantry5/classes/Gantry/Component/Twig/TwigExtension.php

Et le fichier de la particule "Joomla Articles" :  media/gantry5/engines/nucleus/particles/contentarray.html.twig

Fichier TwigExtension.php

C'est ce fichier qui est problématique et qui sera supprimé et remplacé à chaque mise à jour. Il est localisé dans le répertoire des librairies Joomla : libraries/gantry5/classes/Gantry/Component/Twig/

Il faut ajouter des nouveaux filtres à la ligne 58

  1. new \Twig_SimpleFilter('array', [$this, 'arrayFilter']),
  2. new \Twig_SimpleFilter('data_trans', [$this, 'dataTransFilter']), //This is the new filter

Définissez ensuite la nouvelle fonction pour la traduction

  1. public function dataTransFilter($str)
  2. {
  3. // French months
  4. $mois = ['Janvier', 'Février', 'Mars', 'Avril', 'Mai', 'Juin', 'Juillet', 'Août', 'Septembre', 'Octobre', 'Novembre', 'Décembre'];
  5. $months = ['January', 'February', 'March', 'April', 'May', 'June', 'July', 'August', 'September', 'October', 'November', 'December'];
  6.  
  7. return str_replace($months, $mois, $str);
  8. }

Prevoyer un système de rappel pour les mise à jour.

Fichier contentarray.html.twig

C'est le classique fichier twig de la particle "Joomla Articles" qui se trouve dans le répertoire media/gantry5/engines/nucleus/particles/

A la ligne 79, il faut remplacer

  1. <span class="g-array-item-date">
  2. {% if display.date.enabled == 'published' %}
  3. <i class="fa fa-clock-o" aria-hidden="true"></i>{{ article.publish_up|date(display.date.format) }}
  4. {% elseif display.date.enabled == 'modified' %}
  5. <i class="fa fa-clock-o" aria-hidden="true"></i>{{ article.modified|date(display.date.format) }}
  6. {% else %}
  7. <i class="fa fa-clock-o" aria-hidden="true"></i>{{ article.created|date(display.date.format) }}
  8. {% endif %}
  9. </span>

Par

  1. <span class="g-array-item-date">
  2.   {% if display.date.enabled == 'published' %}
  3.    <i class="fa fa-clock-o"></i>{{ article.publish_up|date(display.date.format)|data_trans }}
  4.   {% elseif display.date.enabled == 'modified' %}
  5.    <i class="fa fa-clock-o"></i>{{ article.modified|date(display.date.format)|data_trans }}
  6.   {% else %}
  7.    <i class="fa fa-clock-o"></i>{{ article.created|date(display.date.format)|data_trans }}
  8.   {% endif %}
  9. </span>

2 solutions ici :

  • remplacer le fichier core
  • Ou faire un overide de la particule en utilisant le répertoire custom de votre template. OK à moyen terme car pas de problème pour la mise à jour Gantry. Mais à verifier et refaire la manipulation sur le fichier core si la particule ne marche plus 

Custom Twig Joomla Article

Et maintenant, en Français la date se présente comme cela

Particle Joomla Article Date Fr

 

Vous pouvez télécharger les 2 fichiers modifiés - Dézipper le fichier et faites une installation manuelle

 

blog comments powered by Disqus

Ouvrir un ticket

Pour toute question relative à notre activité, n'hésitez pas !
Connectez-vous et ouvrez un ticket en mode public ou privé.