[spip-dev] Menu arborescent dynamique

Bonjour,

voici comme promis une version simplifiée et nettoyée du menu arborescent
dynamique que nous (Clever Age) avons réalisé pour le site EDF.

Il suffit de dézipper à la racine du SPIP en s'assurant qu'il n'y a pas déjà
un fichier "menu.html" et/ou un fichier "menu.php3", puis d'ajouter par
exemple dans le "rubrique.html", à l'endroit où vous voulez voir le menu :

<INCLURE(menu.php3){id_rubrique}>

Toutes remarques bienvenues, cela fera sans doute l'objet d'une contrib quand
j'en aurais le temps.

-Nicolas

menu.zip (2.03 KB)

Merci pour cette contrib.
ça marche très bien quand les .GIFs sont mis dans un dossier img_pack sous la racine - chez toi aussi ?
JL

Nicolas Hoizey wrote:

ça marche très bien quand les .GIFs sont mis dans un dossier
img_pack sous la racine - chez toi aussi ?

Oui, c'est pour ça que je les ai mises dans le zip ...

-Nicolas

Hello,

Il suffit de dézipper à la racine du SPIP en s'assurant qu'il n'y a pas

déjà

un fichier "menu.html" et/ou un fichier "menu.php3", puis d'ajouter par
exemple dans le "rubrique.html", à l'endroit où vous voulez voir le menu :

<INCLURE(menu.php3){id_rubrique}>

J'ai un petit soucis :
Dans mon sommaire, je ne suis pas dans une rubrique, ni meme dans une boucle
d'ailleurs, et donc je ne peut l'appeler comme suit. Si je mets juste
<INCLURE(menu.php3)> ca plante.
Quelqu'un a une idée ?

Merci,
Etienne

J'ai un problème :
Warning: in_array() [function.in-array]: Wrong datatype for second argument
in xxxxxx/CACHE/epone-menu.ac3a25 on line 56

Une idée?

Gaet.

"Nicolas Hoizey" <nhoizey@php.net> a écrit dans le message de news:
1049374983.3e8c3107817c0@imp.free.fr...

Bonjour,

voici comme promis une version simplifiée et nettoyée du menu arborescent
dynamique que nous (Clever Age) avons réalisé pour le site EDF.

Il suffit de dézipper à la racine du SPIP en s'assurant qu'il n'y a pas

déjà

un fichier "menu.html" et/ou un fichier "menu.php3", puis d'ajouter par
exemple dans le "rubrique.html", à l'endroit où vous voulez voir le menu :

<INCLURE(menu.php3){id_rubrique}>

Toutes remarques bienvenues, cela fera sans doute l'objet d'une contrib

quand

après exploration dans le cache,
l'erreur est générée lors de l'execution de la fonction in_array(1,
$hierarchie)....

après recherche je n'ai pas trouvé ou était définie cette variable
($hierarchie) ?

C'est bo, chapo!
Mais j'ai un souci pour colorer les rubriques et le secteur courant
J'ai essayé avec différentes possibilités de placement de
.secteuron, .rubriqueon { font-weight: bold; color: #ffffff; }
sans succès, j'ai bien le bold, mais pas de couleur :-))

Salut Tinou,

J'ai un petit soucis :
Dans mon sommaire, je ne suis pas dans une rubrique, ni meme dans
une boucle d'ailleurs, et donc je ne peut l'appeler comme suit.
Si je mets juste
<INCLURE(menu.php3)> ca plante.
Quelqu'un a une idée ?

As-tu essayé avec ce qui suit ?

<INCLURE(menu.php3){id_rubrique=0}>

Je ne garanti pas que ça marche ...

-Nicolas

Toutes remarques bienvenues, cela fera sans doute l'objet d'une
contrib quand j'en aurais le temps.

Voilà, il ne reste plus quà commenter avant validation :
http://www.uzine.net/spip_contrib/ecrire/articles.php3?id_article=103

-Nicolas

Pour moi cette doc est extrêment claire <:-))

Voilà, il ne reste plus quà commenter avant validation :
http://www.uzine.net/spip_contrib/ecrire/articles.php3?id_article=103

Petite modif a faire dans le code pour eviter des plantages quand on a pas
de numero de rubrique a passer (genre dans le sommaire !).

<?php
$hierarchie = array();
?>
<B_principale>
<BOUCLE_principale(RUBRIQUES){id_rubrique}>
<?php
// récupération de la hiérarchie courante
<BOUCLE_hierarchie(HIERARCHIE){id_rubrique}>
$hierarchie[] = #ID_RUBRIQUE;
</BOUCLE_hierarchie>
$hierarchie[] = #ID_RUBRIQUE;
?>
</BOUCLE_principale>
</B_principale>

au lieu de :

<BOUCLE_principale(RUBRIQUES){id_rubrique}>
<?php
$hierarchie = array();
// récupération de la hiérarchie courante
<BOUCLE_hierarchie(HIERARCHIE){id_rubrique}>
$hierarchie[] = #ID_RUBRIQUE;
</BOUCLE_hierarchie>
$hierarchie[] = #ID_RUBRIQUE;
?>
</BOUCLE_principale>

@+
Tinou

Hello Tinou,

Petite modif a faire dans le code pour eviter des plantages quand on
a pas de numero de rubrique a passer (genre dans le sommaire !).

<?php
$hierarchie = array();
?>
<B_principale>
<BOUCLE_principale(RUBRIQUES){id_rubrique}>
<?php
// récupération de la hiérarchie courante
<BOUCLE_hierarchie(HIERARCHIE){id_rubrique}>
$hierarchie[] = #ID_RUBRIQUE;
</BOUCLE_hierarchie>
$hierarchie[] = #ID_RUBRIQUE;
?>
</BOUCLE_principale>
</B_principale>

Je vois bien l'utilité de sortir de la boucle l'initialisation du
tableau, mais pourquoi mettre <B_principale> et </B_principale> ?

Et que donne <BOUCLE_principale(RUBRIQUES){id_rubrique}> quand
id_rubrique n'a pas de valeur ???

-Nicolas

Je vois bien l'utilité de sortir de la boucle l'initialisation du
tableau, mais pourquoi mettre <B_principale> et </B_principale> ?

Arf, ca c'est l'epurage a partir de mon site !
Ca n'aurait pas du rester :slight_smile:

Et que donne <BOUCLE_principale(RUBRIQUES){id_rubrique}> quand
id_rubrique n'a pas de valeur ???

Là je peux plus tester avant 10jours car c'est les vacances :wink:

@+
Tinou

Nicolas Hoizey a écrit:

Toutes remarques bienvenues, cela fera sans doute l'objet d'une
contrib quand j'en aurais le temps.

Voilà, il ne reste plus quà commenter avant validation :
http://www.uzine.net/spip_contrib/ecrire/articles.php3?id_article=103

MERCI NICOLAS ! un certain JLuc (te connaissant) me l'a fourinit avant l'heure ... squelettes en cours d'élaboration :
http://spip-edu.edres74.net/models/eva-pingoo/rubrique.php3?id_rubrique=33

ça rend la navigation beaucoup plus simple et rapide !!!
car il y a une "grande" critique des sites sous SPIP "ils sont naviguable difficiellement, fouillis, on ne s'y retrouve pas !"

même sur mon SPIP-Edu j'arrive à me perdre moi-même, alors je crois qu'il est temps que je mette ce menu ! :wink:
mon arborescence étant assez profonde ... ça rendra la navigation plus facile !

alors encore MERCI NICOLAS !!!

MERCI NICOLAS !

De rien ! :wink:

il y a une "grande" critique des sites sous SPIP "ils sont
naviguable difficiellement, fouillis, on ne s'y retrouve pas !"

Euh ... en quoi c'est spécifique à SPIP, ça ?

Ce sont les concepteurs qui merdent, pas les outils, en tout cas pas
SPIP avec sa liberté totale de conception de squelettes ...

-Nicolas

Effectivement.
La navigation se fait à partir
- d'une base de donnée, dans laquelle le classement doit être logique, même avec peu d'articles
- de squelettes qui permettent de naviguer, de nombreuses manières dans cette base.

C'est dans la tête du concepteur-rice que le fouillis existe, pas dans la technique qui, justement, permet de défouilliser le tout.

Des tas d'outils sont de plus en plus utiles pour ça.
Comme l'agenda de Nicolas (dont un exemple d'application est ici [http://lipietz.net/rubrique.php3?id_rubrique=40]) et le menu arborescent de Nicolas y participent, tout comme le listage "à la windows" adapté de Pierre, en cours de développement, mais dont on peut voir un exemple d'application ici [http://perline.org/plan.php3].

Cela ne remplacera jamais la clarification de la base et dans la gestion des squelettes !