Autor Zpráva
jirkaK
Profil *
ahoj,

potřebuji poradit. Myslím, že to není nic složitého, ale nejsem programátor, takže se s tímto problémem neumím vypořádat.

Mam navigaci, kde se po kliknutí na příslušnou položku rozbalí na další úrovně:

Kategorie
-> Podkategorie
-> Podkategorie
--->Podkategorie
--->Podkategorie
-> Podkategorie

A já potřebuji, aby se navigace nerozbalovala. Tzn. po kliknutí na kategorii, se nezobrazí její podkategorie.

<?php
function displayChildren($page, $current, $startmenu = true, $limits = null) {
  if ($limits != null && array_key_exists($page->slug, $limits)) {
    $arr = array('order' => 'position ASC, published_on DESC', 'limit' => $limits[$page->slug]);
  } else
    $arr = array('order' => 'position ASC, published_on DESC');
  if ($page && count($page->children()) > 0) {
    echo ($startmenu) ? '<ul class="sidemenu">' : '';
    foreach($page->children($arr) as $menu) :

      echo '<li>'.$menu->link($menu->title, (in_array($menu->slug, explode('/', $current->url)) ? ' class="current"': null)).'</li>';
	if(in_array($menu->slug, explode('/', $current->url))){
      displayChildren($menu, $current, true, $limits);
}
    endforeach;
    echo ($startmenu) ? '</ul>' : '';
  }
}
?>

<div class="box">
	<div class="caption navigace"><span>Navigace</span></div>
	<div id="nav">
<?php
  $page = $this->find('/');
  echo '<ul>';
  echo '<li>'.$page->link($page->title, (in_array($page->slug, explode('/', $this->url)) ? ' class="current"': null)).'</li>';
	
		echo displayChildren($page, $this, false, array('articles' => '3', 'a-sub-page' => '1'));
	
  echo '</ul>';
?>
	</div> <!-- end #navigation -->
<div class="foot">&nbsp;</div>
</div>


Děkuji moc za případnou pomoc :)
jirkaK
Profil *
Vyřešeno. Můžete zamknout.

<?php
function displayChildren($page, $current, $startmenu = true, $limits = null) {
  if ($limits != null && array_key_exists($page->slug, $limits)) {
    $arr = array('order' => 'position ASC, published_on DESC', 'limit' => $limits[$page->slug]);
  } else
    $arr = array('order' => 'position ASC, published_on DESC');
  if ($page && count($page->children()) > 0) {
    echo ($startmenu) ? '<ul class="sidemenu">' : '';
    foreach($page->children($arr) as $menu) :

    echo '<li>'.$menu->link($menu->title, (in_array($menu->slug, explode('/', $current->url)) ? ' class="current"': null)).'</li>';
    endforeach;
    echo ($startmenu) ? '</ul>' : '';
  }
}
?>

<div class="box">
	<div class="caption navigace"><span>Navigace</span></div>
	<div id="nav">
<?php
  $page = $this->find('/');
  echo '<ul>';
  echo '<li>'.$page->link($page->title, (in_array($page->slug, explode('/', $this->url)) ? ' class="current"': null)).'</li>';
	
		echo displayChildren($page, $this, false, array('articles' => '3', 'a-sub-page' => '1'));
	
  echo '</ul>';
?>
	</div> <!-- end #navigation -->
<div class="foot">&nbsp;</div>
</div>

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm:

0