THELIA Forum

Welcome to the THELIA support and discusssion forum

Announcement

Rejoignez la communauté sur le Discord Thelia : https://discord.gg/YgwpYEE3y3

Offline


bonjour, je suis à la recherche d'un tuto bien fait por faire un beau menu déroulant sur thélia ! avez vous une ID ?

Merci

Offline


Bon ! par rapport à l'arborescence thélia ; j'ai donc testé pas mal de chose ! j'ai au final fait ça : http://xavier-perrouin.fr/catalogue/index.php

le code ( dans menu.html ):

<div id="menuGeneral">
<dl id="menu">
          <THELIA_MENU_RUBRIQUES type="RUBRIQUE" parent="0" profondeur="1" classement="manuel">
                <dt onmouseover="javascript:montre('smenu#ID');">
                <a href="#URL">#TITRE</a>
                </dt>
                <dd class="ssmenu" id="smenu#ID">
                    <ul>
                    <THELIA_BLOC_SOUS_MENU type="RUBRIQUE" parent="#ID">
                    <THELIA_SOUS_MENU_RUBRIQUE type="RUBRIQUE" id="#ID" courante="0">
                        <li>
                        <a href="#URL">#TITRE</a>
                        </li>
                    </THELIA_SOUS_MENU_RUBRIQUE>   
                     
                    <THELIA_SOUS_MENU_RUBRIQUE_SELECTION type="RUBRIQUE" id="#ID" courante="1">
                        <li>
                        <a href="#URL" class="selected" >#TITRE</a>
                        </li>
                    </THELIA_SOUS_MENU_RUBRIQUE_SELECTION>
                    </THELIA_BLOC_SOUS_MENU>
                    </ul>
                </dd>
         </THELIA_MENU_RUBRIQUES>

</dl>
</div>

et juste : <script type="text/javascript">
<!--
window.onload=montre;
function montre(id) {
var d = document.getElementById(id);
    for (var i = 1; i<=30; i++) {
        if (document.getElementById('smenu'+i)) {document.getElementById('smenu'+i).style.display='none';}
    }
if (d) {d.style.display='block';}
}
//-->
</script>

a mettre dans rubrique et index_page.html !

Au moins ca fonctionne vous avez un menu en accordéon pas très fluide , mais les rubriques fonctionnent et ça reste administrable !!!

Si quelqu'un à une idée pour intégrer aux menus Thélia des plug in pour un menu plus  fluide genre "jquery-accordion" ... n'hésitez je suis preneur et à mon avis je suis pas le seul !!!

Aurélien

  • manu
  • faï tot petar miladiu

Offline


tu trouveras ca : http://contrib.thelia.fr/spip.php?article31

Ca ressemble un peu à ce que tu as fait.

Concernant jquery accordion, c'est tout à fait possible et pas dur à réaliser, il me semble qu'il y a des sujets qui traitent ce problème soit ici soit dans le wiki, je sais plus trop.


http://doc.thelia.net/
http://thelia.net/modules
http://raynaud.io
PGP public Key : 0xC6E546A6

Offline


Effectivement ! Il y un post qui en parle , mais sans parler de l'intégration !

Je suis dans mais début ( que ca soit dans thélia ou dans le php ) donc un peu pommé , je t'avouerai !
C'est pour ça si quelqu'un à déja intégré un jquery-accordion à un menu thélia , je suis preneur !!!!

Offline


Salut,

Tu m'as envoyé un message privé, mais si ça peut en intéresser d'autres, je préfère répondre ici.

Dans mon cas, le menu a exactement cette définition dans mon template :

<ul id="commode">

    <!-- Catalogue -->
    <THELIA_MENU_RUBRIQUES type="RUBRIQUE" parent="0" profondeur="1" classement="manuel">
        <li><a href="#URL" class="head">#TITRE</a>
            <T_sousmenu>
            <ul>
                <THELIA_BLOC_SOUS_MENU type="RUBRIQUE" parent="#ID">
               
                <THELIA_SOUS_MENU_RUBRIQUE type="RUBRIQUE" id="#ID" courante="0">
                    <li><a href="#URL">#TITRE</a></li>
                </THELIA_SOUS_MENU_RUBRIQUE>
           
                <THELIA_SOUS_MENU_RUBRIQUE_SELECTION type="RUBRIQUE" id="#ID" courante="1">
                    <li><a href="#URL" class="actif">#TITRE</a></li>
                </THELIA_SOUS_MENU_RUBRIQUE_SELECTION>
               
                </THELIA_BLOC_SOUS_MENU>
            </ul>
            </T_sousmenu>
            <//T_sousmenu>
        </li>           

    </THELIA_MENU_RUBRIQUES>

</ul>


La feuille de style associée au menu contient :

/* Menu */
#menu {
    position: absolute;
    left: 8px;
    top: 197px;
    width: 160px;
    background: url(../images/catalogue.gif) 0 0 no-repeat;
    padding: 16px 0 0 22px;
    font-size: .84em;
    z-index: 20;
}
#menu ul li {
    font-size: 1.24em;
    font-weight: bold;
    font-family: Trebuchet, sans-serif;
    padding: .5em 0;
}
#menu ul li li {
    font-size: .85em;
    font-family: Verdana, Arial, Helvetica, sans-serif;
    padding: 0 0 0 2em;
    background-color: #4896f3;
}
#menu ul li a { color: #000; }
#menu ul li a:hover, #menu ul li a.active {
    color: #4896f3;
    font-style: italic;
}
#menu ul li li a { color: #fff; }
#menu ul li li:hover {
    color: #eee;
    font-style: italic;
    background-color: #222;
}
#menu br { height: 0; }


Et bien sûr, il faut intégrer JQuery et JQuery UI dans la page :

    <!--    JQuery/Ajax stuff -->
    <script type="text/javascript" src="js/jquery.js"></script>
    <script type="text/javascript" src="js/jquery.ui.js"></script>

Puis initialiser le menu dans un bout de javascript ad-hoc :

$(document).ready(function(){
// $(function() {

  // Menu accordéon
  $("#commode").accordion({
     active: '.actif',
     autoheight: true,
     event: 'mouseover',
     header: '.head',
     navigation: true,
     selectedClass: '.actif'
  });
   
});


Le résultat est visible sur http://www.pascalgalodeediteurs.com/ (à gauche).

Last edited by sholby (30-09-2008 09:35:10)


sholby@free.fr • http://www.sholby.net/
  Dernière publication en librairie :
  "Extrait des archives du district" de Kenneth Bernard (roman, traduction)

Offline


Merci beaucoup Mr SHOLBY !

Tout fonctionne ! http://xavier-perrouin.fr/catalogue/index.php

Aurélien

Last edited by braincut (01-10-2008 08:48:14)

Offline


C'est exactement le style de menu que je cherche a réaliser.
Merci d'avoir partager le code.

Je ne comprend par contre pas du tout la partie javascript.

Puis initialiser le menu dans un bout de javascript ad-hoc :

$(document).ready(function(){
// $(function() {

  // Menu accordéon
  $("#commode").accordion({
     active: '.actif',
     autoheight: true,
     event: 'mouseover',
     header: '.head',
     navigation: true,
     selectedClass: '.actif'
  });
   
});

Il ne faut que ce code là!?

Quelqu'un pourrait me donner quelque informations complémentaire au niveau du javascript necessaire.

Merci d'avance.

Offline


Salut,

Vu le code il s'agit d'intégrer un plugin jquery de type "accordion" ce que Thélia permet très facilement, car ouvert à toutes les techno web  : il te faudra simplement :

- Télécharger la librairy jquery , un fichier de quelques dizaines de ko

- Télécharger le plugin accordion ou comme sur l'exemple le plugin jqueryUI (permettant plusieurs effets => plus lourd ; de nombreux plugin sont disponibles sur le site jquery : la plupart ont des pages démo : fais ton choix !)

- A la racine de ton site tu créés un dossier "javascript" par exemple où tu places tes 2 fichiers téléchargés et tous les plugins qui suivront car si tu comprends le principe tu peux ajouter à ton site une belle myriade de fonctionnalités sympas)

- Dans les headers de tes pages tu appelles les fichiers du dossier "javascript" avec des lignes de ce type :
    <script type="text/javascript" src="javascript/jquery.js"></script>
    <script type="text/javascript" src="javascript/jquery.ui.js"></script>

- Il te reste quelques éléments de configuration à coder (exemple de Sholby pour son cas ; ou en te renseignant sur les pages des plugins tu réussiras vite à les adapter à tes besoins)

@+

Jb

Offline


Merci pour la réponse.
J'ai réussi a faire fonctionner mon menu.
Je donne le code sa peut servir a quelques uns.

-j'ai mis le menu dans les <ul><li>:

<div id="menuGeneral">
		
			
		
	<ul class="navigation">
    <THELIA_MENU_RUBRIQUES type="RUBRIQUE" parent="0" classement="manuel">
	
		<li class="toggleSubMenu"><a href="#URL"><span>#TITRE</span></a>
			<ul class="subMenu">
			<THELIA_BLOC_SOUS_MENU type="RUBRIQUE" parent="#ID">
				<li><a href="#URL" #FILTRE_egalite(#RUBRIQUE_ID||#ID||class="selected")>#TITRE</a></li>

			</THELIA_BLOC_SOUS_MENU>
			</ul>
		</li>
		</THELIA_MENU_RUBRIQUES>
		<THELIA_MENU_CONTENU type="CONTENU" parent="0" classement="manuel">
		<li class="toggleSubMenu"><a href="#URL"><span>#TITRE</span></a>
	</THELIA_MENU_CONTENU>
		</li>
    

</ul> 
			
			</div>

-le javascript utiliser:

<!--
$(document).ready( function () {
    // On cache les sous-menus :
    $(".navigation ul.subMenu").hide();
    // On sélectionne tous les items de liste portant la classe "toggleSubMenu"

   

    // On modifie l'évènement "click" sur les liens dans les items de liste
    // qui portent la classe "toggleSubMenu" :
    $(".navigation li.toggleSubMenu > a").hover( function () {
        // Si le sous-menu était déjà ouvert, on le referme :
        if ($(this).next("ul.subMenu:visible").length != 0) {
            $(this).next("ul.subMenu").slideUp("normal");
        }
        // Si le sous-menu est caché, on ferme les autres et on l'affiche :
        else {
            $(".navigation ul.subMenu").slideUp("normal");
            $(this).next("ul.subMenu").slideDown("normal");
        }
        // On empêche le navigateur de suivre le lien :
        return false;
    });    


} ) ;
// -->
</script>

à partir de la librairie jQuery.

Amicalement.

Last edited by zack (28-01-2009 09:26:28)

Offline


merci a vous 3 pour ces infos ... jquery ça déchire !

les ressources sont énormes ... vais ajouter des effets bling bling ^^

Offline


Bonsoir,

Je ne comprends pas mais sa marche pas chez moi j'ai du oublier un truc !


zack, il ne manque pas un fichier css ? peux tu décrire un peu plus la procedure. quoi et ou?

merci bcp.

Offline


J'avoue que je cale aussi pourtant Zack a semble t-il réussit ce que beaucoup de personne cherchent à réaliser pour un menu déroulant.

J'ai copier/coller le code donné par Zack mais je souhaiterai savoir où l'on doit appeler le Javascript (Zack parle de "à partir de la librairie jQuery" il faudrait donc modifier le javascript présent dans ce fichier ?).

Si Zack, PinPin, braincut ou toute autre personne ayant réussi l'exploit du menu accordéon pouvait préparer un petit lien vers un dossier, contenant les fichiers nécessaires (les jquery + les fichiers CSS ainsi que la page menu.html) et expliquer même sommairement l'utilisation ce serait un grand plus pour la communauté.

D'avance merci à vous

Offline


Bonjour

Je crois qu'en faisant une recherche , j'avais expliqué à un intervenant comment faire un menu déroulant comme celui que j'utilise en test : http://www.pashmina-le-site.com/marie
Seuls les trois premières rubriques ont des sous-rubriques ...
A+


Site en construction http://boutique.boucheriediscount.fr

Offline


Bonjour Dreamer, dans ton site le menu se referme automatiquement lorsque l'on clique sur une rubrique, pas pratique à mon sens... moi je souhaite qu'il reste ouvert et si possible mettre en évidence la rubrique cliquée dans le sous menu (avec une couleur différente).

Offline


Hello

Même besoin sur mon site en test : www.lgbatiment.com/commerce : je voudrais que les sous-rubriques restent ouvertes selon la rubrique dans laquelle on navigue.
Le menu se referme à chaque fois. J'ai utilisé la class : "open_at_load" aussi.

Je pense qu'il faut passer la variable ID de la rubrique dans l'url et la récupérer par un GET ou un POST et afficher les sous-menu correspondant mais quel est le code pour faire cela ?

Merci à tous

Offline


Bonjour je poste mon msg ici, car il n'y a pas de salon consacré à ce sujet.
J'ai 8 rubriques principales dans mon menu et je souhaiterais que le menu soit plus coloré car c'est une boutique de jouets, je voudrais donc que chaque rubrique individuellement est sa propre couleur, ou seulement changer la couleur des caractères des rubriques.
Une couleur par rubrique.

Je sais que l'on peut passer par le biais des classes, mais étant donné que c'est UNE boucle qui permet d'afficher toutes les rubriques, je ne voit pas comment cela peut se faire.

Merci

Offline


Bonjour,

Une réponse dans ce post d'auhjourd'hui : http://forum.thelia.fr/viewtopic.php?pid=29167#p29167

Alfouine,


Au royaume des aveugles, les borgnes sont mal vus.

Offline


Bonjour,

Je le met ou exactement ce petit bout de code :
------------------------------------------------------
Puis initialiser le menu dans un bout de javascript ad-hoc :

$(document).ready(function(){
// $(function() {

  // Menu accordéon
  $("#commode").accordion({
     active: '.actif',
     autoheight: true,
     event: 'mouseover',
     header: '.head',
     navigation: true,
     selectedClass: '.actif'
  });
   
});

Merci d'avance

Offline


Et avec sa boucle j'ai le message boucle soumenu n'est pas fermé ?

<THELIA_MENU_RUBRIQUES type="RUBRIQUE" parent="0" profondeur="1" classement="manuel">
        <li><a href="#URL" class="head">#TITRE</a>
            <T_sousmenu>
            <ul>
                <THELIA_BLOC_SOUS_MENU type="RUBRIQUE" parent="#ID">
               
                <THELIA_SOUS_MENU_RUBRIQUE type="RUBRIQUE" id="#ID" courante="0">
                    <li><a href="#URL">#TITRE</a></li>
                </THELIA_SOUS_MENU_RUBRIQUE>
           
                <THELIA_SOUS_MENU_RUBRIQUE_SELECTION type="RUBRIQUE" id="#ID" courante="1">
                    <li><a href="#URL" class="actif">#TITRE</a></li>
                </THELIA_SOUS_MENU_RUBRIQUE_SELECTION>
               
                </THELIA_BLOC_SOUS_MENU>
            </ul>
            </T_sousmenu>
            <//T_sousmenu>
        </li>           

    </THELIA_MENU_RUBRIQUES>

Offline


C'est normal, la syntaxe de la boucle conditionnelle n'est pas respectée. Voir : http://wiki.thelia.fr/index.php/Les_bou … tionnelles

Alfouine,


Au royaume des aveugles, les borgnes sont mal vus.