Menu avec categories suivies des articles rattachés
Bonjour,
Je cherche à faire un menu qui afficherait automatiquement les différentes catégories et les articles qui y sont rattachés.
Categorie 1
Article 1
Article 4
Article 6
Categorie 2
Article 2
Article 3
Article 5
Article 7
…
Y-a t'il un moyen de réaliser cela de façon dynamique ?
J'ai essayer de répéter des catList et des lastArtList mais ça ne fonctionne pas (ça n'affiche pas la deuxième catégorie).
Je cherche à faire un menu qui afficherait automatiquement les différentes catégories et les articles qui y sont rattachés.
Categorie 1
Article 1
Article 4
Article 6
Categorie 2
Article 2
Article 3
Article 5
Article 7
…
Y-a t'il un moyen de réaliser cela de façon dynamique ?
J'ai essayer de répéter des catList et des lastArtList mais ça ne fonctionne pas (ça n'affiche pas la deuxième catégorie).
<?php $plxShow->catList($extra='', $format='<h2 id="#cat_id" class="#cat_status"><a href="#cat_url" title="#cat_name">#cat_name</a></h2>', $include='1', $exclude='')?>
<ul>
<?php $plxShow->lastArtList('<li class="#art_status"><a href="#art_url" title="#art_title">#art_title</a></li>',$max=20,$cat_id='1'); ?>
</ul>
<?php $plxShow->catList($extra='', $format='<h2 id="#cat_id" class="#cat_status"><a href="#cat_url" title="#cat_name">#cat_name</a></h2>', $include='2', $exclude='')?>
<ul>
<?php $plxShow->lastArtList('<li class="#art_status"><a href="#art_url" title="#art_title">#art_title</a></li>',$max=20,$cat_id='2'); ?>
</ul>
Merci d'avance pour votre aide. Connectez-vous ou Inscrivez-vous pour répondre.
Réponses
regarde ce plugin:
http://forum.pluxml.org/viewtopic.php?id=2745
Consultant PluXml
Ancien responsable et développeur de PluXml (2010 à 2018)
J'ai regardé le plugin mais il semble que ça ne réponde pas vraiment à mon besoin :
Je voudrais utiliser ce menu dans la sidebar, donc en permanence tout au long de la navigation.
De plus, je voudrai conserver les états art_status et cat_status pour avoir une état on et off des catégories et articles au cours de la navigation
Je ne comprends pas pourquoi ma proposition ne fonctionne pas ?
Est-il impossible d'utiliser au sein de la même page deux fonctions $plxShow->catList ou $plxShow->lastArtList avec des paramètres différents ?
un petit code très pratique: explications:
on crée un tableau ( $menu ) avec les numéros des catégories à afficher dans le menu.
Puis on utilise la fonction d'affichage des articles ( lastArtList() ) filtrée par catégorie ( $id_cat ).
Reste plus qu'à choisir quelles catégories afficher, dans quel ordre, et le nombre d'articles à afficher ( ici 20 ).
Enjoy,
_____
D.San
Merci mille fois !
est-ce que ca marcherai avec les groupes et les pages statiques?
merci
Le seul problème est que les articles sont obligatoirement dans l'ordre chronologique inverse. Et comme la fonction lastArtList ne renvoie pas une valeur mais écrit directement le contenu avec l'instruction echo, on ne peut rien modifier.
Il reste à modifier les dates-heures des articles, dans le dossier articles et dans configuration/tags.xml pour obtenir l'ordre que l'on veut pour les pages.
Ca marche, mais si l'utilisateur ajoute une page, elle se trouve au début du menu, donc il faut remodifier date-heure pour mettre une date plus ancienne. Et l'utilisateur final (si on fait le site pour un client par exemple), en général il ne sait pas le faire.
Ou alors, il faudrait écrire un plugin qui ajoute à plxShow une fonction lastArtList_reverse, copie de lastArtList mais avec un tri dans le sens chronologique croissant, en remplaçant rsort par sort, vers le début.
D'après le Guide du développeur (merci Stéphane, en voilà un document indispensable !), ça doit être possible, mais je n'ai pas eu le temps d'essayer.
Consultant PluXml
Ancien responsable et développeur de PluXml (2010 à 2018)
Cordialement.
j'ai mis à jour l'astuce de création d'un menu listant les articles classés par catégories.
On paramètre le nombre d'article maxi à afficher, s'il est supérieur, cela affiche un lien "voir l'ensemble des articles" ( utile pour celles et ceux qui ne pensent pas à cliquer sur le lien de la catégorie et qui pensent qu'il n'y en a pas plus ... )
J'ai aussi fait un peu le ménage dans la feuille de style en la séparant en 2: le gabarit d'une part et les styles de l'autre.
Cordialement,
_____
D.San
Je m'en sers pour créer mes menus, en triant les articles par date croissante (ce que ne permet pas la fonction lastArtList utilisée par DanielSan, bien que cette solution soit intéressante aussi).
De cette façon, si mon client veut créer une nouvelle page sur son site, elle se place à la fin de la liste.
Voici la version de Jerry que j'ai mise à ma sauce, notamment en ajoutant la classe active ou noactive pour repérer le menu en cours.
Je l'appelle à partir du header (pour les articles de la catégorie "Menu principal") et à partir du footer (pour les articles de la catégorie "Pied de page"), après avoir initialisé la variable $numcategorie avec le bon n° de catégorie.
En modifiant la date des articles, les utilisateurs peuvent d'ailleurs placer une page où ils le souhaitent, dans le menu en question.
Il reste un problème non résolu : lorsqu'un article appartient à plusieurs catégories, il n'apparaît que dans une seule. Par exemple, si mon premier article appartient à la catégorie "Menu principal" et que je coche "Accueil" en même temps, il disparaît de la catégorie "Menu principal".
Je vais regarder et tester ça dès que j'aurai un peu de temps.
Revenant sur cette fonction bien utile (celle de Danielsan), je me retrouve face à un ptit soucis.
Je ne sais pas si c'est relatif aux dernières version de PluXml, mais la ligne renvoie l'affichage du nombre d'article total du site et non plus de la catégorie courante de la boucle for-each.
Du coup on ne peux plus faire de test sur le nombre d'article contenu dans une catégorie…
MAJ : D'après le wiki, la fonction "nbAllArt" ne permet pas l'utilisation d'un paramètre catégorie ?
http://devzone.pluxml.org/index.php?page=plxShow-nbAllArt
Merci pour votre aide.
il y a mais je ne sais pas pourquoi ça ne marche pas.
Merci Danielsan !
Comment faire en sorte de remplacer par un code qui prendrait l'ensemble des catégories créées et actives sans devoir les spécifier une à une ?
D'avance merci pour votre aide.
ça fait un peu bidouillage ...
Tu peux placer le foreach dans la condition.
Par contre $nbArtCat ne fonctionne toujours pas chez moi, je ne comprends pas pourquoi ...