Rozložení aplikace na více template
- Rndoom04
- Člen | 75
Zdravím všechny programátory,
snažím se rozdělit aplikaci na více templatů (jedno jádro a více
vzhledů).
Mám strukturu
App/Presenters a v ní NecoPresenter.php a adresář templates. V adresáři
templates pak mám adresáře template1 a template2. V nich už potom klasické
rozdělení @layout.latte vč. adresáře Neco a v něm
default.latte.
App
- Presenters
- templates
- template1
- @layout.latte
- Neco
- Default.latte
- template2
- Neco
- Default.latte
- BasePresenter.php
- NecoPresenter.php
A stále se mi nedaří namapovat správný template. Hlásí mi to:
Page not found. Missing template '.../app/Presenters/templates/Neco/default.latte'
Nedaří se mi nastavit tu cestu. Do BasePresenteru do beforeRender jsem zkoušel dávat
$path = __DIR__.'/templates/template1/@layout.latte';
$this->setLayout($path);
Pomohl by mi tu někdo jak to udělat funkční? Děkuji moc za pomoc. :)
Editoval Rndoom04 (28. 6. 2020 15:48)
- Šaman
- Člen | 2667
Konkrétně
třeba takhle. Tohle rozšiřuje místa, kde mohou být šablony. Já je
ukládám vždy do stejného adresáře, jako je jejich presenter, protože
změna v jednom často vyžaduje změnu i v druhém.
Tohle přidává ještě druhé místo – podadresář templates
ve složce kde je jejich presenter.
Podporuje to i ten tvar presenter.view.latte
, který se teď
řešil v jiném vláknu.
Layout se pak dohledává odspodu a vezme se první, který se najde. Tedy
pokud máš klasicky jeden @layout.latte
na úrovni
BasePresenteru
, ale chceš pro nějaký modul vlasní layout, tak
na úrovni ModuleBasePresenter
bude jeho layout a použije se.
P.S. A toho beforeRender()
si nevšímej, to se tohohle
netýká.
Editoval Šaman (28. 6. 2020 17:44)
- Rndoom04
- Člen | 75
Šaman napsal(a):
Však přesně to tohle dělá. Ta metoda
formatTemplateFiles
vraci seznam adres k souborům, které se postupně projdou a vezme se první, který se najde. Jestli nechceš zachovávat zpětnou kompatibilitu, tak si tam natvrdo můžeš nastavit jednu vlastní cestu.
Super! Funguje mi to. Děkuju moc za ochotu a pomoc. :)