Beispiel #1
0
 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'];
     }
 }
Beispiel #2
0
 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');
     }
 }
Beispiel #3
0
 /**
  * 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;
 }