[RÉSOLU] Modifier l'affichage de la date que pour certaines catégories

nicomaxnicomax Member
juillet 2014 modifié dans Modifications
Salutatous,

Pour les articles de certaines catégories, je souhaite remplacer l'affichage de la date,
par exemple : "vendredi 04 juillet 2014",
par : "Publié en 2014".

J'ai donc dupliqué le fichier "article.php" et l'ai renommé "article-collection.php".

J'ai remplacé cette ligne :
[== PHP ==]
<p class="day"><?php $plxShow->artDate('#day #num_day #month #num_year(4)'); ?></p>

Par :
[== PHP ==]
<?php
	$idCat = '006';
	if(isset($plxMotor->aCats[$idCat])) {
?>
                    
<p class="day">Publi&eacute; en <?php $plxShow->artDate('#num_year(4)'); ?></p>
                    
<?php
	} else {
?>

<p class="day"><?php $plxShow->artDate('#day #num_day #month #num_year(4)'); ?></p>

<?php
	}
?>

J'ai également remplacé le même bout de code dans les fichiers "catégorie.php", "article.php" et "archives.php"

RÉSULTAT : "Publié en 2014" s'affiche pour tous les articles de toutes les catégories alors que je ne le souhaite que pour la catégorie 006

Merci d'avance de vos lumières...

Réponses

  • StéphaneStéphane Member, Former PluXml Project Manager
    Salut

    Ton test est mauvais.
    Les catégories d'un article sont sous forme de tableau.
    Il faut donc tester si la catégorie 006 appartient à la liste des catégories dans lesquelles l'article peut être classé (car un article peut être classé dans plusieurs catégories à la fois).

    La méthode artActiveCatIds() de la classe plxShow renvoie la liste des catégories actives d'un article.
    <p class="day">
    <?php 
    if(in_array('006', $plxShow->artActiveCatIds())) {
    	echo plxDate::formatDate($plxMotor->plxRecord_arts->f('date'), '#num_year(4)');
    } else {
    	echo plxDate::formatDate($plxMotor->plxRecord_arts->f('date'), '#day #num_day #month #num_year(4)');
    }
    ?>
    </p>
    

    Au passage tu remarqueras l'utilisation de la fonction plxDate::formatDate avec $plxMotor->plxRecord_arts->f('date') qui permet d’accéder directement à la date de l'article sans utiliser $plxShow->artDate

    edit: j'ai sorti l'affichage de <p class="day">...</p> du code php pour alléger le code

    Consultant PluXml

    Ancien responsable du projet (2010 à 2018)

  • Merci pour ces bons tuyaux Stéphane,
    ça fonctionne parfaitement :)
  • jLjjLj Member
    Intéressant tout cela..
    et ... çà serait possible, au départ du même contrôle, de n'afficher que "Agenda du mois de" et laisser le nom du mois ?
    Je pense que oui, mais quelques indications (fichier et lignes à modifier) me seraient très utiles, il n'y a que quelques jours que je tripatouille la bête.
    Très grand merci pour votre aide !
Connectez-vous ou Inscrivez-vous pour répondre.