Route:
Autoload:
%core.lib_dir%/routing/MyProjectStaticPageRoutingCallback.class.php
Callback:
class MyProjectStaticPageRoutingCallback extends AgaviRoutingCallback
{
public function onMatched(array &$parameters, AgaviExecutionContainer $container)
{
if (isset($parameters['page']))
$page = $parameters['page'];
else
return false;
// Recognize the page's URL, fetch its ID and pass it back as a parameter to action ShowStaticPage
$m = $this->context->getModel('Pages', 'Public');
if ($page_object = $m->lookupPageBySlum($page))
{
$parameters['page'] = $page_object;
return true;
}
return false; // page doesn't exist, so the route doesn't match
}
}
Action is empty
View:
class Public_ShowStaticPageSuccessView extends ProjectBaseView
{
public function executeHtml(AgaviRequestDataHolder $rd)
{
$this->setupHtml($rd);
$page = $rd->getParameter('page');
$layer = $this->getLayer('content');
$layer->setTemplate($page->getTemplate());
}
}