/** * @param Nette\Web\IHttpRequest $httpRequest * @return Nette\Application\PresenterRequest|NULL */ public function match(\Nette\Http\IRequest $httpRequest) { /** @var $appRequest \Nette\Application\Request */ $appRequest = parent::match($httpRequest); // doplněno: pokud match vrátí NULL, musíme také vrátit NULL if (!$appRequest) { return $appRequest; } // musím si přeložit host, kvůli localhostu to není dané if (strpos($httpRequest->url->host, '.localhost') !== false && !\Nette\Environment::isProduction()) { // jsme na localhostu $host = substr($httpRequest->url->host, 0, strripos($httpRequest->url->host, '.localhost')); // musíme si doménu osamostatnit od .localhost $host = str_replace('_', '.', $host); // na lokálu mám místo teček podtržení } else { // jsme na produkci $host = $httpRequest->url->host; } // zkusím zda je soubor již v cache if (is_file(WEB_DIR . '/' . $host . '/cache' . $httpRequest->url->path)) { return new Nette\Application\Request('Frontend', 'POST', array('action' => 'cache', 'file' => WEB_DIR . '/' . $host . '/cache' . $httpRequest->url->path)); } /* if ($params = $this->doFilterParams($this->getRequestParams($appRequest), $appRequest, self::WAY_IN)) { return $this->setRequestParams($appRequest, $params); } */ // $pages = $this->context->createPages(); $data = array('action' => 'default'); return new Nette\Application\Request('Frontend', 'POST', $data); }
/** * Maps HTTP request to a Request object. * * @return Request|NULL * @override */ public function match(IRequest $httpRequest) { if ($this->isMobile($httpRequest)) { return parent::match($httpRequest); } else { return NULL; } }
/** * @param \Nette\Http\IRequest $httpRequest * @return \Nette\Application\Request|null */ public function match(IRequest $httpRequest) { if (($appRequest = parent::match($httpRequest)) === null) { return null; } $appRequest->setPresenterName(self::SUBMODULE_NAME . ':' . $appRequest->getPresenterName() . (substr_count($appRequest->getPresenterName(), ':') === 0 ? ':' . self::DEFAULT_PRESENTER : '')); return $appRequest; }
/** * Tries to match request * * @param \Nette\Http\IRequest $httpRequest * * @return \Nette\Application\Request|NULL */ public function match(\Nette\Http\IRequest $httpRequest) { foreach ($this->methods as $method) { // method is not matched, return null if ($httpRequest->isMethod($method)) { return parent::match($httpRequest); } } return null; }
/** * @param \Nette\Http\IRequest * @return \Nette\Application\Request|NULL */ public function match(\Nette\Http\IRequest $httpRequest) { $appRequest = parent::match($httpRequest); if (!$appRequest) { return $appRequest; } if ($params = $this->doFilterParams($this->getRequestParams($appRequest), $appRequest, self::WAY_IN)) { return $this->setRequestParams($appRequest, $params); } return NULL; }
public function match(Nette\Http\IRequest $httpRequest) { $appRequest = parent::match($httpRequest); if (empty($appRequest->parameters)) { return null; } if (!$this->articleManager->getArticleUrl($appRequest->parameters['url'])) { return null; } return $appRequest; }
public function match(\Nette\Http\IRequest $httpRequest) { $request = parent::match($httpRequest); if (isset($request->parameters['nice_url_segment'])) { if (array_key_exists($request->parameters['nice_url_segment'], $this->redirections)) { $request->setPresenterName('Front:Redirections'); $request->setParameters(array('presenter' => 'Redirections', 'action' => 'Default', 'id' => $this->redirections[$request->parameters['nice_url_segment']])); return $request; } } return NULL; }
public function match(\Nette\Http\IRequest $httpRequest) { $httpMethod = $httpRequest->getMethod(); $flags = $this->getFlags(); if (($flags & self::RESTFUL) == self::RESTFUL) { $presenterRequest = parent::match($httpRequest); if ($presenterRequest != NULL) { switch ($httpMethod) { case 'GET': $action = 'default'; break; case 'POST': $action = 'create'; break; case 'PUT': $action = 'update'; break; case 'PATCH': $action = 'update'; break; case 'DELETE': $action = 'delete'; break; default: $action = 'default'; } $params = $presenterRequest->getParameters(); $params['action'] = $action; $presenterRequest->setParameters($params); return $presenterRequest; } else { return NULL; } } if (($flags & self::METHOD_POST) == self::METHOD_POST && $httpMethod != 'POST') { return NULL; } if (($flags & self::METHOD_GET) == self::METHOD_GET && $httpMethod != 'GET') { return NULL; } if (($flags & self::METHOD_PUT) == self::METHOD_PUT && $httpMethod != 'PUT') { return NULL; } if (($flags & self::METHOD_PATCH) == self::METHOD_PATCH && $httpMethod != 'PATCH') { return NULL; } if (($flags & self::METHOD_DELETE) == self::METHOD_DELETE && $httpMethod != 'DELETE') { return NULL; } return parent::match($httpRequest); }
public function match(Nette\Http\IRequest $httpRequest) { if (($request = parent::match($httpRequest)) === NULL) { return; } if (!$this->locale) { $parameters = $request->getParameters(); if (isset($parameters['contentLang']) && $parameters['contentLang'] !== $this->defaultLanguage) { $this->pageListener->setLocale($this->languageRepository->findOneBy(array('alias' => $parameters['contentLang']))); } $this->locale = TRUE; } return $request; }
public function match(\Nette\Http\IRequest $httpRequest) { $httpMethod = $httpRequest->getMethod(); if (($this->flags & self::RESTFUL) == self::RESTFUL) { $presenterRequest = parent::match($httpRequest); if ($presenterRequest != NULL) { $payload = null; $payloadParameters = array(); switch ($httpMethod) { case 'GET': $action = 'default'; break; case 'POST': $action = 'create'; break; case 'PUT': $action = 'update'; $payload = file_get_contents("php://input"); parse_str($payload, $payloadParameters); break; case 'DELETE': $action = 'delete'; break; default: $action = 'default'; } $parameters = $presenterRequest->getParameters(); $parameters['action'] = $action; $parameters['payload'] = $payload; $parameters = array_merge($parameters, $payloadParameters); $presenterRequest->setParameters($parameters); return $presenterRequest; } else { return NULL; } } if (($this->flags & self::METHOD_POST) == self::METHOD_POST && $httpMethod != 'POST') { return NULL; } if (($this->flags & self::METHOD_GET) == self::METHOD_GET && $httpMethod != 'GET') { return NULL; } if (($this->flags & self::METHOD_PUT) == self::METHOD_PUT && $httpMethod != 'PUT') { return NULL; } if (($this->flags & self::METHOD_DELETE) == self::METHOD_DELETE && $httpMethod != 'DELETE') { return NULL; } return parent::match($httpRequest); }
public function match(IRequest $httpRequest) { $httpMethod = $httpRequest->getMethod(); if (($this->flags & self::RESTFUL) == self::RESTFUL) { $presenterRequest = parent::match($httpRequest); if ($presenterRequest != NULL) { switch ($httpMethod) { //see: http://en.wikipedia.org/wiki/Representational_state_transfer#RESTful_web_APIs case 'GET': $action = 'get'; break; case 'POST': $action = 'post'; break; //CREATE //CREATE case 'PUT': $action = 'put'; break; //UPDATE //UPDATE case 'DELETE': $action = 'delete'; break; default: $action = 'get'; } $params = $presenterRequest->getParameters(); $params['action'] = $action; $presenterRequest->setParameters($params); return $presenterRequest; } else { return NULL; } } if (($this->flags & self::METHOD_POST) == self::METHOD_POST && $httpMethod != 'POST') { return NULL; } if (($this->flags & self::METHOD_GET) == self::METHOD_GET && $httpMethod != 'GET') { return NULL; } if (($this->flags & self::METHOD_PUT) == self::METHOD_PUT && $httpMethod != 'PUT') { return NULL; } if (($this->flags & self::METHOD_DELETE) == self::METHOD_DELETE && $httpMethod != 'DELETE') { return NULL; } return parent::match($httpRequest); }
/** * @param IRequest $httpRequest * @return \Nette\Application\Request|NULL */ public function match(IRequest $httpRequest) { $appRequest = parent::match($httpRequest); if (!isset($appRequest->parameters['id'])) { return NULL; } $id = $appRequest->parameters['id']; if (!is_numeric($id)) { $article = NULL; try { $article = $this->articlesRepository->getOneWhere(['url' => $id]); } catch (BadRequestException $exc) { return NULL; } $appRequest->parameters['id'] = $article->id(); } return $appRequest; }
public function match(\Nette\Http\IRequest $request) { /** * @var $appRequest \Nette\Application\Request */ $appRequest = parent::match($request); if (!isset($appRequest->parameters['id'])) { return NULL; } if (!is_numeric($appRequest->parameters['id'])) { $page = $this->database->query("SELECT contentId FROM route WHERE url = ?", $appRequest->parameters['id'])->fetch(); if ($page == NULL) { return NULL; } $appRequest->parameters['id'] = $page->contentId; } return $appRequest; }
/** * Maps HTTP request to a PresenterRequest object. * @param Nette\Http\IRequest * @return \Nette\Application\Request|NULL * @throws \Nette\InvalidStateException */ public function match(\Nette\Http\IRequest $httpRequest) { if (($presenterRequest = parent::match($httpRequest)) === NULL) { return NULL; } $params = $presenterRequest->params; if (!isset($params[static::FILE_KEY])) { throw new \Nette\InvalidStateException('Missing file in route definition.'); } // Find file $file = $this->getFile($params[static::FILE_KEY]); if (!$file) { return NULL; } $params[static::FILE_KEY] = $file; $presenterRequest->params = $params; return $presenterRequest; }
public function match(IRequest $httpRequest) { $appRequest = parent::match($httpRequest); if (!$appRequest) { return NULL; } $method = $httpRequest->getMethod(); if (!in_array($method, array('GET', 'POST', 'PUT', 'PATCH', 'DELETE', 'OPTIONS'))) { return NULL; } if ($this->flags & self::RESTFUL) { $action = self::$restDictionary[$method]; $params = $appRequest->getParameters(); $params['action'] = $action; $appRequest->setParameters($params); return $appRequest; } if (($this->flags & self::METHOD_GET) === self::METHOD_GET && $method !== 'GET') { return NULL; } if (($this->flags & self::METHOD_POST) === self::METHOD_POST && $method !== 'POST') { return NULL; } if (($this->flags & self::METHOD_PUT) === self::METHOD_PUT && $method !== 'PUT') { return NULL; } if (($this->flags & self::METHOD_DELETE) === self::METHOD_DELETE && $method !== 'DELETE') { return NULL; } if (($this->flags & self::METHOD_PATCH) === self::METHOD_PATCH && $method !== 'PATCH') { return NULL; } if (($this->flags & self::METHOD_OPTIONS) === self::METHOD_OPTIONS && $method !== 'OPTIONS') { return NULL; } return $appRequest; }
/** * Maps HTTP request to a Request object. * * @param Nette\Http\IRequest * @return \Nette\Application\Request|NULL */ public function match(\Nette\Http\IRequest $httpRequest) { if (($request = parent::match($httpRequest)) === NULL || !array_key_exists('slug', $request->parameters)) { return NULL; } if (!$this->checkConnectionFactory->invoke()) { return NULL; } $parameters = $request->parameters; if (!$this->_defaultLang && count($this->languages) > 1) { if (!isset($parameters['lang'])) { $parameters['lang'] = $this->defaultLanguage; } if ($parameters['lang'] !== $this->defaultLanguage) { $this->container->cms->pageListener->setLocale($parameters['lang']); } $this->_defaultLang = TRUE; } $key = array($httpRequest->getUrl()->getAbsoluteUrl(), $parameters['lang'], isset($parameters['domain']) ? $parameters['domain'] : NULL); $data = $this->cache->load($key); if ($data) { return $this->modifyMatchRequest($request, $data[0], $data[1], $data[2], $data[3], $data[4], $parameters); } if (count($this->languages) > 1) { try { $tr = $this->container->entityManager->getRepository('CmsModule\\Content\\Entities\\RouteTranslationEntity')->createQueryBuilder('a')->leftJoin('a.language', 'l')->andWhere('a.url = :url')->setParameter('url', $parameters['slug'])->andWhere('l.alias = :lang')->setParameter('lang', $parameters['lang'])->getQuery()->getSingleResult(); } catch (NoResultException $e) { } if (!isset($tr) || !$tr) { $qb = $this->getRouteRepository()->createQueryBuilder('a')->leftJoin('a.language', 'p')->andWhere('a.language IS NULL OR p.alias = :lang')->setParameter('lang', $parameters['lang'])->andWhere('a.url = :url')->setParameter('url', $parameters['slug']); } else { $qb = $this->getRouteRepository()->createQueryBuilder('a')->leftJoin('a.translations', 't')->where('t.id = :id')->setParameter('id', $tr->id); } } else { $qb = $this->getRouteRepository()->createQueryBuilder('a')->where('a.url = :url')->setParameter('url', $parameters['slug']); } $domain = isset($parameters['domain']) && $parameters['domain'] ? $this->getDomainRepository()->findOneBy(array('domain' => $parameters['domain'])) : NULL; if ($domain) { $qb->andWhere('a.domain = :domain')->setParameter('domain', $domain->id); } else { $qb->andWhere('a.domain IS NULL'); } try { $route = $qb->getQuery()->getSingleResult(); } catch (NoResultException $e) { return NULL; } $this->cache->save($key, array($route->id, $route->page->id, $route->type, $domain ? $domain->domain : NULL, $route->params), array(Cache::TAGS => array(RouteEntity::CACHE))); return $this->modifyMatchRequest($request, $route, $route->page, $route->type, $domain, $route->params, $parameters); }
/** * Maps HTTP request to a PresenterRequest object. * @param \Nette\Http\IRequest * @return \Nette\Application\Request|NULL * @throws \Nette\InvalidStateException */ public function match(\Nette\Http\IRequest $httpRequest) { if (($presenterRequest = parent::match($httpRequest)) === NULL) { return NULL; } $params = $presenterRequest->params; if (!isset($params[static::FORMAT_KEY])) { throw new \Nette\InvalidStateException('Missing format in route definition.'); } if (!isset($params[static::IMAGE_KEY])) { throw new \Nette\InvalidStateException('Missing id in route definition.'); } // Find image $image = $this->getImage($params[static::IMAGE_KEY]); if (!$image) { return NULL; } $params[static::IMAGE_KEY] = $image; // Find format $format = $this->getFormat($params[static::FORMAT_KEY]); if (!$format) { return NULL; } $params[static::FORMAT_KEY] = $format; // Set path parameter $params[static::PATH_PARAMETER] = $httpRequest->url->path; $presenterRequest->params = $params; return $presenterRequest; }
/** * @param Http\IRequest $httpRequest * @return Application\Request|NULL */ public function match(Http\IRequest $httpRequest) { $appRequest = parent::match($httpRequest); if (!$appRequest) { return NULL; } // Check requested method $methodFlag = $this->getMethod($httpRequest); if (!$this->isMethod($methodFlag)) { return NULL; } // If there is action dictionary, set method if ($this->actionDictionary) { $parameters = $appRequest->getParameters(); $parameters['action'] = $this->actionDictionary[$methodFlag]; $parameters['action'] = self::formatActionName($this->actionDictionary[$methodFlag], $parameters); $appRequest->setParameters($parameters); } return $appRequest; }