Adresářová struktura šablon a setLayout
- mara11
- Člen | 42
Jsem v presenteru a chci dát setLayout(__DIR__ . /templates/..)
Výsledek: Layout not found. Missing template
'…\xampp\htdocs\WebFrontend\app\presenters\templates\…
Jak jí správně nastavit, když __DIR__ vrací i app/presenters, když
vlastně chci app/templates?
Chci udělat složitější adresářovou strukturu pro daný presenter
Klasicky by bylo
- templates
- Error
- Page
- default.latte
- dalsi.latte
Ale já bych potřeboval něco jako
- templates
- Error
- Page
- slozka
- pages.latte
- @layout.latte
- slozka
Tak aby tahle @layout.latte fungovala pro pages, stejně jako to funguje běžně,
jakoby chci o jednu složku víc zanořit adresářovou strukturu
Jak nastavit router, aby po zadání potřebné adresy do url localhost/projekt/cz/page/slozka/pages se mi zobrazila daná šablona?
Souvisí to s první otázkou, chci dát setLayout(potřebná cesta k šabloně pages.latte), případně jak to mám vůbec celé udělat… :-)
- Odoaker
- Člen | 11
Nevím, jestli to de nějak líp, ale adresářovou strukturu sem si měnil
v Nette\Application\UI\Presenter
https://api.nette.org/…ter.php.html#…
jestli jen pro jeden presenter, tak __DIR__ . ‚/../templates/…‘ nejde?
Editoval Odoaker (17. 3. 2015 23:23)
- Etch
- Člen | 403
__DIR__ je konstanta obsahující cestu k adresáři aktuálního souboru, takže je celkem logické, že ti to vede do App/Presenters.
Layouty se defaultně dohledávají v App/Templates a pokud vím tak i v App/Templates/PresenterName
V tvém případě by tedy setLayout mělo být naprosto zbytečné (Layout != šablona). Pro presenter „Page“ se použije layout z adresáře App/Templates/Page a pro ostatní se použije defaultní layout z App/Templates.
Ty potřebuješ přenastavovat view
/** Pro šablonu App/Templates/Page/slozka/pages.latte*/
$this->view = 'slozka/pages'
Editoval Etch (17. 3. 2015 23:36)
- Odoaker
- Člen | 11
Tam si můžeš změnit defaultní vyhledávání layoutu nebo se minimálně kouknout, jak to nette čte. Rozdíl tam hledat nemáš. Znova… pokud to chceš jen pro jeden případ, tak __DIR__ . ‚/../templates/blah‘ nebo ještě dirname(__DIR__) . ‚/templates/blah‘.
Editoval Odoaker (17. 3. 2015 23:24)