Vlastní cesta k presenterům a šablonám
- kleinpeter
- Člen | 7
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 :(
- marek.dusek
- Člen | 99
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
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
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)