Construction d'un menu avec les articles en sous menu
Bonjour,
Pour les besoins d'un thème je dois construire un menu qui liste les catégories articles et les articles qui y sont rattachés dont voici le code :
L'idée est d'utiliser l'objet plxRecord_arts pour ne pas recharger une nouvelle fois tout les articles. Sur la page d'accueil pas de soucis tout marche. Si je rentre dans une catégorie seul les articles de celle-ci sont listés et si je vais sur un article il y a plus que lui qui est listé.
Est-ce qu'il y a une autre méthode pour arriver à ce que je veux faire ?
Pour les besoins d'un thème je dois construire un menu qui liste les catégories articles et les articles qui y sont rattachés dont voici le code :
[== Indéfini ==]
<nav class="grid nav">
<div class="col sml-hide sml-centered med-10 med-show med-centered lrg-10 lrg-show lrg-centered">
<ul class="menu expanded">
<?php
$status = $plxShow->catId()=='home'?"active":"noactive";
echo ' <li class="'.$status.'"><a href="'.$plxMotor->urlRewrite().'" title="Accueil">Accueil</a></li>';
foreach($plxMotor->aCats as $k=>$v) {
if($v['articles'] > 0 AND $v['active'] == '1' AND $v['menu'] == 'oui') {
$id = intval($k);
$status = $plxShow->catId()==$id?"active":"noactive";
echo '<li id="cat-'.$id.'" class="'.$status.'"><a href="'.$plxMotor->urlRewrite('?categorie'.intval($k).'/'.$v['url']).'" title="'.$v['name'].'">'.$v['name'].'</a>';
echo '<ul>';
$i = 0;
while($i < $plxShow->plxMotor->plxRecord_arts->size) {
if ($plxShow->plxMotor->plxRecord_arts->result[$i]['categorie'] == $k) {
$url = $plxShow->plxMotor->plxRecord_arts->result[$i]['url'];
$id = intval($plxShow->plxMotor->plxRecord_arts->result[$i]['numero']);
echo '<li>
<a href="'.$plxMotor->urlRewrite('?article'.$id.'/'.$url).'">'.$plxShow->plxMotor->plxRecord_arts->result[$i]['title'].'</a></li>';
}
$i++;
}
echo '</ul>';
echo '</li>';
}
}
?>
</ul>
</div>
</nav>
L'idée est d'utiliser l'objet plxRecord_arts pour ne pas recharger une nouvelle fois tout les articles. Sur la page d'accueil pas de soucis tout marche. Si je rentre dans une catégorie seul les articles de celle-ci sont listés et si je vais sur un article il y a plus que lui qui est listé.
Est-ce qu'il y a une autre méthode pour arriver à ce que je veux faire ?
J'ai un string de l'array
Connectez-vous ou Inscrivez-vous pour répondre.
Réponses
Inspire toi de ce que fait la fonction plxShow::lastArtList
avec le bon motif tu auras facilement la liste des articles dont tu as besoin
un motif pour lister les articles d'une catégorie ressemble à ça
tu as toutes les infos sur les articles dans le tableau $art
Consultant PluXml
Ancien responsable et développeur de PluXml (2010 à 2018)
Merci ça marche nikel avec ce code :
J'ai essayé de reproduire la gestion de actif/inactif comme sur les catégories
A la place de catId() j'ai mis artId() mais ça me renvoie toujours 1 que je sois sur home ou sur un article différent de 1.
J'ai un string de l'array
J'ai un string de l'array