Presentery v podsložkách nenačítají templates ze správné složky
- Pingy
- Člen | 6
Ahoj,
mám takový problém, nebo je to možná moje neznalost, ale ani po
vyhledávání na internetu/tomto fóru jsem nenašel přímo tento problém.
Pokud někdo ví o tématu kde se to již řešilo, tak uvítám odkaz :)
Jedná se o načítání latte šablon z adresáře
presenters/templates místo templates když se
vlastní presenter nachází v podsložce.
Zkusím to ještě podrobněji popsat. Mám v podstatě dvě báze presenterů
User a Admin. Klasické User presentery mám ve složce presenters a Admin mám
ve složce presenters/Admin. U User presenterů se všechno
chová tak, jak má, u Admin jsem ovšem musel přidat vlastní
formatTemplateFiles()
a formatLayoutTemplateFiles()
do
třídy AdminBasePresenter
. Pokud je chyba někde u mě, rád bych
věděl jak ji opravit jinak než tímto, pro mě, hackem.
Používám Nette 2.0.5 na PHP 5.3.8 jestli
to něčemu pomůže.
V changelogu k verzi 2.0.4 jsem našel tuto improvement:
Presenter: directory ‚templates‘ may be located inside presenter's directory
Nemůže to s tím mít nějakou souvislost?
Latte soubory uchovávám dle klasické konvence ve stylu
templates/<presenter>/<filename>.latte
Díky za jakékoliv info :)
- Tomáš Votruba
- Moderator | 1114
Ahoj, asi se toho týká tento commit
- zkusil bych
admin
malými, máš-liAdminPresenter
- rozepiš struktur podrobněji, teď to máš nějak takto?
/app
/presenters
AdminPresenter.php
UserPresenter.php
/templates
/admin
default.latte
/user
default.latte
- Pingy
- Člen | 6
1. zkusil bych
admin
malými, máš-liAdminPresenter
admin
malými kde? V názvu složky v templates?
2. rozepiš struktur podrobněji, teď to máš nějak takto?
Ne, mám to zjednodušeně takto: (v reálu tam mám víc presenterů, ale žádný Admin mi nejede a všechny User mi jedou)
/app
/presenters
/Admin
Admin1Presenter.php
Admin2Presenter.php
User1Presenter.php
User2Presenter.php
/templates
/Admin1
default.latte
/Admin2
default.latte
/User1
default.latte
/User2
default.latte
Zkoušel jsem i v templates vyrobit složku Admin a do té vložit všechny
AdminPresentery, ale nic. Laděnka píše, že chybí latte soubor
v presenters/templates/...
- vvoody
- Člen | 910
formatTemplateFiles() hlada template adresar len o jednu uroven vyssie. Cize tu:
/app
/presenters
/Admin
Admin1Presenter.php
Admin2Presenter.php
/templates
/Admin1
default.latte
/Admin2
default.latte
User1Presenter.php
User2Presenter.php
/templates
/User1
default.latte
/User2
default.latte
alebo priamo pri presenteri
/app
/presenters
/Admin
Admin1Presenter.php
Admin2Presenter.php
/templates
/Admin1
default.latte
/Admin2
default.latte
User1Presenter.php
User2Presenter.php
/templates
/User1
default.latte
/User2
default.latte