/** * Returns the locale item for the current request * * @param \Aimeos\MShop\Context\Item\Iface $context Context object * @param \TYPO3\Flow\Mvc\RequestInterface $request Request object * @return \Aimeos\MShop\Locale\Item\Iface Locale item object */ public function get(\Aimeos\MShop\Context\Item\Iface $context, \TYPO3\Flow\Mvc\RequestInterface $request) { if ($this->locale === null) { $params = $request->getArguments(); $site = isset($params['site']) ? $params['site'] : 'default'; $lang = isset($params['locale']) ? $params['locale'] : ''; $currency = isset($params['currency']) ? $params['currency'] : ''; $disableSites = (bool) (isset($this->settings['flow']['disableSites']) ? $this->settings['flow']['disableSites'] : true); $localeManager = \Aimeos\MShop\Locale\Manager\Factory::createManager($context); $this->locale = $localeManager->bootstrap($site, $lang, $currency, $disableSites); } return $this->locale; }
/** * Returns the fixed parameters that should be included in every URL * * @param \TYPO3\Flow\Mvc\RequestInterface $request Request object * @return array Associative list of site, language and currency if available */ protected function getFixedParams(\TYPO3\Flow\Mvc\RequestInterface $request) { $fixed = array(); $params = $request->getArguments(); if (isset($params['site'])) { $fixed['site'] = $params['site']; } if (isset($params['locale'])) { $fixed['locale'] = $params['locale']; } if (isset($params['currency'])) { $fixed['currency'] = $params['currency']; } return $fixed; }
/** * Adds the "url" helper to the view object * * @param \Aimeos\MW\View\Iface $view View object * @param \TYPO3\Flow\Mvc\Routing\UriBuilder $uriBuilder URL builder object * @param \TYPO3\Flow\Mvc\RequestInterface|null $request Request object * @return \Aimeos\MW\View\Iface Modified view object */ protected function addUrl(\Aimeos\MW\View\Iface $view, \TYPO3\Flow\Mvc\Routing\UriBuilder $uriBuilder, \TYPO3\Flow\Mvc\RequestInterface $request = null) { $fixed = array(); if ($request !== null) { $params = $request->getArguments(); if (isset($params['site'])) { $fixed['site'] = $params['site']; } if (isset($params['locale'])) { $fixed['locale'] = $params['locale']; } if (isset($params['currency'])) { $fixed['currency'] = $params['currency']; } } $helper = new \Aimeos\MW\View\Helper\Url\Flow($view, $uriBuilder, $fixed); $view->addHelper('url', $helper); return $view; }
/** * Returns the locale item for the current request * * @param \MShop_Context_Item_Interface $context Context object * @param \TYPO3\Flow\Mvc\RequestInterface $request Request object * @return \MShop_Locale_Item_Interface Locale item object */ protected function getLocale(\MShop_Context_Item_Interface $context, \TYPO3\Flow\Mvc\RequestInterface $request) { if ($this->locale === null) { $params = $request->getArguments(); $site = isset($params['site']) ? $params['site'] : 'default'; $lang = isset($params['locale']) ? $params['locale'] : ''; $currency = isset($params['currency']) ? $params['currency'] : ''; $disableSites = (bool) (isset($this->settings['flow']['disableSites']) ? $this->settings['flow']['disableSites'] : false); $localeManager = \MShop_Locale_Manager_Factory::createManager($context); $this->locale = $localeManager->bootstrap($site, $lang, $currency, $disableSites); } return $this->locale; }