Esempio n. 1
0
 /**
  * Maps HTTP request to a Request object.
  *
  * @param Nette\Http\IRequest $httpRequest
  * @return Request|NULL
  */
 public function match(Nette\Http\IRequest $httpRequest)
 {
     $relativeUrl = trim($httpRequest->getUrl()->relativeUrl, "/");
     $path = trim($httpRequest->getUrl()->path, "/");
     if ($relativeUrl == "") {
         $target = $this->defaultRoute;
         $this->currentTarget->setCurrentTarget($this->targetDao->findTarget($target->presenter, $target->action, $target->id));
     } elseif ($relativeUrl == "sitemap.xml") {
         $target = new Target("Seo:Meta", "sitemap");
     } elseif ($relativeUrl == "robots.txt") {
         $target = new Target("Seo:Meta", "robots");
     } elseif (substr($relativeUrl, 0, 6) == "google" && $this->settingsDao->getWebmasterToolsName() == $relativeUrl) {
         $target = new Target("Seo:Meta", "googleWebmasterTools");
     } else {
         $route = $this->routeDao->findRouteBySlug($relativeUrl, TRUE);
         if (!$route) {
             $route = $this->routeDao->findRouteBySlug($path, TRUE);
             if (!$route) {
                 return NULL;
             }
         }
         $this->currentTarget->setCurrentTarget($route->getTarget());
         $target = new Target($route->target->targetPresenter, $route->target->targetAction, $route->target->targetId);
     }
     $params = array();
     $params["action"] = $target->action;
     if ($target->id) {
         $params["id"] = $target->id;
     }
     $params += $httpRequest->getQuery();
     return new Request($target->presenter, $httpRequest->getMethod(), $params, $httpRequest->getPost(), $httpRequest->getFiles(), array(Request::SECURED => $httpRequest->isSecured()));
 }
Esempio n. 2
0
 public function render()
 {
     $target = $this->currentTarget->getCurrentTarget();
     $meta = $target && $target->getMeta() ? $target->meta : NULL;
     $this->template->setFile(__DIR__ . "/MetaTags.latte");
     $targetTitle = $meta ? $meta->seoTitle : NULL;
     $baseTitle = $this->settingsDao->getBaseTitle();
     if ($baseTitle and $targetTitle) {
         $title = $targetTitle . " - " . $baseTitle;
     } else {
         $title = $targetTitle . $baseTitle;
     }
     $this->template->title = $title;
     $this->template->keywords = $meta ? $meta->seoKeywords : NULL;
     $this->template->description = $meta ? $meta->seoDescription : NULL;
     $this->template->robots = $meta ? $meta->seoRobots : NULL;
     $this->template->render();
 }