menu déroulant + SPIP orienté objet

Bonjour,

J’ai un peu adapté le code du menu proposé ici http://www.alsacreations.com/articles/deroulant/

pour utiliser une classe Rubrique.class qui est la suivante:

<?php class Rubrique { var $class, $numero, $libelle; function Rubrique($class, $numero, $libelle){ $this->class = $class; $this->numero = $numero; $this->libelle = $libelle; echo "
  • class\" onmouseover=\"montre('$this->numero');\" onmouseout=\"cache('$this->numero');\">"; echo "$this->libelle
      numero\" onmouseover=\"montre('$this->numero');\" onmouseout=\"cache('$this- >numero');\">"; } function sousRubrique($lien, $titre){ echo "
      "; echo " $titre
      "; } function fin(){ echo '
  • '; } } ?>

    L’utilisation de cette classe en php pur rend alors la création du menu très simple:

    //création de la rubrique avec classe CSS menu, identifiéé par rubrique1, et intitulée Le produit
    $rubrique1 = new Rubrique(« menu », « rubrique1 », « Le produit »);
    //création de toutes les ss-rubriques apparaissant en rollover
    //première ssrubrique intitulé Source et pointant vers source.html
    $rubrique1->sousRubrique(« source.html »,« Source »);
    $rubrique1->sousRubrique(« concept.html »,« Concept »);
    $rubrique1->sousRubrique(« fonctionnement.html »,« Fonctionnement »);
    $rubrique1->sousRubrique(« avantages.html »,« Avantages »);
    $rubrique1->fin();

    // creation rubrique2
    $rubrique2 = new Rubrique(« menu_x », « smenu2 », « La société »);
    $rubrique2->sousRubrique(« activités.html »,« Activités »);
    $rubrique2->fin();

    Mon problème: adapter cela à SPIP, avec quelque chose du genre:

    <BOUCLE_rubriques(RUBRIQUES) {racine} {par date}>
    $rubrique_n = new Rubrique(« menu », $n, #TITRE);
    <BOUCLE_articles(ARTICLES) {id_rubrique} {par date} {inverse}>
    $rubrique_n->sousRubrique(#URL_ARTICLE, #TITRE);
    </BOUCLE_articles>
    </BOUCLE_rubriques>

    2 questions qui se posent:
    comment insérer ce code php dans les boucles SPIP?
    comment faire incrémenter les variables $ rubrique_n et $n de façon à ce que j’obtienne:
    premier passage:
    $rubrique_1 = new Rubrique(« menu », 1, #TITRE);
    second passage
    $rubrique_2 = new Rubrique(« menu », $2, #TITRE);

    Merci bien d’avance pour vos pistes, conseils, etc.
    Cdt,
    Cyril.
    etc.

    J’ai fini par trouver;-)
    Voici le code pour afficher les titres d’articles contenus dans toutes les rubriques racines dans un menu dynamique (très facilement adaptable à d’autres besoins, affcihage des autres sous-rubriques plutôt que des articles, etc. il suffit de modifier les boucles SPIP).

    <? include("Rubrique.class");?>

      <BOUCLE_rubriques11(RUBRIQUES) {racine} {par date}>

      <? $rubrique = new Rubrique("menu_x", "#ID_RUBRIQUE", "#TITRE");?>

      <BOUCLE_articles12(ARTICLES) {id_rubrique} {par date} {inverse}>

      <? $rubrique->sousMenu('#URL_ARTICLE', '#TITRE');?>

      </BOUCLE_articles12>
      </BOUCLE_rubriques11>

    Cdt,
    Cyril.

    ----- Original Message -----
    From: cyril vidal
    To: spip@rezo.net
    Sent: Tuesday, October 28, 2003 10:48 AM
    Subject: [Spip] menu déroulant + SPIP orienté objet

    Bonjour,

    J’ai un peu adapté le code du menu proposé ici http://www.alsacreations.com/articles/deroulant/

    pour utiliser une classe Rubrique.class qui est la suivante:

    <?php class Rubrique { var $class, $numero, $libelle; function Rubrique($class, $numero, $libelle){ $this->class = $class; $this->numero = $numero; $this->libelle = $libelle; echo "
  • class\" onmouseover=\"montre('$this->numero');\" onmouseout=\"cache('$this->numero');\">"; echo "$this->libelle
      numero\" onmouseover=\"montre('$this->numero');\" onmouseout=\"cache('$this- >numero');\">"; } function sousRubrique($lien, $titre){ echo "
      "; echo " $titre
      "; } function fin(){ echo '
  • '; } } ?>

    L’utilisation de cette classe en php pur rend alors la création du menu très simple:

    //création de la rubrique avec classe CSS menu, identifiéé par rubrique1, et intitulée Le produit
    $rubrique1 = new Rubrique(« menu », « rubrique1 », « Le produit »);
    //création de toutes les ss-rubriques apparaissant en rollover
    //première ssrubrique intitulé Source et pointant vers source.html
    $rubrique1->sousRubrique(« source.html »,« Source »);
    $rubrique1->sousRubrique(« concept.html »,« Concept »);
    $rubrique1->sousRubrique(« fonctionnement.html »,« Fonctionnement »);
    $rubrique1->sousRubrique(« avantages.html »,« Avantages »);
    $rubrique1->fin();

    // creation rubrique2
    $rubrique2 = new Rubrique(« menu_x », « smenu2 », « La société »);
    $rubrique2->sousRubrique(« activités.html »,« Activités »);
    $rubrique2->fin();

    Mon problème: adapter cela à SPIP, avec quelque chose du genre:

    <BOUCLE_rubriques(RUBRIQUES) {racine} {par date}>
    $rubrique_n = new Rubrique(« menu », $n, #TITRE);
    <BOUCLE_articles(ARTICLES) {id_rubrique} {par date} {inverse}>
    $rubrique_n->sousRubrique(#URL_ARTICLE, #TITRE);
    </BOUCLE_articles>
    </BOUCLE_rubriques>

    2 questions qui se posent:
    comment insérer ce code php dans les boucles SPIP?
    comment faire incrémenter les variables $ rubrique_n et $n de façon à ce que j’obtienne:
    premier passage:
    $rubrique_1 = new Rubrique(« menu », 1, #TITRE);
    second passage
    $rubrique_2 = new Rubrique(« menu », $2, #TITRE);

    Merci bien d’avance pour vos pistes, conseils, etc.
    Cdt,
    Cyril.
    etc.



    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/

    Merci Cyril! C’est un script intéressant. Je vais probablement l’utiliser
    lorsque j’aurai à faire un menu horizontal.

    Petite erreur dans le code des boucles : il faut remplacer ‘sousMenu’ par
    ‘sousRubrique’ dans la ligne :
    <? $rubrique->sousMenu('#URL_ARTICLE', '#TITRE');?>

    Dans les scripts fournis dans ton message, il manque aussi les codes CSS et
    Javascript. Ceux qui sont intéressés, je suggère de se référer à l’article d
    ’origine pour les éléments manquants.

    Cordialement,

    Thierry Gagnon
    http://thierrygagnon.com/

    -----Message d'origine-----
    De : spip-bounces@rezo.net [mailto:spip-bounces@rezo.net]De la part de cyril
    vidal
    Envoyé : 28 octobre, 2003 06:17
    À : spip@rezo.net
    Objet : Re: [Spip] menu déroulant + SPIP orienté objet

    J'ai fini par trouver;-)
    Voici le code pour afficher les titres d'articles contenus dans toutes les
    rubriques racines dans un menu dynamique (très facilement adaptable à
    d'autres besoins, affcihage des autres sous-rubriques plutôt que des
    articles, etc. il suffit de modifier les boucles SPIP).

    <? include("Rubrique.class");?>
    <div class="menu">
    <ul>

      <BOUCLE_rubriques11(RUBRIQUES) {racine} {par date}>
           <? $rubrique = new Rubrique("menu_x", "#ID_RUBRIQUE", "#TITRE");?>
                      <BOUCLE_articles12(ARTICLES) {id_rubrique} {par date}
    {inverse}>
           <? $rubrique->sousMenu('#URL_ARTICLE', '#TITRE');?>
                  </BOUCLE_articles12>
      </BOUCLE_rubriques11>
    </ul>
    </div>

    Cdt,
    Cyril.

    ----- Original Message -----
    From: cyril vidal <mailto:cyril@planetexml.com>
    To: spip@rezo.net <mailto:spip@rezo.net>
    Sent: Tuesday, October 28, 2003 10:48 AM
    Subject: [Spip] menu déroulant + SPIP orienté objet

    Bonjour,

    J'ai un peu adapté le code du menu proposé ici

    <http://www.alsacreations.com/articles/deroulant/&gt;

    pour utiliser une classe Rubrique.class qui est la suivante:

    <?php

    class Rubrique {

    var $class, $numero, $libelle;

         function Rubrique($class, $numero, $libelle){
              $this->class = $class;
              $this->numero = $numero;
             $this->libelle = $libelle;
              echo "<li><span class=\"$this->class\"
    onmouseover=\"montre('$this->numero');\"
    onmouseout=\"cache('$this->numero');\">";
              echo "$this->libelle</span><ul id=\"$this->numero\"
    onmouseover=\"montre('$this->numero');\" onmouseout=\"cache('$this-

    numero');\">";

         }

         function sousRubrique($lien, $titre){
              echo "<div class=\"texte_ss_rubrique\"><img
    src=\"images/puce.gif\"/>";
              echo "<a href=\"$lien\"> $titre</a></div>";
         }

         function fin(){
              echo '</ul></li>';
         }
    }
    ?>

    L'utilisation de cette classe en php pur rend alors la création du menu très
    simple:

    //création de la rubrique avec classe CSS menu, identifiéé par rubrique1, et
    intitulée Le produit
    $rubrique1 = new Rubrique("menu", "rubrique1", "Le produit");
    //création de toutes les ss-rubriques apparaissant en rollover
    //première ssrubrique intitulé Source et pointant vers source.html
    $rubrique1->sousRubrique("source.html","Source");
    $rubrique1->sousRubrique("concept.html","Concept");
    $rubrique1->sousRubrique("fonctionnement.html","Fonctionnement");
    $rubrique1->sousRubrique("avantages.html","Avantages");
    $rubrique1->fin();

    // creation rubrique2
    $rubrique2 = new Rubrique("menu_x", "smenu2", "La société");
    $rubrique2->sousRubrique("activités.html","Activités");
    $rubrique2->fin();

    Mon problème: adapter cela à SPIP, avec quelque chose du genre:

    <BOUCLE_rubriques(RUBRIQUES) {racine} {par date}>
         $rubrique_n = new Rubrique("menu", $n, #TITRE);
               <BOUCLE_articles(ARTICLES) {id_rubrique} {par date} {inverse}>
                        $rubrique_n->sousRubrique(#URL_ARTICLE, #TITRE);
                </BOUCLE_articles>
    </BOUCLE_rubriques>

    2 questions qui se posent:
    comment insérer ce code php dans les boucles SPIP?
    comment faire incrémenter les variables $ rubrique_n et $n de façon à ce que
    j'obtienne:
    premier passage:
    $rubrique_1 = new Rubrique("menu", 1, #TITRE);
    second passage
    $rubrique_2 = new Rubrique("menu", $2, #TITRE);

    Merci bien d'avance pour vos pistes, conseils, etc.
    Cdt,
    Cyril.
    etc.

      _____

    _______________________________________________
    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/