Kombinace statických a dynamických stránek

- Xantes
 - Člen | 28
 
Ahoj,
chtěl bych mít na webu pár statických stránek, například
example.com/o-nas a zároveň nějaké dynamické například
example.com/aktuality/aktualita.
Mám takové routy ve FrontRouter:
$frontRouter[] = new Route('<slug [a-z0-9_-]+>', 'Pages:view');
$frontRouter[] = new Route('<presenter>/<action>[/<id>]', 'Homepage:default');
Podotýkám, že předem nevím, kolik statických stránek bude, takže je nemůžu vyjmenovat ve slugu například takto:
$frontRouter[] = new Route('<slug o-nas|kontakty>', 'Pages:view');
Problém mám, že například ty aktuality jsou chápány jako statická stránka – první routa je vezme a nedostane se k druhé.
Lze to nějak vyřešit? Díky

- David Matějka
 - Moderator | 6445
 
nejjednodussi bude pridat FILTER_IN pro slug, ktery vrati null, pokud slug nenajde v databazi

- corri
 - Člen | 1
 
Xantes napsal(a):
Super, díky moc!
Zatím jsem si to pro otestování udělal jen tak, že routa ve FILTER_IN otestuje, jestli je slug kontakt, jinak vrátí NULL a to funguje dobře. Myslím, že propojit s databází už to nebude problém.
Ahoj Můžeš sem hodit řešení. Pokouším se o něco podobného.

- Xantes
 - Člen | 28
 
Mám to nějak takhle
    $frontRouter[] = new Route('<slug [a-z0-9_-]+>', array(
      'presenter' => 'Pages',
      'action' => 'view',
      'slug' => array(
        Route::FILTER_IN => function($slug) use($staticPages) {
          // Tady provedu kontrolu, zda slug odpovídá statické stránce
          // Pokud ano, vrátím ho. Pokud ne, vrátím NULL
        }
      ),
    ));