Exemple #1
0
 /**
  * Detects if the current request represents a request for the backend's homepage
  *
  * @return bool
  */
 private function isBackendHomepage()
 {
     if ($this->request->getParam('controller', 'index') != 'index') {
         return false;
     }
     if ($this->request->getParam('action', 'index') != 'index') {
         return false;
     }
     if ($this->request->getParam('module', 'backend') != 'backend') {
         return false;
     }
     $basePath = $this->request->getBasePath();
     $uri = $this->request->getRequestUri();
     return str_replace($basePath, '', $uri) === '/backend/';
 }
Exemple #2
0
 /**
  * Refresh current users
  *
  * @param \Enlight_Controller_Request_Request $request
  */
 public function refreshCurrentUsers($request)
 {
     $sql = '
     INSERT INTO s_statistics_currentusers (remoteaddr, page, `time`, userID, deviceType)
     VALUES (?, ?, NOW(), ?, ?)';
     Shopware()->Db()->query($sql, array($request->getClientIp(false), $request->getParam('requestPage', $request->getRequestUri()), empty(Shopware()->Session()->sUserId) ? 0 : (int) Shopware()->Session()->sUserId, $request->getDeviceType()));
 }
Exemple #3
0
 /**
  * @param Request $request
  * @param Shop $shop
  * @return null|string
  */
 private function createPathInfo(Request $request, Shop $shop)
 {
     $requestUri = $request->getRequestUri();
     if ($requestUri === null) {
         return null;
     }
     // Remove the query string from REQUEST_URI
     if ($pos = strpos($requestUri, '?')) {
         $requestUri = substr($requestUri, 0, $pos);
     }
     $repository = Shopware()->Models()->getRepository('Shopware\\Models\\Shop\\Shop');
     $requestShop = $repository->getActiveByRequest($request);
     if ($requestShop && $requestShop->getId() !== $shop->getId()) {
         $requestUri = $this->removeShopBaseUrl($requestUri, $request, $requestShop);
     }
     $requestUri = $this->removeShopBaseUrl($requestUri, $request, $shop);
     if (!$shop->getMain()) {
         return $requestUri;
     }
     return $this->removeShopBaseUrl($requestUri, $request, $shop->getMain());
 }
Exemple #4
0
 /**
  * @param \Enlight_Controller_Request_Request $request
  * @return \Shopware\Models\Shop\Shop
  */
 public function getActiveByRequest($request)
 {
     /** @var $shop \Shopware\Models\Shop\Shop */
     $shop = null;
     $host = $request->getHttpHost();
     if (empty($host)) {
         return $shop;
     }
     $requestPath = $request->getRequestUri();
     $builder = $this->getActiveQueryBuilder();
     $builder->andWhere("shop.host=:host OR (shop.host IS NULL AND main.host=:host)");
     if ($request->isSecure()) {
         $builder->orWhere("shop.secureHost=:host OR (shop.secureHost IS NULL AND main.secureHost=:host)");
     }
     $builder->setParameter('host', $host);
     /** @var $shops \Shopware\Models\Shop\Shop[] */
     $shops = $builder->getQuery()->getResult();
     foreach ($shops as $currentShop) {
         $this->fixActive($currentShop);
     }
     //returns the right shop depending on the url
     $shop = $this->getShopByRequest($shops, $requestPath);
     if ($shop !== null) {
         return $shop;
     }
     $builder = $this->getActiveQueryBuilder();
     $builder->andWhere('shop.hosts LIKE :host1 OR shop.hosts LIKE :host2 OR shop.hosts LIKE :host3')->setParameter('host1', "%\n" . $host . "\n%")->setParameter('host2', $host . "\n%")->setParameter('host3', "%\n" . $host);
     $shop = $builder->getQuery()->getOneOrNullResult();
     if ($shop !== null) {
         $this->fixActive($shop);
     }
     return $shop;
 }