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