private function getForm() { $request = $this->getRequest(); $language_id = $request->getQuery('id'); $model_language = new Model_Language(); if ($language_id) { $language_info = $model_language->getLanguage($language_id); } $countrycode = Model_Settings::getCountriesPairs(); $this->view->locale_territories = array(); $locale_territories = JO_Locale::listTerritory(); if ($locale_territories) { $sort_order = array(); foreach ($locale_territories as $iso2 => $lt) { if (isset($countrycode[$iso2])) { $sort_order[$lt] = $countrycode[$iso2]; $this->view->locale_territories[$lt] = array('code' => $lt, 'name' => $countrycode[$iso2]); } else { $sort_order[$lt] = $countrycode[$iso2]; $this->view->locale_territories[$lt] = array('code' => $lt, 'name' => $iso2); } } array_multisort($sort_order, SORT_ASC, $this->view->locale_territories); } $this->view->flags = $this->getFlags(); if ($request->getPost('name')) { $this->view->name = $request->getPost('name'); } elseif (isset($language_info)) { $this->view->name = $language_info['name']; } if ($request->getPost('code')) { $this->view->code = $request->getPost('code'); } elseif (isset($language_info)) { $this->view->code = $language_info['code']; } if ($request->getPost('locale')) { $this->view->locale = $request->getPost('locale'); } elseif (isset($language_info)) { $this->view->locale = $language_info['locale']; } if ($request->getPost('locale_territory')) { $this->view->locale_territory = $request->getPost('locale_territory'); } elseif (isset($language_info)) { $this->view->locale_territory = $language_info['locale_territory']; } if ($request->getPost('image')) { $this->view->image = $request->getPost('image'); } elseif (isset($language_info)) { $this->view->image = $language_info['image']; } if ($request->getPost('status')) { $this->view->status = $request->getPost('status'); } elseif (isset($language_info)) { $this->view->status = $language_info['status']; } }
public function _initLocale() { $request = JO_Request::getInstance(); if ($request->getModule() == 'install') { return ''; } $locale_get = JO_Locale::findLocale(); $loc = new WM_Locale(); $languages = $loc->getLanguages(); $detect = ''; $languages_tmp = array(); foreach ($languages as $language) { // $lang = explode(',', $language['locale']); // if(in_array($locale_get, $lang)) { // $detect = $language['language_id']; // } $languages_tmp[$language['language_id']] = $language; } $code = ''; if ($request->getRequest('language_id') && array_key_exists($request->getRequest('language_id'), $languages_tmp)) { $code = $request->getRequest('language_id'); } elseif (JO_Session::get('language_id') && array_key_exists(JO_Session::get('language_id'), $languages_tmp)) { $code = JO_Session::get('language_id'); } elseif ($request->getCookie('language_id') && array_key_exists($request->getCookie('language_id'), $languages_tmp)) { $code = $request->getCookie('language_id'); } elseif ($detect) { $code = $detect; } elseif (JO_Registry::isRegistered('config_language_id')) { $code = JO_Registry::get('config_language_id'); } // if($request->getModule() == 'admin') { // $code = JO_Registry::get('config_language_id'); // } if (!$code) { throw new JO_Exception("No default language found"); } if (JO_Session::get('language_id') != $code) { JO_Session::set('language_id', $code); } if ($request->getCookie('language_id') != $code) { setcookie('language_id', $code, time() + 60 * 60 * 24 * 30, '/', '.' . $request->getDomain()); } if (isset($languages_tmp[$code])) { JO_Registry::set('config_language_id', $languages_tmp[$code]['language_id']); JO_Registry::set('config_language', $languages_tmp[$code]['code']); JO_Registry::set('JO_Locale', new JO_Locale($languages_tmp[$code]['locale_territory'])); setlocale(LC_TIME, $languages_tmp[$code]['locale_territory'] . '.utf-8'); } }
/** * Search the locale automatically and return all used locales * ordered by quality * * Standard Searchorder is Browser, Environment, Default * * @param string $searchorder (Optional) Searchorder * @return array Returns an array of all detected locales */ public static function getOrder($order = null) { switch ($order) { case self::JODEFAULT: self::$_breakChain = true; $languages = self::getDefault() + self::getBrowser(); break; default: self::$_breakChain = true; $languages = self::getBrowser() + self::getDefault(); break; } return $languages; }