arbo secteur en cours

hello,

encore une question de menu :wink:

j'aimerais utiliser qu'un seul menu dans tous mes squelettes (avec un inclure). j'aimerais que celui ci me retourne tj tous les secteurs et seulement les rubriques contenues dans le secteur en cours (qu'on soit au niveau du secteur, de la rubrique ou de l'article)... j'ai bien un début de boucle, mais elle me retourne toutes les rubriques de tous les secteurs, et je vois pas ce qu'il faut modifier - et surtout pour que celà marche tt le temps... :

<div id="menu">
        <ul>
        <BOUCLE_menuGeneral(RUBRIQUES){racine}{id_rubrique!=1}{tout}>
                       <li><a href = [(#URL_RUBRIQUE)] >[(#TITRE|supprimer_numero)]</a>
                               <B_ListeRub>
                <ul>
                <BOUCLE_ListeRub(RUBRIQUES){id_parent}{par titre}{tout}>
                <li><a href = [(#URL_RUBRIQUE)] > [(#TITRE|supprimer_numero)]</a></li>
                </BOUCLE_ListeRub>
                </ul>
                </B_ListeRub>
            </li> </BOUCLE_menuGeneral>
        </ul>
    </div>

jai essayé de changer certains parametres en utilisant HIERARCHIE, mais rien de concluant..

merci

--
----------------------------------
Jean Philippe Benadjer
Infographiste
Atol Conseil et Développements

Solution 1 : l'id_secteur en cours est passé en paramètre
Solution 2 : le menu est placé dans une boucle qui en fonction de la page détermine le secteur en cours.
Attn je ne pense pas que c'est un problème trivial. Je pense qu'il va falloir utiliser un affichage conditionnel qui peut être dans l'inclure.
@+
Yorghos
Le 28 avr. 04, à 10:29, Jean Philippe Benadjer a écrit :

hello,

encore une question de menu :wink:

j'aimerais utiliser qu'un seul menu dans tous mes squelettes (avec un inclure). j'aimerais que celui ci me retourne tj tous les secteurs et seulement les rubriques contenues dans le secteur en cours (qu'on soit au niveau du secteur, de la rubrique ou de l'article)... j'ai bien un début de boucle, mais elle me retourne toutes les rubriques de tous les secteurs, et je vois pas ce qu'il faut modifier - et surtout pour que celà marche tt le temps... :

<div id="menu">
       <ul>
       <BOUCLE_menuGeneral(RUBRIQUES){racine}{id_rubrique!=1}{tout}>
                     <li><a href = [(#URL_RUBRIQUE)] >[(#TITRE|supprimer_numero)]</a>
                             <B_ListeRub>
               <ul>
               <BOUCLE_ListeRub(RUBRIQUES){id_parent}{par titre}{tout}>
               <li><a href = [(#URL_RUBRIQUE)] > [(#TITRE|supprimer_numero)]</a></li>
               </BOUCLE_ListeRub>
               </ul>
               </B_ListeRub>
           </li> </BOUCLE_menuGeneral>
       </ul>
   </div>

jai essayé de changer certains parametres en utilisant HIERARCHIE, mais rien de concluant..

merci

--
----------------------------------
Jean Philippe Benadjer
Infographiste
Atol Conseil et Développements

_______________________________________________
liste spip
spip@rezo.net - désabonnement : spip-off@rezo.net
Infos et archives : http://listes.rezo.net/mailman/listinfo/spip
Documentation de SPIP : http://www.spip.net/
irc://irc.freenode.net/spip

<yorghos.remvikos> writes:

Solution 1 : l'id_secteur en cours est passé en paramètre
Solution 2 : le menu est placé dans une boucle qui en fonction de la
page détermine le secteur en cours.
Attn je ne pense pas que c'est un problème trivial. Je pense qu'il va
falloir utiliser un affichage conditionnel qui peut être dans
l'inclure.
<at> +

Je viens de trouver le moyen de faire ca et cela marche correctement grâce à
cette méthode avec le secteur en cours.

J'utilise du PHP pour mettre le secteur de base dans une variable puis par la
suite le comparer avec le secteur courant

hello,
tu peux nous montrer ton code? merci

--
Alexis Roussel
UNITAR
Palais des Nations
Switzerland
e-mail:<alexis.roussel@unitar.org>
________________________________
Programme Société de L'Information
Information Society Programme
http://egov.unitar.org

Mattt wrote:

<yorghos.remvikos> writes:

Solution 1 : l'id_secteur en cours est passé en paramètre
Solution 2 : le menu est placé dans une boucle qui en fonction de la page détermine le secteur en cours.
Attn je ne pense pas que c'est un problème trivial. Je pense qu'il va falloir utiliser un affichage conditionnel qui peut être dans l'inclure.
<at> +
   
Je viens de trouver le moyen de faire ca et cela marche correctement grâce à cette méthode avec le secteur en cours.

J'utilise du PHP pour mettre le secteur de base dans une variable puis par la suite le comparer avec le secteur courant

------------------------------------------------------------------------

_______________________________________________
liste spip
spip@rezo.net - désabonnement : spip-off@rezo.net
Infos et archives : http://listes.rezo.net/mailman/listinfo/spip
Documentation de SPIP : http://www.spip.net/
irc://irc.freenode.net/spip

Matt à ecrit :

Je viens de trouver le moyen de faire ca et cela marche correctement grâce

à

cette méthode avec le secteur en cours.

J'utilise du PHP pour mettre le secteur de base dans une variable puis par

la

suite le comparer avec le secteur courant.

Comme yorghos.remvikos, Alexis et Paolo je je fais parti du club de ceux qui
aimeraient bien connaitre la sollution (detaillée) de Matt pour construire
un menu arborescent qui commence à partir d'un niveau donné, c'est a dire
pas forcement un secteur ou le niveau au dessous.

en effet je souhaiterai comme Paola l'a exprimé :

" le placer sur une page d’article et faire que le "sommet" du menu se
trouve, non pas à la racine, mais au troisième niveau :

racine = langues (fr/en/es ... etc.)

2ème niv. = "grandes" rubriques

3ème niv. = sous-rubriques <-- "sommet" du menu"

On compte sur toi Matt !

Merci d'avance !

// récupération du secteur principal :
<BOUCLE_secteurprincipal(RUBRIQUES) {id_rubrique}>
  $secteurprincipal = #ID_SECTEUR;
</BOUCLE_secteurprincipal>

// 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} {doublons} {par titre}>
  <?php $id = #ID_RUBRIQUE; ?>
  <BOUCLE_nb_rubriques(RUBRIQUES){id_parent}>
     <?php ${'nb'.$id} = #TOTAL_BOUCLE; ?>
  </BOUCLE_nb_rubriques>
  
  <div class="menu-titre"
  <?php if (#ID_SECTEUR == $secteurprincipal) {
    echo (#ID_RUBRIQUE == $actuelle ? 'id="courant"' :
       (in_array(#ID_RUBRIQUE, $hierarchie) ?
          'id="courant"' : '')); }
   ?> >
  
    <?php if (#ID_SECTEUR == $secteurprincipal) { echo'<a
href="#URL_RUBRIQUE">#TITRE</a>'; } ?>

   </div>
  
    <!-- Afficher les articles de cette rubrique -->
  
   <?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>
   ;} {}
   ?>

      <!-- -------------- Niveau 2 ---------------- -->
     
<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 if (#ID_SECTEUR == $secteurprincipal) { echo (#ID_RUBRIQUE ==
$actuelle ? 'id="courant"' :
        (in_array(#ID_RUBRIQUE, $hierarchie) ? 'id="courant"' :
        ' ')); }?> >
      
  <?php if (#ID_SECTEUR == $secteurprincipal)
   { echo'- <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>
   ;} {}
   ?>
   
   <!-- ---------------- Niveau suivants -------------- -->
   
  <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>

Comme tu peux le voir dans ce code personnellement j'affiche à partir des
rubriques de niveau 1 mais en affichant l'arborscence seulement
de la rubrique sélectionnée, disons que si j'ai mes rubriques principales ( I-
II-III) et dans chacune mes sous-rubriques (1-2-3) et
que je choisis la I.2 et bien j'aurais en affichage :
- I
- I.1 -I.2 avec la I.2 en gras et ouverte avec
affichage des articles dedans

Si jamais tu veux seulement afficher les rubriques à partir
du niveau 3 il faut que tu enlèves la boucle récursive que
tu vois à la fin et que tu refasses les mêmes boucles que j'ai
fais pour les deux premiers niveaux, et ensuite que tu
n'affiches pas les 2 premiers nveaux par exemple en mettant
juste ça en commentaire :

<div class="menu-titre"
  <?php if (#ID_SECTEUR == $secteurprincipal) {
    echo (#ID_RUBRIQUE == $actuelle ? 'id="courant"' :
       (in_array(#ID_RUBRIQUE, $hierarchie) ?
          'id="courant"' : '')); }
   ?> >
  
    <?php if (#ID_SECTEUR == $secteurprincipal) { echo'<a
href="#URL_RUBRIQUE">#TITRE</a>'; } ?>

   </div>

Il faut savoir que j'ai encore un problème, le menu affiche des
cases vides , c'est à dire qu'il execute le div "menu-titre" mais
gràce au if n'y met pas les rubriques que je ne veux pas

Louis wrote:
en effet je souhaiterai :
" le placer sur une page d'article et faire que le "sommet" du menu se
trouve, non pas à la racine, mais au troisième niveau :

racine = langues (fr/en/es ... etc.)
2ème niv. = "grandes" rubriques
3ème niv. = sous-rubriques <-- "sommet" du menu"

- - - -
Louis,

J'ai résolu cela à ma façon pour les pages de mon site (teste)
http://www.taize.ch/spip/en_article66.html

Le code pour le menu est dans: http://www.taize.ch/spip/menu1.html - utilise
JavaScript. Si un navigateur n'a pas de JavaScript, le menu est encore
utilisable mais demeure toujours déplié.

Testé avec: Konqueror et Mozilla 1.3 sur Linux; IE6, Firefox 0.8, Opera 7,
Netscape 6.2 sur Windows; Safari 1.2.1 sur MacOS X.
Avec Opera 6 le menu est encore utilisable mais demeure toujours déplié.

Je n'ai pas encore démêlé le CSS...

Je pense essayer de l'améliorer encore un peu. Et si quelqu'un a des
idées...

Paolo