Пример #1
0
 /**
  * {@inheritdoc}
  */
 public function fromUrl($url)
 {
     if (!is_string($url)) {
         $this->error = "The url parameter must be a string";
         return $this;
     }
     $this->permalink = null;
     $this->internalUrl = null;
     $this->productionRoute = null;
     $defaultUrlTokens = $this->generateDefaultUrlTokens();
     if (strpos($url, ':') === false && $url != '#') {
         // It's just the permalink
         if (strpos($url, $defaultUrlTokens) === false) {
             $permalink = $url;
             $internalUrl = $defaultUrlTokens . $permalink;
         } else {
             $permalink = str_replace($defaultUrlTokens, '', $url);
             $internalUrl = $url;
         }
         $seo = $this->seoRepository->fromPermalink($permalink);
         if (null !== $seo) {
             $this->permalink = $permalink;
             $this->internalUrl = $internalUrl;
             $this->productionRoute = $this->generateRoute($seo->getLanguage(), $seo->getPage());
         }
     }
     return $this;
 }
Пример #2
0
 /**
  * Overrides the base method to replace the permalink when it is used instad
  * of the page name
  *
  * @param Request $request
  */
 protected function dispatchCurrentPageEvent(Request $request)
 {
     $pageName = $request->get('page');
     $seo = $this->seoRepository->fromPermalink($pageName);
     if (null !== $seo) {
         $page = $this->pageRepository->fromPk($seo->getPageId());
         $pageName = $page->getPageName();
     }
     $eventName = sprintf('page_renderer.before_%s_rendering', $pageName);
     $this->dispatcher->dispatch($eventName, $this->event);
 }