Sujet fermé
Note de ce sujet :
  • Moyenne : 0 (0 vote(s))
  • 1
  • 2
  • 3
  • 4
  • 5

Langue de la date dans cms_date_format
#7

RE:
de mon point de vue, on ne peut pas pour la raison "PHP" décrite plus haut.
Mais si quelqu'un d'autre à une info, qu'il n'hésite pas.

Ce que l'on peut faire par contre, c'est créer un modificateur smarty.
Le principe serait de remplacer les textes anglais par ceux de notre si belle langue.
Un modificateur est un code PHP qui modifie la variable smarty, par exemple :
Code :
{assign var=end_month_number value=$event.event_date_end|date_format:"%m"}
date_format est le modificateur.

Donc, pour ne rien toucher à l'existant, j'ai étendu les fonctionnalités de CMSMS en passant par smarty.

Dans le dossier plugins, on a la possibilité de créer des modificateurs smarty(ou modifiers) grâce à une
convention de nommage.
Si je veux appeler mon modifier "cms_date_in_french", je dois créer un fichier modifier.cms_date_in_french.php dont voici le contenu:
Code :
<?php
function smarty_cms_modifier_cms_date_in_french($string)
{
$mois_long= array("Janvier", "Février", "Mars", "Avril", "Mai", "Juin", "Juillet", "Août", "Septembre", "Octobre", "Novembre", "Décembre");
$mois_court= array("Jan", "Fév", "Mar", "Avr", "Mai", "Juin", "Juil", "Août", "Sep", "Oct", "Nov", "Déc");
$jour_long= array("Dimanche", "Lundi", "Mardi", "Mercredi", "Jeudi", "Vendredi", "Samedi");
$jour_court= array("Dim", "Lun", "Mar", "Mer", "Jeu", "Ven", "Sam");

$month_long= array('January','February','March','April','May','June','July','August','September','October','November','December');
$month_short= array('Jan','Feb','Mar','Apr','May','Jun','Jul','Aug','Sep','Oct','Nov','Dec');
$day_long= array('Sunday','Monday','Tuesday','Wednesday','Thursday','Friday','Saturday');
$day_short= array('Sun','Mon','Tue','Wed','Thu','Fri','Sat');

$french_date=str_replace($month_long, $mois_long, $string);
$french_date=str_replace($month_short, $mois_court, $french_date);
$french_date=str_replace($day_long, $jour_long, $french_date);
$french_date=str_replace($day_short, $jour_court, $french_date);

  return $french_date;
}
?>

Le code est bien sûr sans doute perfectible, mais le principe est bien là.
Maintenant, je peux appliquer ce modificateur à n'importe quelle variable smarty dans tout les contenus possibles.
Ce qui donne :
Code :
{$event.event_date_start|date_format:"%A"|cms_date_in_french}

Remarque bien que le modifier s'applique après le formatage de la date puisqu'il remplace les termes anglophones générés par PHP.

Cette méthode est intéressante car elle est portable.

JC

{SEO}
Inscrivez-vous à notre Newsletter sur le site (colonne de droite, en bas).
Vous appréciez CMSMS et l'aide qui vous est fournie ici, aidez-nous en participant au projet.
Formation CMS Made Simple | Création de site CMS Made Simple.

C'est en se plantant qu'on devient cultivé.
J'ai un string dans l'Array (Paris Hilton)
Sujet fermé


Messages dans ce sujet

Atteindre :


Utilisateur(s) parcourant ce sujet : 2 visiteur(s)