/** * Hook actionObjectLanguageAddAfter * @return array */ public function hookActionObjectLanguageAddAfter($aParams) { $oLanguages = $aParams['object']; if (Validate::isLoadedObject($oLanguages)) { $oNowLanguageLink = new NowLanguageLink(); $oNowLanguageLink->id_lang = $oLanguages->id; $oNowLanguageLink->folder_name = $oLanguages->iso_code; $oNowLanguageLink->save(); } }
/** * Set request uri and iso lang */ protected function setRequestUri() { // Get request uri (HTTP_X_REWRITE_URL is used by IIS) if (isset($_SERVER['REQUEST_URI'])) { $this->request_uri = $_SERVER['REQUEST_URI']; } else { if (isset($_SERVER['HTTP_X_REWRITE_URL'])) { $this->request_uri = $_SERVER['HTTP_X_REWRITE_URL']; } } $this->request_uri = rawurldecode($this->request_uri); if (isset(Context::getContext()->shop) && is_object(Context::getContext()->shop)) { $this->request_uri = preg_replace('#^' . preg_quote(Context::getContext()->shop->getBaseURI(), '#') . '#i', '/', $this->request_uri); } // If there are several languages, get language from uri if ($this->use_routes && Language::isMultiLanguageActivated()) { // Default Language $_GET['isolang'] = 'fr'; if (preg_match('#^/([a-z-]{2,20})(?:/.*)?$#', $this->request_uri, $m)) { $sIsoCode = NowLanguageLink::getIsoCodeByFolderName($m[1]); if ($sIsoCode) { $_GET['isolang'] = $sIsoCode; $this->request_uri = substr($this->request_uri, strlen($m[1]) + 1); } } } }
/** * Override method getLangLink for redirect "lang" link to method : getLangLink * * @module now_seo_links * * @param null $id_lang * @param string $controller * @param null $id_shop * @return string * @see LinkCore::getLangLink() */ protected function getLangLink($id_lang = null, Context $context = null, $id_shop = null) { if (!$context) { $context = Context::getContext(); } if (!$this->allow && in_array($id_shop, array($context->shop->id, null)) || !Language::isMultiLanguageActivated($id_shop) || !(int) Configuration::get('PS_REWRITING_SETTINGS', null, null, $id_shop)) { return ''; } if (!$id_lang) { $id_lang = $context->language->id; } $folder = NowLanguageLink::getFolderNameByIdlang($id_lang); if ($folder) { $folder .= '/'; } return $folder; }