Vlastní cesta k presenterům a šablonám

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

Ahoj, asi rovnou k problému.
Potřebuji mít „defaultní presentery“ v základní složce s presentery (app/presenters). A poté potřebuji mít tzv „special presentery“ v jiné složce (více složkách, názvy neznámé, počet neznámý). V případě, že bude ve složce s „special prezentery“ prezenter nahrán (nemusí být, poté se volá defaultní), tak aby se nahrál tento special.
Problém je v tom, že netuším, kde mám ošetřit toto volání presenteru.
Zkoušel jsem už v configu přidat řádek, který nahrává vlastní PresenterLoader (tam se pak hlásí Laděnka s tím, že robot našel 2 stejné presentery – ten default a special, kde je ale problém, to netuším…), zkoušel jsem to ošetřit přes vlastní třídy, ze kterých bych odvozoval BasePresenter, který by mi určil, jaký presenter se má volat…nic, nic…
To samé poté k šablonám…jak určit cestu k šablonám, když nevím přesnou cestu (zase více templates ve více složkách).

prošel jsem dost vláken, ale nenašel jsem nic, co by mi fungovalo. Několik mých vlastních pokusů se také nezdařilo.

Moc děkuju za nějaká řešení, už se s tím dělám 2 dny a nic :(

jasir
Člen | 746
+
0
-

Moc tomu nerozumím, chceš mít v aplikaci dvě třídy stejného jména?

marek.dusek
Člen | 99
+
0
-

Možná by pomohlo naznačit, k čemu by to bylo dobré, resp. jaký je use case – jakože nějaké „pluginy“, kdy nahrátím souboru něco je a bez něj není? ;)

Elianos
Člen | 3
+
0
-

Zdravim,
abych uvedl vec na pravou miru, kamarad by chtel priblizne toto:
Chtel by aby si mohl volit z jake slozky se budou presentery nacitat. Rekneme ze zakladne jsou presentery umisteny v /app/presenters, zadost je takoa aby mohl presmerovat zdroj presenteru napriklad na slozku /app/presenters2. Myslim ze takhle to bude uz malinko pochopitelnejsi. :) Jinak pokouseli jsme se problem resit pres nacitani vlastniho PresentLoaderu, ale z nejakeho nam neznameho duvodu se nedari :/
Diky za vase napady a reseni.

jasir
Člen | 746
+
0
-

Na divoký problém mě napadlo divoké řešení:

  • odstranit „defaultni prezentery“ z cesty RobotLoaderu
  • registrovat druhou instanci RobotLoaderu na „defaultni prezentery“

Opravdu netuším, jestli to bude fungovat, jestli jo, tak je to legrační… :)

Edit : asi byste si museli podědit RobotLoader, třeba:

<?php
class SecondRobotLoader extends RobotLoader{
   protected function getCache() {
      return Environment::getCache('Nette.SecondRobotLoader');
   }
}
?>

Pak by to možná fakt mohlo i fungovat :-DDD

Editoval jasir (19. 4. 2010 23:47)

Cifro
Člen | 245
+
0
-

Mne pri tvorbe vlastného PresenterLoaderu veľmi pomohla Nella