deblan.tv/vendor/trinity/src/Trinity/.svn/pristine/83/83866753d2cc357b8aeab3e28c9ce8074b138ba2.svn-base
2015-03-02 21:57:49 +01:00

54 lines
1.7 KiB
Plaintext

<?php
namespace Trinity\Bundle\ContentManagerBundle\Listener;
use Symfony\Component\HttpKernel\Event\GetResponseEvent;
use \Trinity\Bundle\ContentManagerBundle\Navigation\NavigationSelectorInterface;
use \Trinity\Bundle\ContentManagerBundle\Page\PageManagerSelectorInterface;
use \Trinity\Bundle\ContentManagerBundle\Page\DecoratorStrategyInterface;
use \Trinity\Bundle\ContentManagerBundle\Exception\PageNotFoundException;
use \Trinity\Bundle\ContentManagerBundle\Exception\NavigationNotFoundException;
class RequestListener
{
protected $navSelector;
protected $pageSelector;
protected $decoratorStrategy;
public function __construct(NavigationSelectorInterface $navSelector, PageManagerSelectorInterface $pageSelector, DecoratorStrategyInterface $strategy)
{
$this->navSelector = $navSelector;
$this->pageSelector = $pageSelector;
$this->decoratorStrategy = $strategy;
}
public function onKernelRequest(GetResponseEvent $event)
{
if (!$this->decoratorStrategy->isRequestDecorable($event->getRequest())) {
return;
}
$nav = $this->navSelector->retrieve();
if (!$nav) {
throw new NavigationNotFoundException('No navigation loaded. Check out if you have configured a navigation with the domain : "'.$event->getRequest()->getHost().'"');
}
$cms = $this->pageSelector->retrieve();
// try {
$cms->setNavigation($nav);
$cms->changeCurrentPage();
/*$page = $cms->getCurrentPage();
$cms->setCurrentPage($page);
$cms->loadBlocks();*/
// } catch (PageNotFoundException $e) {
// // no page for node, continue to controller
// return;
// }
}
}