Výpis všetkých akcií presenteru

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

Dobrý deň, chcem sa opýtať, či sa náhodou nedá nejakou funkciou vypísať zoznam všetkých akcií daného presenteru, poprípade všetky presentery daného modulu. Ide o to, že by som si rád spravil nejaké automaticky generované menu bez toho, aby som musel položky ukladať do databázy.

Vopred ďakujem za odpovede

Ot@s
Backer | 476
+
0
-

Od toho tu je reflexe.

pseudonym
Člen | 57
+
0
-

Z toho som zatiaľ veľa nevyčítal. Síce som to ešte neskúšal, ale veľa tam k tomu nie je. Vyskúšam to a dám vedieť ako to dopadlo…

Caine
Člen | 216
+
0
-

Třeba takto:)

	public function getPresenterActions($presenterName) {
		$reflection = new Nette\Reflection\ClassType($presenterName . 'Presenter');
		$methodObjects = $reflection->getMethods(ReflectionMethod::IS_PUBLIC);
		$actions = array();
		foreach ($methodObjects as $method) {
			if (preg_match('#^(?:action|render)(\w+)#', $method->name, $matches) && !isset($actions[$matches[1]])) {
				$actions[$matches[1]] = lcfirst($matches[1]);
			}
		}
		return $actions;
	}

Editoval Caine (29. 3. 2012 12:16)

Filip Procházka
Moderator | 4668
+
0
-

Což není dostatečně, protože stačí mít šablonu ve správné složce a máš další view, aniž bys měl metodu v presenteru.

Ascaria
Člen | 187
+
0
-

Něco mi říká, že tu bude správný postup načtení všech souborů šablon (*.phtml, *.latte) a to ve tvaru „/templates/Default/default.latte“ i „/templates/Default.default.latte“ a vynechat např. "/templates/Default/@layout.latte"

Mám za to, že to co tu popisuješ umí panel NavigationPanel

Editoval Ascaria (29. 3. 2012 12:50)