Bonjour
est t'il possible de créer un menu avec des sous menus dans le module menu avec mkframework
Accueil Services Consultations
Services 1
Services 2
Merci
Version imprimable
Bonjour
est t'il possible de créer un menu avec des sous menus dans le module menu avec mkframework
Accueil Services Consultations
Services 1
Services 2
Merci
Vous pouvez modifier le module menu généré, mais dans le builder, vous ne pourrez pas génerer un module avec sous menu en quelques clics ;)
J'ai généré la class menu suivante
Class module_menu extends abstract_moduleembedded {
public function _index() {
$tLink=array (
'Accueil' => 'default::index',
'Consultation' => 'T_RALS::list',
);
$oView=new _view('menu::index');
$oView->tLink=$tLink;
return $oView;
}
}
Comment je fais pour rajouter un sous menu avec un lien
Merci
Pouvez vous écrire le menu cible
Liibelle 1 (lien)
- sous menu 1 (lien )
Liibelle 2 (lien)
- sous menu 2 (lien )
- sous menu 2 (lien )
note: vous voulez juste une indentation menu/sous menu ou un lien entre papa et fiston ?
Expemple
informatique (lien)
- PC (lien)
- tablettes (lien)
avec un lien entre papa/fiston, losqu'on clique sur PC, informatique ET PC sont selectionné, sinon ils sont générés de manière independantes
Bonjour,
Voila ce que je veux une sorte de dropdown
Libelle 1
- Sous menu 1 (lien)
- Sous menu 2 (lien)
Libelle 2 (lien)
Libelle 3
- Sous Menu 1 (lien)
- Sous menu 2 (lien)
En cliquant sur libelle 1, le sous menu se déroule pour me proposer les liens des sous menu. En css je sais faire mais en utilisant le classe créée avec MKframework, je vois pas comment faire.
En répondant à ta question en cliquant sur Informatique le menu se déroule, puis je clique sur PC pour avoir ma nouvelle page, liste des pc par exemple.
Merci de ta réponse
Coté module/menu/main.php
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
25
26
27
28 <?php Class module_menu extends abstract_moduleembedded{ public function _index(){ $tLink=array( 'Acueil' => 'default::index', 'Informatique' => array( 'PC' => 'category::pc', 'Tablettes' => 'category::tablettes', ), 'Multimedia' => array( 'Hi fi' => 'category::hifi', 'TV' => 'category::tv' ), ); $oView=new _view('menu::index'); $oView->tLink=$tLink; return $oView; } }
ET la vue module/menu/view/index.php
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
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59 <style> .main .menu .soustitre{ } .main .menu .soustitre li{ margin-bottom:2px; } .main .menu .title{ background:#888; } .soustitre{ display:none; } </style> <script> function openMenu(id){ var a=getById('cat'+id); if(a){ if(a.style.display=='none'){ a.style.display='block'; }else{ a.style.display='none'; } } } </script> <ul> <?php $i=0;?> <?php foreach($this->tLink as $sLibelle => $uLink): ?> <?php if(is_array($uLink)):?> <li class="title"><a href="#" onclick="openMenu(<?php echo $i?>);return false"><?php echo $sLibelle?> <ul class="soustitre" style="display:none" id="cat<?php echo $i?>"> <?php foreach($uLink as $sLibelle2 => $sLink):?> <?php if(_root::getParamNav()==$sLink):?> <li class="selectionne"><a href="<?php echo $this->getLink($sLink) ?>"><?php echo $sLibelle2 ?></a></li> <?php else:?> <li><a href="<?php echo $this->getLink($sLink) ?>"><?php echo $sLibelle2 ?></a></li> <?php endif;?> <?php endforeach;?> </ul> </li> <?php $i++;?> <?php else:?> <?php $sLink=$uLink;?> <?php if(_root::getParamNav()==$sLink):?> <li class="selectionne"><a href="<?php echo $this->getLink($sLink) ?>"><?php echo $sLibelle ?></a></li> <?php else:?> <li><a href="<?php echo $this->getLink($sLink) ?>"><?php echo $sLibelle ?></a></li> <?php endif;?> <?php endif;?> <?php endforeach;?> </ul>
Grand merci Imikado
Cela fonctionne parfaitement.
Pas de quoi, merci d'utiliser le framework :)
Merci pour le boulot cela me fait gagné du temps.
Je contribue en posant la même chose sous BootStrap :
Avec toujours le petit script qui va bien mais sans le style :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
25
26 <ul class="nav navbar-nav"> <?php $i=0;?> <?php foreach($this->tLink as $sLibelle => $sLink): ?> <?php if(is_array($sLink)):?> <li class="dropdown"><a href="#" onclick="openMenu(<?php echo $i?>);return false"><?php echo $sLibelle?> <ul class="dropdown-menu" style="display:none" id="cat<?php echo $i?>"> <?php foreach($sLink as $sLibelle2 => $uLink):?> <?php if(_root::getParamNav()==$uLink):?> <li class="active"><a href="<?php echo $this->getLink($uLink) ?>"><?php echo $sLibelle2 ?></a></li> <?php else:?> <li><a href="<?php echo $this->getLink($uLink) ?>"><?php echo $sLibelle2 ?></a></li> <?php endif;?> <?php endforeach;?> </ul> </li> <?php $i++;?> <?php else:?> <?php if(_root::getParamNav()==$sLink):?> <li class="active"><a href="<?php echo $this->getLink($sLink) ?>"><?php echo $sLibelle ?></a></li> <?php else:?> <li><a href="<?php echo $this->getLink($sLink) ?>"><?php echo $sLibelle ?></a></li> <?php endif;?> <?php endif;?> <?php endforeach;?> </ul>
Code:
1
2
3
4
5
6
7
8
9
10
11
12
13 <script> function openMenu(id){ var a=getById('cat'+id); if(a){ if(a.style.display==='none'){ a.style.display='block'; }else{ a.style.display='none'; } } } </script>
Je complète ce code qui a été évolué depuis cette publication :
Code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18 <script> var menuActive=null; function openMenu(id){ if(menuActive){ getById(menuActive).style.display='none'; } var a=getById('cat'+id); if(a){ if(a.style.display==='none'){ a.style.display='block'; menuActive='cat'+id; }else{ a.style.display='none'; } } } </script>