Beispiel #1
0
 function getMenuParams($id)
 {
     static $params = array();
     if (!isset($params[$id])) {
         $params[$id] = AcesefUtility::getMenu()->getParams($id);
     }
     return $params[$id];
 }
Beispiel #2
0
 function getSefStatus()
 {
     static $status;
     if (!isset($status)) {
         $JoomlaConfig =& JFactory::getConfig();
         $status = array();
         $status['version_checker'] = (bool) $this->AcesefConfig->version_checker;
         $status['php'] = (bool) version_compare(PHP_VERSION, '5.2.0', '>');
         $status['s_mod_rewrite'] = '';
         if (function_exists('apache_get_modules')) {
             $modules = apache_get_modules();
             $status['s_mod_rewrite'] = (bool) in_array('mod_rewrite', $modules);
         }
         $status['sef'] = (bool) $JoomlaConfig->getValue('sef');
         $status['mod_rewrite'] = (bool) $JoomlaConfig->getValue('sef_rewrite');
         $status['htaccess'] = false;
         if (file_exists(JPATH_ROOT . DS . '.htaccess')) {
             $filesize = filesize(JPATH_ROOT . DS . '.htaccess');
             $status['htaccess'] = (bool) ($filesize > 2060);
         }
         $status['live_site'] = $JoomlaConfig->getValue('live_site');
         if (AcesefUtility::JoomFishInstalled()) {
             $status['jfrouter'] = JPluginHelper::isEnabled('system', 'jfrouter');
         }
         $status['acesef'] = (bool) $this->AcesefConfig->mode;
         $status['plugin'] = JPluginHelper::isEnabled('system', 'acesef');
         $status['generate_sef'] = (bool) $this->AcesefConfig->generate_sef;
     }
     return $status;
 }
Beispiel #3
0
 function determineLanguage($get_lang = null)
 {
     // Set the language for JoomFish
     if (AcesefUtility::JoomFishInstalled()) {
         $registry = JFactory::getConfig();
         // save the default language of the site if needed
         $locale = $registry->get('config.language');
         $GLOBALS['mosConfig_defaultLang'] = $locale;
         $registry->set("config.defaultlang", $locale);
         // Get language from request
         if (!empty($get_lang)) {
             $lang = $get_lang;
         }
         // Try to get language code from JF cookie
         if ($this->AcesefConfig->joomfish_cookie) {
             $jf_cookie = JRequest::getVar('jfcookie', null, 'COOKIE');
             if (isset($jf_cookie['lang'])) {
                 $cookieCode = $jf_cookie['lang'];
             }
         }
         // Try to find language from browser settings
         if ($this->AcesefConfig->joomfish_browser && isset($_SERVER['HTTP_ACCEPT_LANGUAGE']) && !empty($_SERVER['HTTP_ACCEPT_LANGUAGE']) && class_exists('JoomFishManager')) {
             $active_iso = array();
             $active_isocountry = array();
             $active_code = array();
             $active_languages = JoomFishManager::getInstance()->getActiveLanguages();
             if (count($active_languages) > 0) {
                 foreach ($active_languages as $a_lang) {
                     $active_iso[] = $a_lang->iso;
                     if (preg_match('/[_-]/i', $a_lang->iso)) {
                         $iso = str_replace('_', '-', $a_lang->iso);
                         $isocountry = explode('-', $iso);
                         $active_isocountry[] = $isocountry[0];
                     }
                     $active_code[] = $a_lang->shortcode;
                 }
                 // figure out which language to use - browser languages are based on ISO codes
                 $browser_lang = explode(',', $_SERVER["HTTP_ACCEPT_LANGUAGE"]);
                 foreach ($browser_lang as $b_lang) {
                     if (in_array($b_lang, $active_iso)) {
                         $client_lang = $b_lang;
                         break;
                     }
                     $short_lang = substr($b_lang, 0, 2);
                     if (in_array($short_lang, $active_isocountry)) {
                         $client_lang = $short_lang;
                         break;
                     }
                     // compare with code
                     if (in_array($short_lang, $active_code)) {
                         $client_lang = $short_lang;
                         break;
                     }
                 }
                 if (!empty($client_lang)) {
                     if (strlen($client_lang) == 2) {
                         $browser_code = self::getLangLongCode($client_lang);
                     } else {
                         $browser_code = $client_lang;
                     }
                 }
             }
         }
         // Check if language is selected
         if (empty($lang)) {
             if (empty($code) || !JLanguage::exists($code)) {
                 if ($this->AcesefConfig->joomfish_main_lang != '0') {
                     $code = self::getLangLongCode($this->AcesefConfig->joomfish_main_lang);
                 }
             }
             // Try to get language code from JF cookie
             if (empty($code) || !JLanguage::exists($code)) {
                 if (isset($cookieCode)) {
                     $code = $cookieCode;
                 }
             }
             // Try to get language from browser if needed
             if (empty($code) || !JLanguage::exists($code)) {
                 if (isset($browser_code)) {
                     $code = $browser_code;
                 }
             }
             // Get language from configuration if needed
             if (empty($code) || !JLanguage::exists($code)) {
                 if ($this->AcesefConfig->joomfish_main_lang != '0') {
                     $code = self::getLangLongCode($this->AcesefConfig->joomfish_main_lang);
                 }
             }
             // Get default language if needed
             if (empty($code) || !JLanguage::exists($code)) {
                 $code = $registry->get('config.language');
             }
         }
         // get language long code if needed
         if (empty($code)) {
             if (empty($lang)) {
                 return;
             }
             $code = self::getLangLongCode($lang);
         }
         if (!empty($code)) {
             // set the site language
             $reset_lang = false;
             if ($code != self::getLangLongCode()) {
                 $language = JFactory::getLanguage();
                 $language->setLanguage($code);
                 $language->load();
                 // set the backward compatible language
                 $back_lang = $language->getBackwardLang();
                 $GLOBALS['mosConfig_lang'] = $back_lang;
                 $registry->set("config.lang", $back_lang);
                 $reset_lang = true;
             }
             // set joomfish language if needed
             if ($reset_lang) {
                 $jf_lang = TableJFLanguage::createByJoomla($code);
                 $registry->set("joomfish.language", $jf_lang);
                 // set some more variables
                 $mainframe = JFactory::getApplication();
                 $registry->set("config.multilingual_support", true);
                 $mainframe->setUserState('application.lang', $jf_lang->code);
                 $registry->set("config.jflang", $jf_lang->code);
                 $registry->set("config.lang_site", $jf_lang->code);
                 $registry->set("config.language", $jf_lang->code);
                 $registry->set("joomfish.language", $jf_lang);
                 // overwrite global config with values from $jf_lang if set to in JoomFish
                 $jf_params = JComponentHelper::getParams("com_joomfish");
                 $overwriteGlobalConfig = $jf_params->get('overwriteGlobalConfig', 0);
                 if ($overwriteGlobalConfig) {
                     // We should overwrite additional global variables based on the language parameter configuration
                     $lang_params = new JParameter($jf_lang->params);
                     $param_array = $lang_params->toArray();
                     foreach ($param_array as $key => $val) {
                         $registry->set("config." . $key, $val);
                         if (defined("_JLEGACY")) {
                             $name = 'mosConfig_' . $key;
                             $GLOBALS[$name] = $val;
                         }
                     }
                 }
                 // set the cookie with language
                 if ($this->AcesefConfig->joomfish_cookie) {
                     setcookie("lang", "", time() - 1800, "/");
                     setcookie("jfcookie", "", time() - 1800, "/");
                     setcookie("jfcookie[lang]", $code, time() + 24 * 3600, '/');
                 }
             }
         }
     }
 }