Routování – nechci /blog/default/<pageID>
- theacastus
- Člen | 81
Zdravím,
chtěl bych si upravit routy na blogu, ale s tímto si neporadím. Vysvětlení:
mám blog v presenteru Blog, pod ním jede vše, /blog/page/<pageID>,
/blog/post/<postID>,…
Chtěl bych aby, když mám defaultní presenter, Intro:default, aby mi blog
fungoval tak že hlavní stránka blogu /blog/ by byla „převlečená“
/blog/page/1 ale nechci aby se tam přesměrovával uživatel. Tj Route:ONE_WAY
dělat nechci. Zároveň nechci vytvářet 2. template který by byl
CTRL+C->CTRL+V – tj.
/templates/Blog/page.latte
/templates/Blog/default.latte
Přijde mi zbytečné mít 2× stejný soubor na jednu a tu samou věc, ale zase nechci url kde když se bude stránkovat dál aby vypadala /blog/default/<pageID>.
Napadlo mě nějak přesměrovávat dotazy z /blog/page/<pageID> na /blog/default/<pageID>, ale to by došlo k přesměrování a změně URL.
Doufám že je to alespoň trochu pochopitelné, díky za případné návrhy řešení :-)
Editoval theacastus (10. 9. 2016 16:14)
- theacastus
- Člen | 81
@Antik nene, to jsem vyřešil v presenteru ifem. Jde mi vysloveně o tvar url „/blog/page“ vs „/blog/default“. Stránkování mám zmáknuté.
Jde o to že když otevřu /blog/
spustí se v presenteru
metoda renderDefault($id)
a k ní přiřazený template
default.latte
. Když ale přejdu na starší posty pomocí
/blog/page/2
spustí se metoda renderPage($id)
a
použije se template page.latte
.
Můj problém je v tom že renderDefault($id)
a
renderPage($id)
dělají naprosto to samé (a mají to dělat),
proto mi přijde hloupé mít pro obojí různé metody a templaty.
Není možné někde nastavit třeba v renderPage($id)
že se
má využít ten a ten template ? Třeba jak se nastavují různé
layouty…
Něco jako $this->template->setTemplate('default');
- theacastus
- Člen | 81
Co jsem teď tak googlil našel jsem setFile()
. Což mě zbavilo
page.latte
, ale stále potřebuji mít obě funkce ctrl+c,
ctrl+v.
Jdu vyzkoušet tvůj návrh :-)
Ahá! Tohle jsem hledal celou dobu! Super.
Děkuju moc @Antik :-)