THELIA Forum

Welcome to the THELIA support and discusssion forum

Announcement

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

Offline

#1 Menu déroulant avancé

(30-12-2009 11:05:14)


Bonjour,

Après de nombreuses lectures sur le forum je m'aperçois que les menus de Thelia sont sujets à beaucoup de discussions. Des tentatives (plus ou moins réussies) ont été mises en place mais rien qui ne me parait tenir réellement la route et terme d'ergonomie d'affichage et c'est dommage. Un bon (et beau) menu déroulant avec un clic sur les rubriques et qui laisserait apparaitre les catégories et les sous-catégories me parait indispensable pour des sites ayant de nombreuses sous-catégories.

Aujourd'hui les tentatives de menus déroulants ne permettent pas de laisser visible l'endroit on l'on à cliqué (le menu se referme automatiquement) et c'est là tout le problème d'ergonomie de ces menus.

Le menu de Thelia lui affiche nativement les rubriques et sous-rubriques de façon permanente  ce qui n'est pas forcement idéal dans certains cas par exemple lorsque l'on a beaucoup de sous-rubriques par exemple (attention je ne suis pas dans la critique négative, c'est simplement un besoin que je fais remonter à la communauté et aux développeurs smile )

Moi je souhaiterai laisser apparaitre mes sous-rubriques iniquement lorsque l'utilisateur clique sur la rubrique mère comme indiqué sur l'image ci dessous et bien entendu que le menu reste dans cette position sans se refermer lorsqu'on à selectionné la sous catégorie.

menu.png

Voilà si quelqu'un à une idée ou déjà développé quelque chose je serai bien intéressé.
Merci.

Offline

#2 Re: Menu déroulant avancé

(19-01-2010 16:45:06)


Petit up.

Bonjour,

Y es tu arrivé?


MAC OS SNOW LEOPARD

Offline

#3 Re: Menu déroulant avancé

(19-01-2010 16:56:55)


Bonsoir,

Et bien je galère... Je n'ai réussi complétement malheureusement, j'arrive à garder le menu ouvert d"une page à l'autre mais pas à garder la sous-rubrique en gras. Par ailleur, lorsque je sélectionne le produit (page produit.html) le menu lui se referme (je n'arrive pas à garder le menu ouvert plus de deux fois).

J'ai pourtant vu un site sous Thelia qui fait exactement ce que je recherche : http://shop.mellowyellow.fr/

Si son webmaster pouvait nous filer des renseignements ce serait l'idéal ...
Tiens nous informé si tu as plus d'info ...!

Offline

#4 Re: Menu déroulant avancé

(19-01-2010 17:03:34)


sur le code source :
http://shop.mellowyellow.fr/newaccordio … ordion.css

je connais ce code je l'ai déjà utilisé (oups):
http://www.residence-lapinede.com/mobil … cances.php

mais là c'est pas un site en Thélia, je l'avais codé complètement.
j'essai et te dis wink


MAC OS SNOW LEOPARD

Offline

#5 Re: Menu déroulant avancé

(19-01-2010 17:05:16)


c'est le script mootools de mémoire :
http://demos.mootools.net/Accordion

Last edited by bendebar (19-01-2010 17:06:09)


MAC OS SNOW LEOPARD

Offline

#6 Re: Menu déroulant avancé

(29-04-2010 16:52:20)


Bonjour,
je désire créer un menu vertical déroulant : http://css.developpez.com/galerie/?page … ticaux#MV1.
C'est le menu 3 que je souhaite. J'ai donc telechargé les fichiers (css, js et html), pour en faire un mix avec le code Thelia.

Voici mon code (menu.html) :

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" lang="fr">
<head>
 	 <title>Menu vertical déroulant vers la droite</title>
     <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
	 <link rel="stylesheet" href="style.css" type="text/css" />
	 <script type="text/javascript" src="functions.js"></script>
</head>
<body>
<div id="moteurEtCatalogue">
    <div id="moteurDeRecherche">
        <h3>Recherche</h3>
        <form action="#URLRECHERCHE" method="post" name="recherche" id="recherche">
            <input name="motcle" type="text" value='Recherche' onclick="this.value='';"  />
            <p><button type="submit" class="bouton"><span><span>OK</span></span></button></p>
        </form>
     </div> 
    <div id="accueil"><ul><li><a href="index.php">Accueil boutique</a></li></ul></div>
    <div id="menuCatalogue">	
        <h3>Catalogue</h3>
    <div id="menu">
	<div class="menu" id="menu1" onmouseover="affiche(this)">
   	    <THELIA_MENU_RUBRIQUES type="RUBRIQUE" parent="0" classement="manuel">
		<li><a href="#URL" #FILTRE_egalite(#RUBRIQUE_ID||#ID||class="selection")>#TITRE</a></li>
	<div class="sousmenu" id="sousmenu1" onmouseout="affiche(this)">
        <THELIA_BLOC_SOUS_MENU type="RUBRIQUE" parent="#ID">
                    <li><a href="#URL" #FILTRE_egalite(#RUBRIQUE_ID||#ID||class="selection")>#TITRE</a></li>
    <div class="sousousmenu" id="sousoumenu1" style="display:"none" onmouseout="affiche(this)">
		</div>
	</div>    
            <ul>
            <THELIA_MENU_RUBRIQUES type="RUBRIQUE" parent="0" classement="manuel">
            <li><a href="#URL" #FILTRE_egalite(#RUBRIQUE_ID||#ID||class="selection")>#TITRE</a></li>

	    <T_BLOC_SOUS_MENU>
                <ul>
                    <THELIA_BLOC_SOUS_MENU type="RUBRIQUE" parent="#ID">
                    <li><a href="#URL" #FILTRE_egalite(#RUBRIQUE_ID||#ID||class="selection")>#TITRE</a></li>
                    <THELIA_BLOC_SOUS_SOUS_MENU type="RUBRIQUE" parent="#ID">
                     <li><a href="#URL" #FILTRE_egalite(#RUBRIQUE_ID||#ID||class="selection")>#TITRE</a></li>
                     </THELIA_BLOC_SOUS_SOUS_MENU>
                    </THELIA_BLOC_SOUS_MENU>
                </ul>
	    </T_BLOC_SOUS_MENU>
	    <//T_BLOC_SOUS_MENU>	
            </li>
            </THELIA_MENU_RUBRIQUES>
        </ul>
    </div>
</div>

Mon code dans style.css :

/*  général
-------------------------------------------------------- */

#moteurEtCatalogue {
	float: left;
	width:200px;
	padding: 0;
	margin:25px 0 0 0;
}

#moteurEtCatalogue h3 {
	display:none;
}

#accueil, #menuCatalogue {
	float: left;
	padding: 0;
	margin:0 0 18px 0;
	width:100%;
}

#accueil ul, #menuCatalogue ul {
	padding: 0;
	margin:0;
	list-style:none;
	color:#FFFFFF;
}

#accueil ul li, #menuCatalogue ul li {
	font-size:14px;
	font-weight:bold;
	padding:0;
	margin:0 0 1px 0;
}

#accueil ul li a, #menuCatalogue ul li a  {
	text-decoration:none;
	color:#FFF;
	border-left:solid 3px #0068b2;
	display:block;
	background-color:#0081ca;
	padding:5px 0 5px 10px;
}

#accueil ul li a:hover, #menuCatalogue ul li a:hover {
	text-decoration:none;
	background-color:#00529a;
	color:#FFF;
	border-left:solid 3px #02407a;
}

#menuCatalogue ul li ul {
}

#menuCatalogue ul li ul li {
	font-size:12px;
	margin:1px 0 0 0;
	text-indent:8px;
}

#menuCatalogue ul li ul li a {
	border-left:solid 3px #7ca3c5;
	background-color:#8fbce3;
}


#menuCatalogue ul li a.selection {
	color:#fff;
	background-color:#00529a;
	border-left:solid 3px #02407a;
}

*{
	margin:0;
	padding:0;
}
#menu{
	margin:20px 0 0 50px;
	background:#0f0;
	color:#fff;
	float:left;
	display:inline;
}
#menu div{
	width:120px;
	text-align:center;
}
.menu{
	position:relative;
}
#menu div a:link, #menu div a:visited, #menu div a:hover{
	color:#fff;
	font-family:arial,sans-serif;
	font-size:12px;
	text-decoration:none;
	padding-top:3px;
	height:22px;
	display:block;
}
#menu div a:link, #menu div a:visited{
	background:#404040;
}
#menu div a:hover, #menu div a:active, #menu div a:focus{
	background:#ca0003;
}
.sousmenu{
	position:absolute;
	left:120px;
	top:0;
}
.sousousmenu{
                position:absolute;
	left:120px;
	top:0;
}
/* Recherche
-------------------------------------------------------- */

Et mon code dans "menu.js" :

var obj = null;

function checkHover() {
	if (obj) {
		obj.find('ul').fadeOut('fast');	
	} //if
} //checkHover

$(document).ready(function() {
	$('#contenuPanier > li').hover(function() {
		if (obj) {
			obj.find('ul').slideUp('fast');
			obj = null;
		} //if
		
		$(this).find('ul').slideDown('fast');
	}, function() {
		obj = $(this);
		setTimeout(
			"checkHover()",
			0); // si vous souhaitez retarder la disparition, c'est ici
	});

function affiche(obj){
	var id = obj.id;
	
	for(var i = 1; i <= 2; i++){
		document.getElementById('sousmenu'+i).style.display = "none";
	}
	
	if(document.getElementById('sous'+id)){
		document.getElementById('sous'+id).style.display = "block";
	}
}
});

C'est le dernier function affiche que j'ai insérer au code initial.

Et voila ce qui s'affiche :
Fatal error: Maximum execution time of 60 seconds exceeded in C:\xampp\htdocs\thelia_1.4.2.1\thelia_1.4.2.1\fonctions\parseur.php on line 215

Le soucis est que je ne comprends le language dans "parseur.php", dc je ne vois pas où est le soucis.

Voila si quelqu'un à une idée ou déjà développé quelque chose de similaire à ce que je souhaite faire, je prends.
Merci.

Last edited by elise1 (29-04-2010 17:04:46)

Offline

#7 Re: Menu déroulant avancé

(29-04-2010 17:41:59)


Bonjour,

Tu as une boucle mal fermée.

Alfouine,


Au royaume des aveugles, les borgnes sont mal vus.

Offline

#8 Re: Menu déroulant avancé

(14-05-2010 18:00:02)


Bonjour,
je sais pas si quelqu'un a déjà rencontré ce problème! J'ai fait un menu vertical, qui se déroule horizontalement. Le souci maintenant (je sais pas si c'est Thelia qui fait cela par defaut) c'est que mon bloc mozaïque, petitblocproduit, les étape de commande...tout quoi. ça ne s'affiche plus sur la droite de mon mais en bas.
J'ai essayé de mettre des div et de leur donner des propriétés "float" "position", mais rien ne fait effet.

Si quelqu'un a déjà rencontré ce pb, ou non d'ailleurs et a une idée, je prends.

Merci

Offline

#9 Re: Menu déroulant avancé

(14-05-2010 20:09:20)


Boucle(s) mal fermée(s) ou redondante(s)...

NB : ne pas mettre deux fois le même nom aux boucles même si elles font la même chose


Aide les autres, ils t'aideront en retour.