(Routovani?) Vytvareni n:href odkazu z pole / Spravny pristup k deep linkum

Rafe
Člen | 9
+
0
-

Dobry den,

Vyrábím intranet, který slouží jakožto intranet, nicméně do toho jsou napojena v podstatě všechny systémy které v firmě máme a které mohou zajímat managment (Výrobní data, data strojů, stavy služeb etc.). Proto ve výsledku skončím s spoustu naprosto odlišných sekcí, které potřebuji nějak nacpat do presenterů. Nicméně nechci skončit s 20-ti presentery, ale raději bych to měl nějak rozděleno do kategorií.

Principiálně by to mělo vypadat následujícím způsobem:

Menu
	- A - AA - AAA
			 - AAB
			 - AAC
		- AB
		- AC
		- AD
	- B
	- C

Ideálně bych měl rád jen presenter A, v renderu AB/AC/AD, ale potřebuji nějak do toho nacpat i AAA/AAB/AAC. Můj plán byl, využít parameter ID jakožto switcher, který pak bude includovat různé latte soubory. Tz. že by výsledná url vypadala např.: /A/AB/AAA (presenter/action/id). Něco mi říká že tento přístup není úplně ideální, nicméně bych případně potřeboval poradit, jak to řešit jinak.

Nicméně pokud by to nebyl zase tak špatný přístup, potřeboval bych poradit s následující věcí:

Mám třídu MenuBuilder, která skládá menu do pole. Nicméně nejsem schopen nacpat do odkazu parametr ID:

'History' => 'Production:default'

Zkoušel jsem:

'History' => 'Production:default history'
'History' => 'Production:default id=>history'

i poslat si do třídy presenter a zkusit to přes

$this->presenter->link('Production:maintenance', 'history')

V latte to vypisuji přes:

<a n:href="$link">{$item}</a>

Nicméně vždy skončím s chybnou routou.
Přímo přes prohlížeč mi to samozřejmě funguje.

Editoval Rafe (6. 3. 2018 8:50)

CZechBoY
Člen | 3608
+
0
-

btw co ti vadi na 20 presenterech? apropo co ti vadi na 500 presenterech?

Rafe
Člen | 9
+
0
-

Jde mi primárně o přehlednost. Nicméně vlastně můžu presentery poklidit do složek jak potřebuji a jen držet správné Namespace.

Lze nějak obdobně nastavit i odkazování na templates? Tz. změnit u těchto presenterů defaultni složku z „templates/AAA/*.latte“ na „templates/A/AA/*.latte“ ?

Pavel Kravčík
Člen | 1180
+
+1
-

Lépe 500 presenterů, než 5 PRASEnterů. :) Určitě je rozděl do modulů a namespace.

David Matějka
Moderator | 6445
+
+1
-

Určitě je rozděl do modulů a namespace.

v poslední době (temer dva roky) jsem spise toho nazoru, ze striktni rozdelovani do modulu a namespacu nema zadnou vyhodu – naopak se s tim hure pracuje. v appce mam obvykle nekolik jednotek namespace (front, admin…), ve kterych jsou desitky presenteru rozdeleny do slozek tak, aby to bylo prehledne

Rafe
Člen | 9
+
0
-

No poresil jsem to pres rozhazeni presenteru do ruznych slozek a spojeni pres namespace, za nakopnuti diky :)

Slo by jeste poradit s timto:

Lze nějak obdobně nastavit i odkazování na templates? Tz. změnit u těchto presenterů defaultni složku z „templates/AA/*.latte“ na „templates/A/AA/*.latte“ ?

CZechBoY
Člen | 3608
+
0
-

jo, překryj metodu formatTemplateFiles ve svém base presenteru
https://api.nette.org/…ter.php.html#…

Editoval CZechBoY (6. 3. 2018 12:22)

Rafe
Člen | 9
+
0
-

Diky :)