Précédent   Forum des professionnels en informatique > PHP > PHP & SGBD
PHP & SGBD Forum d'entraide sur les SGBD avec PHP. Avant de poster : FAQ BDD, toutes les FAQ PHP, cours BDD et sources BDD
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 15/05/2006, 22h50   #1
Membre éclairé
 
Avatar de guy2004
 
Inscription : juillet 2004
Messages : 781
Détails du profil
Informations forums :
Inscription : juillet 2004
Messages : 781
Points : 310
Points : 310
Par défaut [Conception] Menu déroulant dynamique et administrable

Bonjour,
Je cherche a faire un menu deroulant dynamique auto administrable.

Par exemple :
Mes menus de tete ont un code à 2 chiffres : 10 - 20 -30 ...
Mes sous menus du menu 1 seraient à 4 chiffres : 1010-1020-1030....
Mes sous menus du menu 2 seraient pareils : 2010-2020-2030....

L'admin en rentrant des nouveaux menus leur donne 2 chiffres si c'est pour un menu et 4 chiffres pour un sous menu.

Mon soucis c'est comment faire pour que mon prog sache reconaitre les menus des sous menus.
Si quelqu'un a une idée, merci
guy2004 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 15/05/2006, 23h57   #2
Membre chevronné
 
Avatar de nako
 
Ingénieur développement logiciels
Inscription : août 2003
Messages : 581
Détails du profil
Informations personnelles :
Localisation : France

Informations professionnelles :
Activité : Ingénieur développement logiciels

Informations forums :
Inscription : août 2003
Messages : 581
Points : 635
Points : 635
Citation:
Envoyé par guy2004
Mon soucis c'est comment faire pour que mon prog sache reconaitre les menus des sous menus.
Salut, je vais peut-être dire quelque chose de stupide, mais si ton "code" est plus petit que 100, alors c'est un menu, si il est compris entre 1000 et 9999 alors c'est un sous-menu.
Ca fonctionne ou pas ?

Sinon, tu n'auras que 2 niveaux de sous-menu ?
Ca fait un peu bricolage ton histoire de "code", enfin ça dépend qui va faire l'administration (ajout, modification de menu), s'il faudra y toucher régulièrement ou si ils sont fixés une fois pour toutes, etc.

Où vas-tu stocker tes "codes" ? dans un fichier ? dans une base de données ?

Bonne continuation.
a+
nako est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 16/05/2006, 10h07   #3
Membre éclairé
 
Avatar de guy2004
 
Inscription : juillet 2004
Messages : 781
Détails du profil
Informations forums :
Inscription : juillet 2004
Messages : 781
Points : 310
Points : 310
Mes menus sont à 2 chiffres :10-20....je ne sais pas combien il devra y en avoir, il devront pouvoir etre rajoutés.

Mes sous menus sont à 4 chiffres :1010-2010-3010...je ne sais pas combien il ydevra en avoir, ils devront pouvoir etre rajoutés.

Mes sous sous-menus sont à 6 chiffres :101010-201010.... et encore pareil.

Le tout dans une base mysql sous la forme :
id- primary
code : 1010 par exemple
libel : "mon sous menu"

Mon seul soucis c'est que je ne sais pas à l'avance les menu et sous menus et que cela doit pouvoir etre ajouté comme ceci par xemple :

code :101015
libel:"mon sous sous-menu 1 du sous menu1"

et j'ai une fonction qui recupere le niveau du menus ou sous menus :1-2-3...
Code :
1
2
3
4
5
6
function niveau_categorie($code) {
    $longueur = strlen($code);
    $niveau = intval($longueur / 2);
    return($niveau);
  }
}
guy2004 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 16/05/2006, 10h27   #4
Membre chevronné
 
Avatar de nako
 
Ingénieur développement logiciels
Inscription : août 2003
Messages : 581
Détails du profil
Informations personnelles :
Localisation : France

Informations professionnelles :
Activité : Ingénieur développement logiciels

Informations forums :
Inscription : août 2003
Messages : 581
Points : 635
Points : 635
Salut, en fait, je comprend pas quelle est ta question.
Tu t'es fabriqué un système que tu as l'air de bien maitriser.
Ta fonction te rend bien ce que tu veux, non ?
Que n'arrives-tu pas à faire ?
a+
nako est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 16/05/2006, 10h44   #5
Membre éclairé
 
Avatar de guy2004
 
Inscription : juillet 2004
Messages : 781
Détails du profil
Informations forums :
Inscription : juillet 2004
Messages : 781
Points : 310
Points : 310
Ce que je cherche a faire c'est ca :
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
 
<div id="nav">
<ul class="level1">
 <li class="submenu"><a href="">Menu niveau 1</a>
  <ul class="level2">
   <li><a href="">Menu niveau 2</a></li>
   <li><a href="">Menu niveau 2</a></li>
   <li><a href="">Menu niveau 2</a></li>
   <li><a href="">Menu niveau 2</a></li>
  </ul>
 </li>
 
 <li class="submenu"><a href="">Menu niveau 1</a>
  <ul class="level2">
   <li class="submenu"><a href="">Menu niveau 2</a>
    <ul class="level3">
     <li><a href="">Menu niveau 3</a></li>
     <li><a href="">Menu niveau 3</a></li>
     <li><a href="">Menu niveau 3</a></li>
     <li><a href="">Menu niveau 3</a></li>
    </ul>
   </li>
</ul>
</div>
et pour le moment je fais ca :

1. Recuperation de mes menus et sous menus :
Code :
1
2
3
4
5
6
7
8
9
10
11
12
$tb = $galerie->tableau_categories();
  while (list($code, $categorie_infos) = each($tb)) {
 
// recuperation du niveau : 1-2 ou 3
$nom_style .= $galerie->niveau_categorie($code);
 
// affichage des liens
$tb_blocs["$code_bloc"] .= '<a href="' . $url
     . '" class="' . $nom_style . '"><img src="'.$nom_logo.'">';
   $tb_blocs["$code_bloc"] .= $categorie_infos['libel'];
   $tb_blocs["$code_bloc"] .= "</a><br>\n";
  }
et là j'ai donc des liens les uns dessous les autres aevc un nom de style qui correspond a son niveau et je les indente pour marquer les differences de niveau.
Ce que j'aimerai c'est faire pareil en menu horizontal déroulant
guy2004 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 16/05/2006, 15h10   #6
Membre chevronné
 
Avatar de nako
 
Ingénieur développement logiciels
Inscription : août 2003
Messages : 581
Détails du profil
Informations personnelles :
Localisation : France

Informations professionnelles :
Activité : Ingénieur développement logiciels

Informations forums :
Inscription : août 2003
Messages : 581
Points : 635
Points : 635
Yo ! tu sais que tu nous aides pas beaucoup là !
Je sais pas les autres, mais moi, je suis pas devin.
Je ne sais pas ce qu'il y a dans ton tableau $tb et dans le tableau $categorie_infos.

L'idée, c'est faire une double boucle while (ou une fonction récursive si plus de 2 niveaux de menus) du style :

Code :
1
2
3
4
5
6
7
8
9
10
Pour chaque menu faire
    afficher les infos du menu
    afficher "<ul>";
    Pour chaque sous-menu appartenant à ce menu faire
        afficher "<li>";
        afficher les infos du sous-menu
        afficher "</li>";
    Fin pour
    afficher "</ul>";
Fin pour
Voilà en gros le principe.
nako est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 16/05/2006, 15h20   #7
Membre éclairé
 
Avatar de guy2004
 
Inscription : juillet 2004
Messages : 781
Détails du profil
Informations forums :
Inscription : juillet 2004
Messages : 781
Points : 310
Points : 310
T'as tout compris ! C'est cette fonction que je n'arrive pas a faire en fait.

$tb contient le tableau des categories et $categorie_infos ['code'] contient le code, $categorie_infos['libel'] le libellé du menus.
guy2004 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 16/05/2006, 15h32   #8
Membre chevronné
 
Avatar de nako
 
Ingénieur développement logiciels
Inscription : août 2003
Messages : 581
Détails du profil
Informations personnelles :
Localisation : France

Informations professionnelles :
Activité : Ingénieur développement logiciels

Informations forums :
Inscription : août 2003
Messages : 581
Points : 635
Points : 635
Génial ! ça veut dire que j'accède bientôt au rang de devin

Bon alors qu'est-ce qu'on a ?
- un tableau "en vrac" de tous les éléments menus et sous-menus

Qu'est-ce qu'on veut ?
- parcourir (le pour tout de l'algo) un ensemble de catégorie de même niveau.

Que manque-t-il ?
- un fonction qui donne ce fameux sous-tableau en fonction du tableau "global" et d'un niveau.

Je te donne la signature de la fonction, et je te laisse faire l'implémentation ?

Code :
1
2
3
4
5
6
7
8
/**
 * Retourne un tableau de sous catégories correspondant au niveau $niveau
 *
 * @param array $tableau_categorie le tableau "en vrac" des categories
 * @param int $niveau le niveau des catégories que l'on souhaite récupérer
 * @return array un sous-tableau de $tableau_categorie correspondant au niveau $niveau
 */
function tableau_sous_categorie($tableau_categories, $niveau);
Bon courage !
a+
nako est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 16/05/2006, 15h37   #9
Membre éclairé
 
Avatar de guy2004
 
Inscription : juillet 2004
Messages : 781
Détails du profil
Informations forums :
Inscription : juillet 2004
Messages : 781
Points : 310
Points : 310
je vais voir ca plutard, je te tiens au courant de l'evolution, merci
guy2004 est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 03h48.


 
 
 
 
Partenaires

Hébergement Web