/** * Init backend locales */ protected function initLocale() { $bootstrap = $this->Application()->Bootstrap(); $locale = $this->getCurrentLocale(); $bootstrap->getResource('Locale')->setLocale($locale->toString()); $bootstrap->getResource('Snippets')->setLocale($locale); $template = $bootstrap->getResource('Template'); $baseHash = $this->request->getScheme() . '://' . $this->request->getHttpHost() . $this->request->getBaseUrl() . '?' . Shopware::REVISION; $baseHash = substr(sha1($baseHash), 0, 5); $template->setCompileId('backend_' . $locale->toString() . '_' . $baseHash); if ($this->action !== null && $this->action->View()->hasTemplate()) { $this->action->View()->Template()->setCompileId($template->getCompileId()); } }
/** * Refresh referrer log * * @param \Enlight_Controller_Request_Request $request */ public function refreshReferer($request) { $referer = $request->getParam('referer'); $partner = $request->getParam('partner', $request->getParam('sPartner')); if (empty($referer) || strpos($referer, 'http') !== 0 || strpos($referer, $request->getHttpHost()) !== false || !empty(Shopware()->Session()->Admin)) { return; } Shopware()->Session()->sReferer = $referer; if ($partner !== null) { $referer .= '$' . $partner; } $sql = 'INSERT INTO s_statistics_referer (datum, referer) VALUES (NOW(), ?)'; Shopware()->Db()->query($sql, array($referer)); }
/** * Returns default image columns name * * @return array */ public function getDefaultColumns() { $path = $this->request->getScheme() . '://' . $this->request->getHttpHost() . $this->request->getBasePath() . '/media/image/'; $columns = ['mv.number as ordernumber', "CONCAT('{$path}', aimage.path, '.', aimage.extension) as image", 'aimage.main as main', 'aimage.description as description', 'aimage.position as position', 'aimage.width as width', 'aimage.height as height', "GroupConcat( im.id, '|', mr.optionId, '|' , co.name, '|', cg.name\n ORDER by im.id\n SEPARATOR ';' ) as relations", ' \'1\' as thumbnail']; return $columns; }
/** * Add context cookie * * @param Request $request * @param Response $response */ private function addContextCookie(Request $request, Response $response) { /** @var $session Enlight_Components_Session_Namespace */ $session = $this->get('session'); if ($session->offsetGet('sCountry')) { /** @var ProductContextInterface $productContext */ $productContext = $this->get('shopware_storefront.context_service')->getProductContext(); $userContext = sha1(json_encode($productContext->getTaxRules()) . json_encode($productContext->getCurrentCustomerGroup())); $response->setCookie('x-cache-context-hash', $userContext, 0, $request->getBasePath() . '/', $request->getHttpHost() == 'localhost' ? null : $request->getHttpHost()); } else { if ($request->getCookie('x-cache-context-hash')) { $response->setCookie('x-cache-context-hash', null, strtotime('-1 Year', time()), $request->getBasePath() . '/', $request->getHttpHost() == 'localhost' ? null : $request->getHttpHost()); } } }
/** * @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; }