Nested tree routa – jde to?
- flexroad
- Člen | 117
Ahoj,
resim, jestli by slo udelat v nette routu, ktera by se skladala na zaklade definice a zanoreni stromu kategorii.
Pro priklad:
www.domena.cz/…/akce/auto_1
www.domena.cz/…/akce/auto_1
www.domena.cz/…em/produkt_2
atp.
Jde mi o to, abych jednotlive podkategorie konkretniho zanoreni mohl generovat dynamicky… pricemz hloubka zanoreni pro jednotlive podkategorie muze byt libovolna…
Mohlo by to vypadat treba i nejak takto:
Jeste doplnim, ze cela definice stromu kategorii je v databazi a routy se musi se tudiz generovat odtamad…
Muze me nekdo nasmerovat na nejake pekne a elegantni Nette reseni?
Diky za cokoliv,
@flexroad
Editoval flexroad (14. 3. 2015 22:19)
- Tharos
- Člen | 1030
@flexroad Pokud bys chtěl nějakou relativně čerstvou ukázku databázového routeru, jeden hodně jednoduchý můžeš najít tady.
Další neotřelou možností, jak takové routování řešit, je dynamicky
generovat instance Route
podle dat v databázi. Měl jsem to
naimplementované v jednom CMSku před léty a fungovalo to velmi dobře. Dalo
se to krásně kešovat, takže v praxi se s databází komunikovalo jen
minimálně.
- thm
- Člen | 147
Před půl rokem jsem to řešil takto. Jako poslední routu jsem nastavil (žere všechno – jak jsem tak pochopil)
$router[] = new Route('<page .+>/', 'frontEnd:page:view');
A potom ve view to zpracovávám:
// V parametru $page je například: auto/skoda/octavia
public function actionView($page){
$pageNames = array_reverse(explode('/', $page));
try{
$this->page = $this->pages->findBy('name',$pageNames[0]);
} catch(...){}
}
Editoval thm (16. 3. 2015 9:26)