Format de la date

Bonjour à tous,

J'ai débuté l'adaptation de mon thème pour PluXml et je bloque devant une méthode de plxShow.

En effet, je cherche à afficher le mois, mais seulement les 3 premiers caractères (Jan, Fév, ...).

J'utilise $plxShow->artDate('#month'); mais je ne vois pas comment garder les 3 premiers caractères sans modifier les fichiers du core...

Une idée ?

Bonne journée

Réponses

  • StéphaneStéphane Member, Former PluXml Project Manager
    Bonjour Jeoffrey

    En natif ce n'est pas possible de le faire.

    En revanche avec jQuery, très facile.

    Soit tu installes manuellement jquery, soit tu utilises le plugin jQuery disponible ici (pour PluXml 5.1).

    Dans le fichier footer.php de ton thème, avant </body>, colle le code suivant
    <script type="text/javascript">
    $('.month').each(function(){
    	var text = $(this).html();
    	$(this).html(text.substring(0,3));
    })
    </script>
    
    Modifie l'affichage de la date dans chaque fichier du theme de cette façon
    <p class="date"><?php $plxShow->artDate('#num_day <span class="month">#month</span> #num_year(4)'); ?></p>
    
    L'idée est d'entourer l'affichage du mois #month par une balise span avec la class month. jQuery va donc recherche et modifier le contenu des balises identifiées par la class .month de manière à ne garder que les 3 premiers caractères

    Et voilà, le tour est joué

    Consultant PluXml

    Ancien responsable du projet (2010 à 2018)

  • Bonjour Stéphane,

    Merci pour ta réponse. Installer Jquery juste pour faire ça, ça me dérange un peu...

    Et si je veux le faire au niveau du core ?
  • StéphaneStéphane Member, Former PluXml Project Manager
    Alors dans le fichier core/lib/class.plx.date.php, dans la fonction dateIsoToHum()

    en dessous de la ligne
    $format = str_replace('#day', plxDate::getCalendar('day', $day_num), $format);
    
    rajoute
    $format = str_replace('#month(3)', substr(plxUtils::strRevCheck(plxDate::getCalendar('month', $month)),0,4), $format);
    
    Dans ton theme, formate la date de cette façon:
    <p class="date"><?php $plxShow->artDate('#num_day #month(3) #num_year(4)'); ?></p>
    

    Consultant PluXml

    Ancien responsable du projet (2010 à 2018)

  • Ça marche merci ;) .
  • Bonjour,

    Un petit up pour ce thread.

    J'ai fait la mise à jour PluXML 5.1.2, et depuis, ce code ne fonctionne plus :
    $format = str_replace('#month(3)', substr(plxUtils::strRevCheck(plxDate::getCalendar('month', $month)),0,4), $format);
    
    En fait, j'ai un à la place de Aoù. Et si je supprime le strRevCheck, je l'ai au format &eacute...

    Une idée ?
  • Sans lettre (tout en chiffre quoi !) je met simplement :
    <p class="date">
    								<span class="day"><?php $plxShow->artDate('#num_day'); ?></span>
    								<span class="month"><?php $plxShow->artDate('#month'); ?></span>
    								<span class="year"><?php $plxShow->artDate('#num_year(2)'); ?>
    							</p>
    
    Autre solution plus simple, si tu tiens à tes 3 premiers caractères du mois, tu peux aussi modifier le fichier lang : /core/lang/fr/core.php (a partir de la ligne 20). Par contre je n'ai pas testé. :)
  • Non, je ne veux pas afficher que des chiffres, mais bien garder mes 3 premiers caractères pour le mois en cours.
    Actuellement j'ai ceci :
    $format = str_replace('#month(3)', substr(plxUtils::strRevCheck(plxDate::getCalendar('month', $month)),0,4), $format);
    
    Si j'enlève le strRevCheck, il me renvoie "Ao&", le & correspondant au premier caractère HTML je suppose (&ucirc)...

    Une idée ?
Connectez-vous ou Inscrivez-vous pour répondre.