Presentery v podsložkách nenačítají templates ze správné složky

Upozornění: Tohle vlákno je hodně staré a informace nemusí být platné pro současné Nette.
Pingy
Člen | 6
+
0
-

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
+
0
-

Ahoj, asi se toho týká tento commit

  1. zkusil bych admin malými, máš-li AdminPresenter
  2. 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
+
0
-

1. zkusil bych admin malými, máš-li AdminPresenter

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
+
0
-

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
Pingy
Člen | 6
+
0
-

Ok,
díky za vysvětlení