/** * Returns the locale object for frontend * * @param \Aimeos\MShop\Context\Item\Iface $context Context object * @param \TYPO3\CMS\Extbase\Mvc\RequestInterface|null $request Request object * @return \Aimeos\MShop\Locale\Item\Iface Locale item object */ public static function get(\Aimeos\MShop\Context\Item\Iface $context, \TYPO3\CMS\Extbase\Mvc\RequestInterface $request = null) { if (!isset(self::$locale)) { $config = $context->getConfig(); $sitecode = $config->get('mshop/locale/site', 'default'); $name = $config->get('typo3/param/name/site', 'loc_site'); if ($request !== null && $request->hasArgument($name) === true) { $sitecode = $request->getArgument($name); } elseif (($value = \TYPO3\CMS\Core\Utility\GeneralUtility::_GP('S')) !== null) { $sitecode = $value; } $langid = $config->get('mshop/locale/language', ''); $name = $config->get('typo3/param/name/language', 'loc_language'); if ($request !== null && $request->hasArgument($name) === true) { $langid = $request->getArgument($name); } elseif (isset($GLOBALS['TSFE']->config['config']['language'])) { $langid = $GLOBALS['TSFE']->config['config']['language']; } $currency = $config->get('mshop/locale/currency', ''); $name = $config->get('typo3/param/name/currency', 'loc_currency'); if ($request !== null && $request->hasArgument($name) === true) { $currency = $request->getArgument($name); } elseif (($value = \TYPO3\CMS\Core\Utility\GeneralUtility::_GP('C')) !== null) { $currency = $value; } $localeManager = \Aimeos\MShop\Locale\Manager\Factory::createManager($context); self::$locale = $localeManager->bootstrap($sitecode, $langid, $currency); } return self::$locale; }
/** * Maps arguments delivered by the request object to the local controller arguments. * * @throws Exception\RequiredArgumentMissingException * @return void */ protected function mapRequestArgumentsToControllerArguments() { /** @var \TYPO3\CMS\Extbase\Mvc\Controller\Argument $argument */ foreach ($this->arguments as $argument) { $argumentName = $argument->getName(); if ($this->request->hasArgument($argumentName)) { $argument->setValue($this->request->getArgument($argumentName)); } elseif ($argument->isRequired()) { throw new \TYPO3\CMS\Extbase\Mvc\Controller\Exception\RequiredArgumentMissingException('Required argument "' . $argumentName . '" is not set for ' . $this->request->getControllerObjectName() . '->' . $this->request->getControllerActionName() . '.', 1298012500); } } }
/** * Returns the fixed parameters that should be included in every URL * * @param \MW_Config_Interface $config Config object * @param \TYPO3\CMS\Extbase\Mvc\RequestInterface $request Request object * @return array Associative list of site, language and currency if available */ protected static function getFixedParams(\MW_Config_Interface $config, \TYPO3\CMS\Extbase\Mvc\RequestInterface $request) { $fixed = array(); $name = $config->get('typo3/param/name/site', 'loc-site'); if ($request->hasArgument($name) === true) { $fixed[$name] = $request->getArgument($name); } $name = $config->get('typo3/param/name/language', 'loc-language'); if ($request->hasArgument($name) === true) { $fixed[$name] = $request->getArgument($name); } $name = $config->get('typo3/param/name/currency', 'loc-currency'); if ($request->hasArgument($name) === true) { $fixed[$name] = $request->getArgument($name); } return $fixed; }
/** * Returns the JSON encoded site item. * * @param \TYPO3\CMS\Extbase\Mvc\RequestInterface $request TYPO3 request object * @return string JSON encoded site item object * @throws Exception If no site item was found for the code */ protected function getSite(\TYPO3\CMS\Extbase\Mvc\RequestInterface $request) { $localeManager = \Aimeos\MShop\Locale\Manager\Factory::createManager($this->getContext()); $manager = $localeManager->getSubManager('site'); $site = 'default'; if ($request->hasArgument('site')) { $site = $request->getArgument('site'); } $criteria = $manager->createSearch(); $criteria->setConditions($criteria->compare('==', 'locale.site.code', $site)); $items = $manager->searchItems($criteria); if (($item = reset($items)) === false) { throw new Exception(sprintf('No site found for code "%1$s"', $site)); } return json_encode($item->toArray()); }
public function bindRequest(RequestInterface $request) { if ($request->hasArgument($this->getName())) { $this->setValue($request->getArgument($this->getName())); } }
/** * Determines if request holds a bookmark to restore and in case there is forwards it to restoreBookmark * * @param \TYPO3\CMS\Extbase\Mvc\RequestInterface $request */ public function processRequest(\TYPO3\CMS\Extbase\Mvc\RequestInterface $request) { if ($request->hasArgument('action') && $request->hasArgument('controller')) { if ($request->getArgument('action') == 'restore' && $request->getArgument('controller') == 'Bookmark' && $this->bookmarkIsRestored === FALSE) { if ($request->hasArgument('bookmark')) { $this->restoreBookmarkByUid($request->getArgument('bookmark')); } } } }