if($modx->context->get('key') == "web") { setlocale(LC_ALL, 'fr_FR.UTF-8'); }
$modx->getOption('cultureKey');
[[!getResources? &parents=`0` &hideContainers=`1` &tpl=`latestNewsTpl` &limit=`10` &sortby=`editedon` ]]
<p><a href="[[~[[+id]]]]">[[+pagetitle]]</a> <br/><span class='discret'>le [[+editedon:modifdate]] à [[+editedon:modifheure]]</span> </p>
<?php if (!isset($output)) $output = '_'; if (empty($pattern)) $pattern = '%d %b %Y'; if (!empty($input)) { $date = strtotime($input); $output = strftime($pattern, $date); } return $output;
<?php function moisAff($mois) { switch ($mois) { case ("01") : $moisaff = "Janvier"; break; case ("02") : $moisaff = "Février"; break; case ("03") : $moisaff = "Mars"; break; case ("04") : $moisaff = "Avril"; break; case ("05") : $moisaff = "Mai"; break; case ("06") : $moisaff = "Juin"; break; case ("07") : $moisaff = "Juillet"; break; case ("08") : $moisaff = "Août"; break; case ("09") : $moisaff = "Septembre"; break; case ("10") : $moisaff = "Octobre"; break; case ("11") : $moisaff = "Novembre"; break; case ("12") : $moisaff = "Décembre"; break; } return $moisaff; } $zidate = isset($zidate) ? $zidate : ""; if ($zidate == "") return ""; else { $day = date('d', $zidate); $month = moisAff(date('m', $zidate)); $year = date('Y', $zidate); return "$day $month $year"; } ?>
require_once(MODX_BASE_PATH."assets/snippets/functions/functions.php");
[[dateFr? &zidate=`pubdate`]]
[[+editedon:modifdate]]
<?php $input = isset($input) ? $input : ""; if ($input == "") return ""; else { $jour = strftime('%d', strtotime($input)); $mois = strftime('%m', strtotime($input)); switch ($mois) { case ("01") : $moistxt = "Jan"; break; case ("02") : $moistxt = "Fév"; break; case ("03") : $moistxt = "Mars"; break; case ("04") : $moistxt = "Avr"; break; case ("05") : $moistxt = "Mai"; break; case ("06") : $moistxt = "Juin"; break; case ("07") : $moistxt = "Juil"; break; case ("08") : $moistxt = "Août"; break; case ("09") : $moistxt = "Sept"; break; case ("10") : $moistxt = "Oct"; break; case ("11") : $moistxt = "Nov"; break; case ("12") : $moistxt = "Déc"; break; } $annee = strftime('%Y', strtotime($input)); return "$jour $moistxt $annee"; } ?>
date('d', $zidate);
require_once(MODX_BASE_PATH."assets/snippets/functions/functions.php");
<?php function moisAff($mois) { switch ($mois) { case ("01") : $moisaff = "Janvier"; break; case ("02") : $moisaff = "Février"; break; case ("03") : $moisaff = "Mars"; break; case ("04") : $moisaff = "Avril"; break; case ("05") : $moisaff = "Mai"; break; case ("06") : $moisaff = "Juin"; break; case ("07") : $moisaff = "Juillet"; break; case ("08") : $moisaff = "Août"; break; case ("09") : $moisaff = "Septembre"; break; case ("10") : $moisaff = "Octobre"; break; case ("11") : $moisaff = "Novembre"; break; case ("12") : $moisaff = "Décembre"; break; } return $moisaff; } $zidate = isset($zidate) ? $zidate : ""; if ($zidate == "") return; else { $zidate = strtotime($zidate); //pour mettre la date au format timestamp Unix $day = date('d', $zidate); $month = moisAff(date('m', $zidate)); $year = date('Y', $zidate); return "$day $month $year"; } ?>
Oui en effet pour les dates, merci.
je pense pouvoir répondre à tes deux questions
- le format de date, probablement parce que je pars de timestamps unix là où tu pars de date au format datetime (ou timestamp mysql)
perso, je suis dans Evolution (Evo stocke les dates en timestamp, Revo, vérification faite, en datetime), j’ai abandonné Revo, beaucoup trop lent en front, j’y reviendrai assurément mais quand le front ne souffrira plus de lenteur chronique (je ne sais pas à quoi c’est dû mais un même script d’animation front dans Evo et Revo, c’est le jour et la nuit...)
- pour le comment je fais avec les fonctions (en réalité, ça marche de déclarer un fonction dans un snippet... à condition de n’utiliser qu’une fois le snippet dans la page, ce n’est pas propre à MODx, le fait est qu’on ne peut/doit pas redéclarer un fonction déjà déclarée dans une page, fais un test en raw php, il te fera la même que MODx )Ah mais oui !!! Je le savais, j’ai de nombreuses fois fait l’erreur lors de mon apprentissage, toujours en cours d’ailleurs, et j’avais oublié. Mon test hors modx ne reproduisait pas ce cas de figure évidemment. :$
du coup (syntaxe evo, sorry), je trimballe un fichiers de fonctions qui me servent souvent, fichier que j’appelle... functions.php et que je colle dans un dossier... functions lui-même dans le dossier assets/snippets et, quand j’en ai besoin, que ce soit dans un module, un snippet ou autre, je fais
require_once(MODX_BASE_PATH."assets/snippets/functions/functions.php");
dans mon snippet par ex pour aller le chercher et le tour est joué
tu remarqueras d’ailleurs le require_once justement pour éviter la redéclaration des fonctions stockées si on includait le fichier à chaque appel du snippet
du coup, pour en revenir à cette histoire de dates, dans Revo, il faut juste ajouter un ligne à mon snippet pour qu’il prenne le format datetime
<?php function moisAff($mois) { switch ($mois) { case ("01") : $moisaff = "Janvier"; break; case ("02") : $moisaff = "Février"; break; case ("03") : $moisaff = "Mars"; break; case ("04") : $moisaff = "Avril"; break; case ("05") : $moisaff = "Mai"; break; case ("06") : $moisaff = "Juin"; break; case ("07") : $moisaff = "Juillet"; break; case ("08") : $moisaff = "Août"; break; case ("09") : $moisaff = "Septembre"; break; case ("10") : $moisaff = "Octobre"; break; case ("11") : $moisaff = "Novembre"; break; case ("12") : $moisaff = "Décembre"; break; } return $moisaff; } $zidate = isset($zidate) ? $zidate : ""; if ($zidate == "") return; else { $zidate = strtotime($zidate); //pour mettre la date au format timestamp Unix $day = date('d', $zidate); $month = moisAff(date('m', $zidate)); $year = date('Y', $zidate); return "$day $month $year"; } ?>
la fonction étant donc comme tu le soulignes justement à aller plutôt déclarer dans un fichier externe ou, sinon, à utiliser comme tu le fais directement dans le script sans en faire une function
voilou, amuse-toi bien
Have swing