$user['language']) ); load_language('local.lang', '', array('language'=>$user['language'], 'no_fallback'=>true) ); if (defined('IN_ADMIN') and IN_ADMIN) { // Never currently load_language('admin.lang', '', array('language'=>$user['language']) ); } } } static public function _flags() { global $user, $template, $conf; $available_lang = get_languages(); if ( isset($conf['no_flag_languages']) ) $available_lang = array_diff_key($available_lang, array_flip($conf['no_flag_languages'])); $url_starting = $_SERVER['REQUEST_URI']; if ( isset( $_GET['lang']) ) { $pos = stripos ( $url_starting , '&lang=' ); if (is_numeric($pos) and $pos > 0) $url_starting = substr($url_starting, 0, $pos); } $pos = stripos($url_starting, script_basename()); if (is_numeric($pos)) $url_starting = substr($url_starting, $pos); foreach ( $available_lang as $code => $displayname ) { $qlc = array ( 'url' => add_url_params( $url_starting, array('lang'=> $code) ), 'alt' => ucwords( $displayname ), 'img' => 'plugins/language_switch/icons/' . $code . '.jpg', ); if ( $code !== $user['language'] and file_exists(PHPWG_ROOT_PATH.$qlc['img']) ) $lsw['flags'][$code] = $qlc ; else $lsw['Active'] = $qlc; } $template->set_filename('language_flags', dirname(__FILE__) . '/flags.tpl'); $lsw['side'] = ceil(sqrt(count($available_lang))); $template->assign(array( 'lang_switch'=> $lsw, 'LANGUAGE_SWITCH_PATH' => LANGUAGE_SWITCH_PATH, )); $flags = $template->parse('language_flags',true); $template->clear_assign('lang_switch'); $template->concat( 'PLUGIN_INDEX_ACTIONS', $flags); // TODO : Try to cache $flags and $user['language'] in $_SESSION for performance } } /* {html_head} usage function */ /* See flags.tpl for example (due no catenation available) */ if (!function_exists('Componant_exists')) { function Componant_exists($path, $file) { return file_exists( $path . $file); } } ?>