Bonjour,
Le menu que je réalise est donc dynamique et me permet d'afficher les rubriques
de mon site, c'est à dire que lorsque je clique sur une des rubriques
principales je souhaite avoir l'affichage des sous-rubriques s'y trouvant puis
en cliquant sur ses sous-rubriques les rubriques s'y trouvant ( ainsi que les
articles ) et ainsi de suite.
Le problème est que avec le système que j'ai choisi j'arrive seulement à
afficher toutes les rubriques de mon site et non celle dans laquelle je me
situe.
Voici le code ( je sais c'est laborieux de lire mais merci de votre aide ) :
<!-- Menu rubriques, copié de article.html -->
<?php
if(floor(phpversion()) < 4) {
// La version de PHP est inférieure à 4,
// la fonction in_array n'existe donc pas
function in_array($member, $array)
{
reset($array);
while (list($k, $v) = each($array)) {
if ($v == $member) return true;
}
return false;
}
}
// récupération de la hiérarchie courante
$hierarchie = array();
<BOUCLE_principale(RUBRIQUES){id_rubrique}>
<BOUCLE_hierarchie(HIERARCHIE){id_rubrique}>
$hierarchie[] = #ID_RUBRIQUE;
</BOUCLE_hierarchie>
$hierarchie[] = #ID_RUBRIQUE;
$actuelle = #ID_RUBRIQUE;
</BOUCLE_principale>
?>
<div class="menu">
<!-- biz deletes
<ol>
-->
<!-- Affichage des rubriques :
niveau 1 -->
<BOUCLE_secteurs(RUBRIQUES) {id_parent=0} {par titre}>
<?php $id = #ID_RUBRIQUE; ?>
<BOUCLE_nb_rubriques(RUBRIQUES){id_parent}>
<?php ${'nb'.$id} = #TOTAL_BOUCLE; ?>
</BOUCLE_nb_rubriques>
<div class="menu-titre"
echo (#ID_RUBRIQUE == $actuelle ? 'id="courant"' :
(in_array(#ID_RUBRIQUE, $hierarchie) ?
'id="courant"' : ''));
?> >
<a href="#URL_RUBRIQUE">#TITRE</a>
</div>
<!-- Afficher les articles de cette rubrique -->
<!-- BUG Le code ici gère les rubriques au niveau 1, plus bas celles
au niveau 2, rien ne gère les rubriques au niveau 3 et plus -->
<!-- AMELIORATION récupérer en même temps que $actuelle une
variable $article_actuel et mettre son URL en gras -->
<?php if(#ID_RUBRIQUE == $actuelle) {
<B_articles3>
echo '
<ul class="menu-liste">
<li class="menu-item">
';
<BOUCLE_articles3(ARTICLES){id_rubrique}>
echo '
- <a href="#URL_ARTICLE">#TITRE</a><br>
';
</BOUCLE_articles3>
echo '
</li>
</ul>
';
</B_articles3>
;} {}
?>
<BOUCLE_rubriques(RUBRIQUES) {id_parent}{par titre}>
<?php $id = #ID_RUBRIQUE; ?>
<BOUCLE_nb_sous_rubriques(RUBRIQUES){id_parent}>
<?php ${'nb'.$id} = #TOTAL_BOUCLE; ?>
</BOUCLE_nb_sous_rubriques>
<div class="menu-titre"
<?php echo (#ID_RUBRIQUE == $actuelle ? 'id="courant"' :
(in_array(#ID_RUBRIQUE, $hierarchie) ? 'id="courant"' :
' ')); ?> >
<a href="#URL_RUBRIQUE">
[(#TITRE|supprimer_numero)]</a>
</div>
<!-- Afficher les articles de cette rubrique -->
<?php if(#ID_RUBRIQUE == $actuelle) {
<B_articles4>
echo '
<ul class="menu-liste">
<li class="menu-item">
';
<BOUCLE_articles4(ARTICLES){id_rubrique}>
echo '
- <a href="#URL_ARTICLE">#TITRE</a><br>
';
</BOUCLE_articles4>
echo '
</li>
</ul>
';
</B_articles4>
;} {}
?>
<BOUCLE_sousrubrique(BOUCLE_rubriques)> <!-- Boucles récursives
permettant de faire le même traitement -->
<BOUCLE_soussousrubrique(BOUCLE_rubriques)>
</BOUCLE_soussousrubrique>
</BOUCLE_sousrubrique>
</BOUCLE_rubriques>
</BOUCLE_secteurs>
<!-- biz deletes
</ol>
-->
</div>
</div>