Problém s routováním, nastavení správné template
- wise
- Člen | 161
Dobrý den,
začínám s Nette a na začátek bych uvedl, že je to opravdu skvělý framework.
Nyní k problému.
Routy:
$router[] = new Route('admin/<presenter>/<action>/<id>', array(
'module' => 'Admin',
'presenter' => 'Default',
'action' => 'default',
'id' => null
));
// FrontModule routes
Route::setStyleProperty('presenter', Route::FILTER_TABLE, array(
'vyhledavani' => 'Search'
));
$router[] = new Route('index.php', array(
'module' => 'Front',
'presenter' => 'Homepage',
), Route::ONE_WAY);
$router[] = new Route('<presenter>/<action>/<id>', array(
'module' => 'Front',
'presenter' => 'Homepage',
'action' => 'default',
'id' => NULL,
));
Struktura:
- app/
- AdminModule/
- presenters/
- templates/
- FrontModule/
- presenters/
- templates/
- Default/
- Homepage/
- @layout.phtml
- templates/
- @layout.phtml
- presenters/
- AdminModule/
Nevím, jak docílit toho, aby mi když jsem v rootu (resp. www.stranka.cz), aby mi bral templaty z app/FrontModule/templates/, ale místo toho je stále bere z app/templates/
Snad jsem to formuloval dobře.
Děkuji za rady.
Editoval wise (27. 10. 2010 20:21)
- wise
- Člen | 161
Moje chyba, omlouvám se, problém byl v tom, že jsem si BasePresenter vložil do FrontModule a přejmenoval ho na:
abstract class Front_BasePresenter extends Presenter
a danou úpravu udělal v tom starém.
Nicméně zde plyne má další otázka. Je to blbost nebo ne? :) Mít 3 BasePresentery? Ve Front, Admin a klasicky?
Edit: ještě jedna otázečka. Momentálně musím všechny třídy mít s prefixem Front_ pro použití ve FrontModule. To je standardní postup nebo tam mám chybu já?
Děkuji moc.
Editoval wise (27. 10. 2010 21:11)
- SyXcz
- Člen | 75
mno ono jde spíš o to co v těch BasePresenterech máš, k čemu je
používáš… sou weby kde je můžeš mít zbytečně prázdný, nebo třeba
i všechny stejný…
ale tak i tak já osobně používam pro každej modul vlastní BasePresenter,
člověk má aspoň jistotu že když někde něco změní, tak se to nezmění
všude :)
- wise
- Člen | 161
Ok, udělám to tak :) díky.
Měl bych ještě jeden dotaz. Jedná se o zobrazování obrázků v šablonách.
Dejme tomu v layoutu mám obrázek, cestu k němu „./images/image.png“, takže cesta k obrázku je: www.stranka.cz/…es/image.png
Ve chvíli, kdy jsem na jiném presenteru, je cesta www.stranka.cz/…es/image.png a obrázky už mi to samozřejmě nenajde.
RewriteBase zakomentované.
Návrhy, nápady, připomínky prosím? :)
- Mesiah
- Člen | 240
Osobně si myslím, že BasePresenter by měl být jen jeden,
nastavení něčeho, ať už jen persistentní proměnné $lang
by
měl mít jeden presenter pro celý web, pokud potřebuji nějakou specifikaci,
vytvořím další abstraktní třídu např. AdminPresenter, která
obsahuje specifikace, třeba kontrolu, jestli jsem admin…
… v podstatě BasePresenter vnímám jako Object.