(Routovani?) Vytvareni n:href odkazu z pole / Spravny pristup k deep linkum
- Rafe
- Člen | 9
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)
- Rafe
- Člen | 9
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 | 1196
Lépe 500 presenterů, než 5 PRASEnterů. :) Určitě je rozděl do modulů a namespace.
- David Matějka
- Moderator | 6445
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
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
jo, překryj metodu formatTemplateFiles
ve svém base
presenteru
https://api.nette.org/…ter.php.html#…
Editoval CZechBoY (6. 3. 2018 12:22)