SPIP - Contrib

[ar] [en] [es] [fr] [it]



Accueil du site > Navigation > Menus contextuels > Menu dépliant tout SPIP

Menu dépliant tout en spip (sans php ni javascript)

jeudi 20 octobre 2005, par skystan. Dernier ajout mardi 2 janvier 2007


Un petit menu auto-extensible entièrement SPIPIEN, sans php, java ou autre composante étrangère...

Pour faire un menu "dynamique", il fallait souvent mélanger ses boucles avec un peu de php, un zest de java et beaucoup de doigté.
Voici un menu tout simple qui utilise la balise #EXPOSER et une feuille de style.


Placez le fichier "menu.html" avec vos squelettes

Pour les curieux, voici le code :

[* ! ATTENTION pour l’instant la balise [(#EXPOSER|oui,non)] fonctionne toujours avec SPIP 1.9, mais si avec les futures versions vous avez des problèmes, il faudra la modifier avec [(#EXPOSE{oui,non})] Je vous ai préparé les archives zip avec l’une ou l’autre des balises.*]

Placez le fichier "menu.php" à la racine de votre répertoire SPIP ou dans votre répertoire dédié aux squelettes (voir la doc spip si vous ne savez pas de quoi je parle).

Ajoutez le code css dans votre feuille de style perso et adaptez le à vos exigences :

enfin, copiez le bout de code suivant à l’emplacement du menu dans vos squelettes :

- pour SPIP 1.9 :

- pour les versions avant SPIP 1.9 :

ceci intègrera automatiquement le menu dans vos page avec la coloration du menu.

JPEG - 25.4 ko
Le menu
Le menu en action

Si vous ne voulez pas bénéficier de la coloration grâce à la balise #EXPOSER, un simple

sufira !!!!

Pour ceux qui sont encore avec des fichiers .php3, il faut renomer les fichiers .php en .php3 et changer le code à intégrer pour celui-ci :

Ce menu est en fonction ici (squelette bleu)

Documents joints

  • Fichiers exposer Fichiers exposer (Zip - 22.3 ko)

    Tous les fichiers de cet article

  • balise expose balise expose (Zip - 1 ko)

    Voici les fichiers modifiés pour la balise EXPOSE


Répondre à cet article

  • Menu dépliant tout en spip (sans php ni javascript)

    21 décembre 2007 13:36, par Bernie

    L’environnement que j’ai : SPIP 1.9.2c [10268] et utilise le squelette EVA-Web 3.0 Bêta1

    J’ai placé "menu.html" dans le dossier "squelettes" de eva et "menu.php" dans "htdocs"

    Mais je ne sais pas à quel endroit placer l’autre bout de code. (dans "sommaire" ? A quelle ligne ?)

    Répondre à ce message

    Retour au début des forums

  • personnalisation du super menu "spipien"

    30 août 2007 23:39, par aire 42

    Super le menu, merci je cherchais ça depuis un bout de temps.

    Je bloque cependant sur quelques points :

    - coloriser les sous-rubriques de la même couleur que la rubrique sélectionnée
    - donner un autre style aux sous-rubriques (taille, backgroung-image...)
    - règler les propriétés des liens en survol (a:hover)

    A cette adresse, dans la colonne de gauche, le menu"tout en SPIP" est en bas( le menu supérieur est factice).

    Malgré des bidouillages sur menu.html et sur le CSS concernant le menu, je suis en panne.

    Merci d’avance pour votre aide

    Répondre à ce message

    Retour au début des forums

  • Très attiré par ce menu proposé, j’ai testé mais j’ai cette erreur ci dessous sans parvenir à la résoudre. Quelqu’un pour m’aider ? Merci bokou ;)

    # Erreur(s) dans le squelette

    * Erreur sur le site, - Fichier menu.php introuvable * Erreur sur le site, - Fichier menu.php introuvable * Erreur sur le site, - Fichier menu.php introuvable

    Répondre à ce message

    Retour au début des forums

  • Salut

    Je débute sous SPIP et je ne comprends pas le fonctionnement de tout ça. Par contre, je suis très intéressé par un tel morceau de code. Toutefois, je ne suis pas tout à fait dans la même configuration. Ce que je souhaiterais, c’est d’afficher uniquement les sous-rubriques correspondant à la rubrique cliquée, sachant qu’il n’y a pas forcément d’articles (ou autres) de publiés dans les sous-rubriques. Quelqu’un pourrait m’expliquer un peu plus comment ce menu fonctionne ? Merci beaucoup

    Répondre à ce message

    Retour au début des forums

  • Menu déroulant tout en spip (sans php ni javascript)

    8 novembre 2006 20:19, par asso.bachant

    Voila étant sous spip 1.9 ; je penser qu’en modifiant le code de cette maniere le menu aurait fonctionner.

    a tort sans doute

    Ci-joint le code pour faire apparaitre le menu

    <BOUCLE_article_menu(ARTICLES){id_article}>
            <INCLURE{fond=menu}{id_rubrique}{id_article}>
            </BOUCLE_article_menu>
                    <BOUCLE_rubrique_menu(RUBRIQUES){id_rubrique}>
                    <INCLURE{fond=menu}{id_rubrique}>
                    </BOUCLE_rubrique_menu>  
                    <INCLURE{fond=menu}>
                    <//B_rubrique_menu>
             <//B_article_menu>

    pouvez vous m’orienter afin de le faire fonctionner avec la derniere version spip.

    Voir en ligne : http://www.bachant.info

    Répondre à ce message

    Retour au début des forums

  • Menu déroulant tout en spip avec php

    5 septembre 2006 01:37, par matthieu

    Pour simplifier encore plus tout ça, ce qui serait génial serait un critére expose qui permettrais d’afficher depuis n’importequel niveau du site le même menu...

    Aprés avoir essayé cette solution je crois qu’il est plus simple d’utiliser un peu de php. En rajoutant le menu avec un <INCLURE{fond=inc-menuvertical}{id_rubrique}> (ou <INCLURE{fond=inc-menuvertical}{id_article}>). De cette maniére on peu faire un menu qui affiche les bonnes rubrique depuis n’importe quel endroit du site.

    Par exemple :

    <BOUCLE_racine(RUBRIQUES){racine}>
    <BOUCLE_menuvertical(RUBRIQUES) {id_parent} >

    <?php $on = '[(#EXPOSE|texte_script)]';
    if ($on){?>

    <div class="bottom_menu">

    <h4 class="top_menu">[(#TITRE|supprimer_numero)]</h4>
    <ul>
    <BOUCLE_sousmenuvertical(ARTICLES) {id_rubrique}{doublons exclus}{par num titre}><li>
    <a href="#URL_ARTICLE"  class="sub#EXPOSE">[(#TITRE|supprimer_numero)]
    </a></li></BOUCLE_sousmenuvertical(>
    </ul>

    </div>


    <?}?>

    </BOUCLE_menuvertical>
    </BOUCLE_racine>

    Répondre à ce message

    • Menu déroulant tout en spip avec php 5 septembre 2006 08:00, par skystan

      Bonjour,

      oui, toute simplification est intéressante, mais pas en insérant du php. Le but est de supprimer le maximum de php de nos squelettes, pour coder en SPIP pure.

      Y’a plus qu’a chercher à faire ça en spip.

      Cordialement

      Répondre à ce message

      • Menu déroulant tout en spip avec php 6 septembre 2006 05:24, par matthieu

        Sur le fond tout à fait d’accord avec toi, sauf que mettre plein de boucles pour faire deux lignes de php je trouve ça domage. Jusque là c’est vraiment la solution la plus simple pour un menu qui soit accessible depuis n’importequel profondeur en affichant les bonnes sous rubriques ( par exemple avec un menu horizontal et un menu vertical) en plus ça marche à tout les coups et c’est super facile de maintenance. Je me suis permit de l’écrire parce que ces deux lignes me simplifie la vie à chaque fois. Une autre solution sans php c’est cacher toutes les rubriques qu’on ne veut pas voir avec les css, mais c’est pas trés sémantique, et ça alourdie la page, ça marche à la limite pour un sous sous niveau. L’ideal serait un critére "expose" dans les boucles, mais bon étrangement il existe pas. Récupérer des variables de spip et jouer avec avec php, c’est une super technique dans certain cas !

        Répondre à ce message

    Retour au début des forums

  • Je sais pas si çà peut être utile à quelqu’un mais dans mon cas, je voulais n’afficher que certains articles (les articles étant définis manuellement par moi)

    Pour cela, j’ai rajouté un mot clés "_nonaffichee" Ensuite, sur les rubriques où je ne désirais pas afficher les articles, j’ai rajouté le mot clés

    Enfin dans le squelette , j’ai mis ceci au début

    <BOUCLE_RubAffichees(RUBRIQUES){titre_mot=_nonaffichee}>
       <BOUCLE_RubAfficheArticle(ARTICLES){id_rubrique}{doublons}></BOUCLE_RubAfficheArticle>
    </BOUCLE_RubAffichees>

    puis cela dans la boucle d’affichage des articles

    <BOUCLE_articleb(ARTICLES){id_rubrique}{par num titre}{doublons}{lang}>
        <a href="#URL_ARTICLE" [title="(#DESCRIPTIF|textebrut|entites_html)"]> [(#TITRE|supprimer_numero)]</a>
    </BOUCLE_articleb>  

    Vous pouvez facilement modifier pour n’afficher que certains articles.

    Répondre à ce message

    Retour au début des forums

  • Le menu reste "enroulé"

    21 juin 2006 12:38, par Birdy

    Bonjour,

    J’ai installé tout comme indiqué et mon problème n’est pas que tout est "déroulé", mais l’inverse, tout reste "enroulé" quelque soit la sélection. Seules les rubriques de la racine apparaissent (après la correction EXPOSE).

    Répondre à ce message

    • Le menu reste "enroulé" 21 juin 2006 13:04, par skystan

      Envoie moi tes fichiers (menu et css)

      Est-tu sur d’avoir des articles publiés ?

      Répondre à ce message

      • Le menu reste "enroulé" 22 juin 2006 00:49, par Birdy

        Problème réglé : j’ai placé le lien INCLURE(menu.php3) id_rubrique dans la page sommaire, mais j’ai laissé INCLURE(menu.php3) dans les pages rubrique et article. C’est tout le contraire qu’il fallait faire...

        Répondre à ce message

    Retour au début des forums

  • restreindre menu

    24 avril 2006 23:26, par straydogg

    Bonjour, Je voudrais restreindre le menu au secteur actif. Comment faire ?

    Merci

    Voir en ligne : archipente

    Répondre à ce message

    • restreindre menu 25 avril 2006 08:35, par skystan

      Bonjour,

      je pense qu’en remplassant le critère {racine} par {id_secteur} dans la boucle principale cela devrait fonctionner.

      Par contre, il ne sera pas utilisable sur le squelette "sommaire.html", étant donné qu’il n’y a pas de secteur identifié !! Une simple boucle RUBRIQUES pour lister les rubriques pincipales à la racine suffira de toute façon sur cette page.

      Ne connaissant pas la structure de ton site, je ne peux pas faire plus... désolé.

      Répondre à ce message

      • restreindre menu 26 avril 2006 16:27, par straydogg

        Effectivement, ça fonctionne presque en remplaçant racine par id_secteur. Il fallait juste rajouter une boucle RUBRIQUE contenant le tout.

        Par contre, j’ai toujours un problème : j’ai une redondance des articles des sous rubriques qui reviennent au niveau 1 :

        o Administratif
        o locaux
        o références
        o équipe
        + Dominique Molard
        + Jacqueline Molard
        + Christian Pupier
        + Edouard Molard
        o Dominique Molard
        o Jacqueline Molard
        o Christian Pupier
        o Edouard Molard

        Est-ce qu’il y a un moyen de supprimer ces doublons ? Voici le code actuel que j’ai mis sur le forum

        Voir en ligne : C’est là que ça pèche

        Répondre à ce message

        • restreindre menu 26 avril 2006 17:00, par skystan

          Salut,

          en fait, si l’on met comme critère "id_secteur", la boucle liste toute les rubrique du secteur... donc même les sous rubriques.

          change le critère par "id_rubrique=#ID_SECTEUR" et ça fonctionne !

          Stan

          Répondre à ce message

    Retour au début des forums

  • Menu déroulant tout en spip (sans php ni javascript)

    1er décembre 2005 07:33, par CG

    Bonjour,

    j’ai installer ton menu avec SPIP 1-8-2-e et ça marche sauf que tout est déplié dés le départ...comment éviter cela ?

    Répondre à ce message

    Retour au début des forums

  • Menu déroulant tout en spip (sans php ni javascript)

    15 décembre 2005 12:14, par abelass

    Merci beaucoup pur ce script qui me serait très utile, je viens de remplacer la balise exposer par expose et i l’affiche Erreur(s) dans le squelette

    Erreur : filtre « cache » non défini, _rubriquea

    Erreur : filtre « cache » non défini, _ss_rubriquea

    Erreur : filtre « cache » non défini, _rubriquea

    Erreur : filtre « cache » non défini, _ss_rubriquea

    Qu’est-ce qu¡il faut faire Salutations Rainer

    Répondre à ce message

    Retour au début des forums

0 | 25



Suivre la vie du site RSS 2.0 | Plan du site | Espace privé | Charte et vie SPIP-Contrib | SPIP | L'autre.net