本文整理汇总了PHP中SEFTools::getLangCode方法的典型用法代码示例。如果您正苦于以下问题:PHP SEFTools::getLangCode方法的具体用法?PHP SEFTools::getLangCode怎么用?PHP SEFTools::getLangCode使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类SEFTools
的用法示例。
在下文中一共展示了SEFTools::getLangCode方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。
示例1: _determineLanguage
function _determineLanguage($getLang = null, $redir = false, $useMainLang = false)
{
// set the language for JoomFish
if (SEFTools::JoomFishInstalled()) {
$sefConfig =& SEFConfig::getConfig();
$registry =& JFactory::getConfig();
// Check if the Jfrouter is enabled
$jfrouterEnabled = JPluginHelper::isEnabled('system', 'jfrouter');
// save the default language of the site if needed
if (!$jfrouterEnabled) {
$locale = $registry->getValue('config.language');
$GLOBALS['mosConfig_defaultLang'] = $locale;
$registry->setValue("config.defaultlang", $locale);
}
// get instance of JoomFishManager to obtain active language list and config values
$jfm =& JoomFishManager::getInstance();
// Get language from request
if (!empty($getLang)) {
$lang = $getLang;
}
// Try to get language code from JF cookie
if ($sefConfig->jfLangCookie) {
$jfCookie = JRequest::getVar('jfcookie', null, 'COOKIE');
if (isset($jfCookie['lang'])) {
$cookieCode = $jfCookie['lang'];
}
}
// Try to find language from browser settings
if ($sefConfig->jfBrowserLang && isset($_SERVER['HTTP_ACCEPT_LANGUAGE']) && !empty($_SERVER['HTTP_ACCEPT_LANGUAGE'])) {
$active_iso = array();
$active_isocountry = array();
$active_code = array();
$activeLanguages = $jfm->getActiveLanguages();
if (count($activeLanguages) > 0) {
foreach ($activeLanguages as $alang) {
$active_iso[] = $alang->iso;
if (preg_match('/[_-]/i', $alang->iso)) {
$iso = str_replace('_', '-', $alang->iso);
$isocountry = explode('-', $iso);
$active_isocountry[] = $isocountry[0];
}
$active_code[] = $alang->shortcode;
}
// figure out which language to use - browser languages are based on ISO codes
$browserLang = explode(',', $_SERVER["HTTP_ACCEPT_LANGUAGE"]);
foreach ($browserLang as $blang) {
if (in_array($blang, $active_iso)) {
$client_lang = $blang;
break;
}
$shortLang = substr($blang, 0, 2);
if (in_array($shortLang, $active_isocountry)) {
$client_lang = $shortLang;
break;
}
// compare with code
if (in_array($shortLang, $active_code)) {
$client_lang = $shortLang;
break;
}
}
if (!empty($client_lang)) {
if (strlen($client_lang) == 2) {
$browserCode = SEFTools::getLangLongCode($client_lang);
} else {
$browserCode = $client_lang;
}
}
}
}
if (!$jfrouterEnabled && $redir && $sefConfig->langPlacement != _COM_SEF_LANG_DOMAIN && (isset($cookieCode) || isset($browserCode)) && $sefConfig->mainLanguage != '0') {
if (isset($cookieCode)) {
$sc = SEFTools::getLangCode($cookieCode);
} else {
$sc = SEFTools::getLangCode($browserCode);
}
// Check the referer to see if we should redirect
$shouldRedir = false;
if (isset($_SERVER['HTTP_REFERER'])) {
$refUri = new JURI($_SERVER['HTTP_REFERER']);
$uri = JURI::getInstance();
$refHost = $refUri->getHost();
$host = $uri->getHost();
if ($refHost != $host) {
$shouldRedir = true;
}
} else {
$shouldRedir = true;
}
if ($shouldRedir) {
if (!empty($lang) && $sc != $lang || empty($lang) && $sc != $sefConfig->mainLanguage) {
// Redirect to correct site
$mainframe =& JFactory::getApplication();
$href = JRoute::_('index.php?lang=' . $sc, false);
$mainframe->redirect($href);
exit;
}
}
}
// Check if language is selected
//.........这里部分代码省略.........