Affichage d'articles par date

Bonjour,
J'essaie sans succès d'afficher sur ma page d'accueil les articles du mois courant.
Jusqu'à présent j'ai essayé la fonction LastArtList mais la sélection ne se fait pas sur des dates et la fonction ArchList mais celle-ci retourne la liste des mois renfermant des documents ce qui fait désordre sur la page d'accueil. Comment procédez-vous pour traiter ce genre de problème ?
Merci.

Réponses

  • Un peu barbare mais tu peu toujours t'ajouter toi même un paramètre à lastArtList

    Quelque chose comme sa à changer dans core/lib/class.plx.show.php Ligne 910 :
    [== PHP ==]
    public function lastArtList($format='<li><a href="#art_url" title="#art_title">#art_title</a></li>',$max=5,$cat_id='',$ending='', $sort='rsort', $dateSort='')
    
    Puis ligne 926 ajouter une condition qui englobe 926 jusqu'à la ligne 970 compris.
    type :
    [== PHP ==]
    if($dateSort == plxDate::formatDate($date,#num_month/#num_year(4)'))
    

    Et quand tu apelle lastArtList tu :
    [== PHP ==]
    $plxShow->lastArtList("Plop","99","","","",$MoisAnnéesDuMoment);
    
    Je te laisse de débrouiller pour trouver et formater la date tu devrait t'en sortir sans trop de problèmes ;)

    Ps: je n'ai pas tester mais en gros c'est l'idée
  • Bonjour,
    Merci pour la réponse mais plx.Show n'a pas aimé ce test... plantage de la page.
  • Je n'ai pas tester,
    Poste la fonction lastArtList que tu a modifier il doit y avoir un ou des erreurs.
    Je vais voir si je les trouve :)
  • Donc voici la modification effectuée :
    [== PHP ==]
    	public function lastArtList($format='<li><a href="#art_url" title="#art_title">#art_title</a></li>',$max=5,$cat_id='',$ending='', $sort='rsort', $dateSort='') {
    		# Hook Plugins
    		if(eval($this->plxMotor->plxPlugins->callHook('plxShowLastArtList'))) return;
    		# Génération de notre motif
    		if(empty($cat_id))
    			$motif = '/^[0-9]{4}.(?:[0-9]|home|,)*(?:'.$this->plxMotor->activeCats.'|home)(?:[0-9]|home|,)*.[0-9]{3}.[0-9]{12}.[a-z0-9-]+.xml$/';
    		else
    			$motif = '/^[0-9]{4}.((?:[0-9]|home|,)*(?:'.str_pad($cat_id,3,'0',STR_PAD_LEFT).')(?:[0-9]|home|,)*).[0-9]{3}.[0-9]{12}.[a-z0-9-]+.xml$/';
    
    		# Nouvel objet plxGlob et récupération des fichiers
    		$plxGlob_arts = clone $this->plxMotor->plxGlob_arts;
    		if($aFiles = $plxGlob_arts->query($motif,'art',$sort,0,$max,'all')) {
    			foreach($aFiles as $v) { # On parcourt tous les fichiers
    				$art = $this->plxMotor->parseArticle(PLX_ROOT.$this->plxMotor->aConf['racine_articles'].$v);
    				$num = intval($art['numero']);
    				$date = $art['date'];
    				/** ligne ajoutée **/
    				if($dateSort == plxDate::formatDate($date,#num_month/#num_year(4)')) {
    				if(($this->plxMotor->mode == 'article') AND ($art['numero'] == $this->plxMotor->cible))
    					$status = 'active';
    				else
    					$status = 'noactive';
    				# Mise en forme de la liste des catégories
    				$catList = array();
    				$catIds = explode(',', $art['categorie']);
    				foreach ($catIds as $idx => $catId) {
    					if(isset($this->plxMotor->aCats[$catId])) { # La catégorie existe
    						$catName = plxUtils::strCheck($this->plxMotor->aCats[$catId]['name']);
    						$catUrl = $this->plxMotor->aCats[$catId]['url'];
    						$catList[] = '<a title="'.$catName.'" href="'.$this->plxMotor->urlRewrite('?categorie'.intval($catId).'/'.$catUrl).'">'.$catName.'</a>';
    					} else {
    						$catList[] = L_UNCLASSIFIED;
    					}
    				}
    				# On modifie nos motifs
    				$row = str_replace('#art_id',$num,$format);
    				$row = str_replace('#cat_list', implode(', ',$catList),$row);
    				$row = str_replace('#art_url',$this->plxMotor->urlRewrite('?article'.$num.'/'.$art['url']),$row);
    				$row = str_replace('#art_status',$status,$row);
    				$author = plxUtils::getValue($this->plxMotor->aUsers[$art['author']]['name']);
    				$row = str_replace('#art_author',plxUtils::strCheck($author),$row);
    				$row = str_replace('#art_title',plxUtils::strCheck($art['title']),$row);
    				$strlength = preg_match('/#art_chapo\(([0-9]+)\)/',$row,$capture) ? $capture[1] : '100';
    				$chapo = plxUtils::truncate($art['chapo'],$strlength,$ending,true,true);
    				$row = str_replace('#art_chapo('.$strlength.')','#art_chapo',$row);
    				$row = str_replace('#art_chapo',$chapo,$row);
    				$strlength = preg_match('/#art_content\(([0-9]+)\)/',$row,$capture) ? $capture[1] : '100';
    				$content = plxUtils::truncate($art['content'],$strlength,$ending,true,true);
    				$row = str_replace('#art_content('.$strlength.')','#art_content',$row);
    				$row = str_replace('#art_content',$content,$row);
    				$row = str_replace('#art_date',plxDate::formatDate($date,'#num_day/#num_month/#num_year(4)'),$row);
    				$row = str_replace('#art_hour',plxDate::formatDate($date,'#hour:#minute'),$row);
    				$row = str_replace('#art_time',plxDate::formatDate($date,'#time'),$row);
    				$row = plxDate::formatDate($date,$row);
    				$row = str_replace('#art_nbcoms',$art['nb_com'],$row);
    				$row = str_replace('#art_thumbnail', '<img class="art_thumbnail" src="#img_url" alt="#img_alt" title="#img_title" />',$row);
    				$row = str_replace('#img_url',$this->plxMotor->urlRewrite($art['thumbnail']),$row);
    				$row = str_replace('#img_title',$art['thumbnail_title'],$row);
    				$row = str_replace('#img_alt',$art['thumbnail_alt'],$row);
    				# Hook plugin
    				eval($this->plxMotor->plxPlugins->callHook('plxShowLastArtListContent'));
    				# On genère notre ligne
    				echo $row;
    				}
    			}
    		}
    	}
    
  • [== PHP ==]
    	public function lastArtList($format='<li><a href="#art_url" title="#art_title">#art_title</a></li>',$max=5,$cat_id='',$ending='', $sort='rsort', $dateSort='') {
    		# Hook Plugins
    		if(eval($this->plxMotor->plxPlugins->callHook('plxShowLastArtList'))) return;
    		# Génération de notre motif
    		if(empty($cat_id))
    			$motif = '/^[0-9]{4}.(?:[0-9]|home|,)*(?:'.$this->plxMotor->activeCats.'|home)(?:[0-9]|home|,)*.[0-9]{3}.[0-9]{12}.[a-z0-9-]+.xml$/';
    		else
    			$motif = '/^[0-9]{4}.((?:[0-9]|home|,)*(?:'.str_pad($cat_id,3,'0',STR_PAD_LEFT).')(?:[0-9]|home|,)*).[0-9]{3}.[0-9]{12}.[a-z0-9-]+.xml$/';
    
    		# Nouvel objet plxGlob et récupération des fichiers
    		$plxGlob_arts = clone $this->plxMotor->plxGlob_arts;
    		if($aFiles = $plxGlob_arts->query($motif,'art',$sort,0,$max,'all')) {
    			foreach($aFiles as $v) { # On parcourt tous les fichiers
    				$art = $this->plxMotor->parseArticle(PLX_ROOT.$this->plxMotor->aConf['racine_articles'].$v);
    				$num = intval($art['numero']);
    				$date = $art['date'];
    				/** ligne ajoutée **/
    				if($dateSort == plxDate::formatDate($date,#num_month/#num_year(4))) {
    					if(($this->plxMotor->mode == 'article') AND ($art['numero'] == $this->plxMotor->cible))
    						$status = 'active';
    					else
    						$status = 'noactive';
    					# Mise en forme de la liste des catégories
    					$catList = array();
    					$catIds = explode(',', $art['categorie']);
    					foreach ($catIds as $idx => $catId) {
    						if(isset($this->plxMotor->aCats[$catId])) { # La catégorie existe
    							$catName = plxUtils::strCheck($this->plxMotor->aCats[$catId]['name']);
    							$catUrl = $this->plxMotor->aCats[$catId]['url'];
    							$catList[] = '<a title="'.$catName.'" href="'.$this->plxMotor->urlRewrite('?categorie'.intval($catId).'/'.$catUrl).'">'.$catName.'</a>';
    						} else {
    							$catList[] = L_UNCLASSIFIED;
    						}
    					}
    					# On modifie nos motifs
    					$row = str_replace('#art_id',$num,$format);
    					$row = str_replace('#cat_list', implode(', ',$catList),$row);
    					$row = str_replace('#art_url',$this->plxMotor->urlRewrite('?article'.$num.'/'.$art['url']),$row);
    					$row = str_replace('#art_status',$status,$row);
    					$author = plxUtils::getValue($this->plxMotor->aUsers[$art['author']]['name']);
    					$row = str_replace('#art_author',plxUtils::strCheck($author),$row);
    					$row = str_replace('#art_title',plxUtils::strCheck($art['title']),$row);
    					$strlength = preg_match('/#art_chapo\(([0-9]+)\)/',$row,$capture) ? $capture[1] : '100';
    					$chapo = plxUtils::truncate($art['chapo'],$strlength,$ending,true,true);
    					$row = str_replace('#art_chapo('.$strlength.')','#art_chapo',$row);
    					$row = str_replace('#art_chapo',$chapo,$row);
    					$strlength = preg_match('/#art_content\(([0-9]+)\)/',$row,$capture) ? $capture[1] : '100';
    					$content = plxUtils::truncate($art['content'],$strlength,$ending,true,true);
    					$row = str_replace('#art_content('.$strlength.')','#art_content',$row);
    					$row = str_replace('#art_content',$content,$row);
    					$row = str_replace('#art_date',plxDate::formatDate($date,'#num_day/#num_month/#num_year(4)'),$row);
    					$row = str_replace('#art_hour',plxDate::formatDate($date,'#hour:#minute'),$row);
    					$row = str_replace('#art_time',plxDate::formatDate($date,'#time'),$row);
    					$row = plxDate::formatDate($date,$row);
    					$row = str_replace('#art_nbcoms',$art['nb_com'],$row);
    					$row = str_replace('#art_thumbnail', '<img class="art_thumbnail" src="#img_url" alt="#img_alt" title="#img_title" />',$row);
    					$row = str_replace('#img_url',$this->plxMotor->urlRewrite($art['thumbnail']),$row);
    					$row = str_replace('#img_title',$art['thumbnail_title'],$row);
    					$row = str_replace('#img_alt',$art['thumbnail_alt'],$row);
    					# Hook plugin
    					eval($this->plxMotor->plxPlugins->callHook('plxShowLastArtListContent'));
    					# On genère notre ligne
    					echo $row;
    				}
    			}
    		}
    	}
    
    J'avais fait une petite erreur de frappe (4)')) j'ai sans le vouloir ajouter un '. j'ai supprimer et tabuler pour plus de lisibiliter.*
    Re test et dit moi :)
  • Bonjour,
    Pas plus de succès avec ce correctif. La page ne s'affiche pas.
  • StéphaneStéphane Member, Former PluXml Project Manager
    Bonjour

    Peux-tu essayer avec ce plugin, si ça donne ce que tu veux

    http://download.pluxopolis.net/public/plxMonthly.1.0.zip

    Consultant PluXml

    Ancien responsable du projet (2010 à 2018)

  • Parfait ce petit plugin. Merci.
  • StéphaneStéphane Member, Former PluXml Project Manager
    Super. plugin écrit spécialement pour toi ;)

    Consultant PluXml

    Ancien responsable du projet (2010 à 2018)

Connectez-vous ou Inscrivez-vous pour répondre.