Hej med jer.
Jeg har lavet en menu i PHP, som her submenu i 1 niveau. Selve menuen kommer fra en XML fil.
Det hele fungerer som sådan fint nok, men jeg har et problem med at få markeret punktet i hovedmenuen som værende aktivt, når man er på en undermenu.
F.eks.
artikler -> kategori 1
Hvis man er på siden der hører til kategori 1, skal det selvfølgelig markeres aktivt. Men punktet artikler også markeres som aktivt, da man jo er under det. Håber det giver mening.
Min XML struktur kommer her:
- <menu>
- <menuitem menuid="1" root="" name="Forsiden" description="beskrivelse" page="forsiden" title="titel" keywords="keywords"/>
- <menuitem menuid="2" root="" name="Side2" description="beskrivelse" page="Side2" title="titel" keywords="keywords"/>
- <menuitem menuid="3" root="2" name="Underside1" description="beskrivelse" page="Underside1" title="titel" keywords="keywords"/>
- </menu>
Koden jeg bruger til at hente menuen ser sådan ud:
- <ul>
- <?php
- $menu = xml2array(file_get_contents('xml/menu.xml'));
- $i = 0;
- $count = count($menu['menu']['menuitem']);
- while ($i <= $count):
- If ($menu['menu']['menuitem'][$i.'_attr']['root'] == '' && isset($menu['menu']['menuitem'][$i.'_attr']['name']) ) {
- If ($page == $menu['menu']['menuitem'][$i.'_attr']['page']) $class1='active';
- If ($page == $menu['menu']['menuitem'][$i.'_attr']['page']) $class1='active';
- echo '<li id="'.$class1.'"><a href="?page='.$menu['menu']['menuitem'][$i.'_attr']['page'].'">'.$menu['menu']['menuitem'][$i.'_attr']['name'].'</a>';
- $class1='';
- $submenu = xml2array(file_get_contents('xml/menu.xml'));
- $i2 = 0;
- echo '<ul>';
- for ($p = 0; $p <= 30; $p++) {
- If ($submenu['menu']['menuitem'][$p.'_attr']['root'] == $menu['menu']['menuitem'][$i.'_attr']['menuid']) {
- If ($page == $submenu['menu']['menuitem'][$p.'_attr']['page']) $class='active';
- echo '<li class="'.$class.'"><a class="sublink" href="?page='.$submenu['menu']['menuitem'][$p.'_attr']['page'].'">'.$submenu['menu']['menuitem'][$p.'_attr']['name'].'</a></li>';
- $class='';
- }
- }
- echo '</ul></li>';
- }
-
- $i++;
- endwhile;
- ?>
- </ul>
Indlæg senest redigeret d. 26.10.2012 08:31 af Bruger #17414