Víceúrovňové menu – know-how?

Upozornění: Tohle vlákno je hodně staré a informace nemusí být platné pro současné Nette.
toka
Člen | 253
+
0
-

Potřeboval bych zřejmě poradit celý postup jak udělat víceúrovňové menu. Něco jsem zkoušel, ale zamotal jsem se do toho. Jsem schopen z vícerozměrného pole vypsat seznam za pomocí <ul>, ale ne menu. Nedaří se mi nějakým způsobem „propašovat“ do pole odkazy, resp. je vypisovat v šabloně.

Mohl bych někoho poprosit o jeho know-how jak realizuje víceúrovňové menu?

Díky.

voda
Člen | 561
+
0
-

Já bych to vyřešil asi takhle:

<?php
// DefaultPresenter.php
public function renderDefault() {
	$this->template->menu = array(
		'odkaz A' => 'Default:default',
		'odkaz B' => 'Default:default',
		'další' => array(
			'odkaz C' => 'Default:default',
			'odkaz D' => 'Default:default'
		),
		'odkaz E' => 'Default:default',
	);
}
?>
{* default.latte *}
{block menu}
<ul>
	<li n:foreach="$menu as $text => $item">
		{if is_array($item)}
			{$text}{include #menu, menu => $item}
		{else}
			<a href="{plink $item}">{$text}</a>
		{/if}
	</li>
</ul>
{/block}

{block content}

{include #menu, menu => $menu}
bojovyletoun
Člen | 667
+
0
-

No, a to je defakto komponenta Navigation

toka
Člen | 253
+
0
-

Do Navigation mám ale problém dostat to pole, nějak jednoduše :-)

bojovyletoun
Člen | 667
+
0
-

Tam se to dělá přes sekce: (readme)

protected function createComponentNavigation($name) {
		$nav = new Navigation($this, $name);
		$nav->setupHomepage("Úvod", $this->link("Homepage:"));
		$sec = $nav->add("Sekce", $this->link("Category:", array("id" => 1)));
		$article = $sec->add("Článek", $this->link("Article:", array("id" => 1)));
		$nav->setCurrent($article);
	}
toka
Člen | 253
+
0
-

Ano, to jsem pochopil, přečetl jsme si README. Ale chtěl bych to přes to pole. No, zvážím úpravu DB, ale i tak budu muset tento addon mírně upravit :-)

trollnet
Člen | 8
+
0
-

Zdravím všechny,
před chvílí jsem narazil na problém odkazování v 2. podúrovni menu. Asi to je nějaká pitomost, ale nemůžu se přes to přenýst.

např. mám menu Uvod, Produkty/barvy/bila a Kontakt

Pokud potřebuju skočit linkem na Uvod napíšu Uvod:,
pokud potřebuju skočit na barvy, napíšu Produkty:barvy,
ale co napíšu když potřebuju přejít na stránku bila (samozřejmě, abych zachoval hierarchii Produkty/barvy/bila)?

Díky za jakoukoli radu

PS: Doufám, že jsem to napsal srozumitelně. Prostě mi šlo o to, jak by vypadal příkaz link pro to, abych se dostal např. sem s hierarchií (zdravotnicke-sluzby/eticka-komise/jednaci-rad/)

Editoval trollnet (2. 8. 2011 22:56)