Changeset 11123 for trunk/plugins
- Timestamp:
- May 31, 2011, 12:58:12 AM (13 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/plugins/language_switch/language_switch.inc.php
r9906 r11123 21 21 // | USA. | 22 22 // +-----------------------------------------------------------------------+ 23 23 24 if (!defined('LANGUAGE_SWITCH_PATH')) 24 define('LANGUAGE_SWITCH_PATH' , PHPWG_PLUGINS_PATH . basename(dirname(__FILE__)) . '/'); 25 class language_controler { 25 { 26 define('LANGUAGE_SWITCH_PATH' , PHPWG_PLUGINS_PATH.basename(dirname(__FILE__)).'/'); 27 } 28 29 class language_controler 30 { 26 31 static public function _switch() 27 32 { 28 33 global $user; 29 if (!defined('PHPWG_ROOT_PATH')) { die('Hacking attempt!'); } 34 35 if (!defined('PHPWG_ROOT_PATH')) 36 { 37 die('Hacking attempt!'); 38 } 39 30 40 $same = $user['language']; 31 if ( isset( $_GET['lang']) ) { 32 if ( !empty($_GET['lang'] ) and file_exists( PHPWG_ROOT_PATH.'language/' 33 . $_GET['lang'].'/common.lang.php') ) { 34 if (is_a_guest() or is_generic()) { 35 pwg_set_session_var( 'lang_switch', $_GET['lang'] ); 36 } else { 37 $query = 'UPDATE '.USER_INFOS_TABLE.' 38 SET language = \''.$_GET['lang'].'\' 39 WHERE user_id = '.$user['id'].' 40 ;'; 41 42 if (isset($_GET['lang'])) 43 { 44 if (!empty($_GET['lang']) and file_exists(PHPWG_ROOT_PATH.'language/'.$_GET['lang'].'/common.lang.php')) 45 { 46 if (is_a_guest() or is_generic()) 47 { 48 pwg_set_session_var('lang_switch', $_GET['lang']); 49 } 50 else 51 { 52 $query = ' 53 UPDATE '.USER_INFOS_TABLE.' 54 SET language = \''.$_GET['lang'].'\' 55 WHERE user_id = '.$user['id'].' 56 ;'; 41 57 pwg_query($query); 42 58 } 59 43 60 $user['language'] = $_GET['lang']; 44 61 } 45 62 } 46 elseif ((is_a_guest() or is_generic())) { 47 $user['language'] = pwg_get_session_var( 'lang_switch', $user['language'] ); 63 elseif ((is_a_guest() or is_generic())) 64 { 65 $user['language'] = pwg_get_session_var('lang_switch', $user['language']); 48 66 } 49 // Reload language only if it isn't the same one 50 if ( $same !== $user['language']) { 51 load_language('common.lang', '', array('language'=>$user['language']) ); 52 load_language('lang', PHPWG_ROOT_PATH.PWG_LOCAL_DIR, 53 array('language'=>$user['language'], 'no_fallback'=>true, 'local'=>true) 54 ); 55 if (defined('IN_ADMIN') and IN_ADMIN) { // Never currently 56 load_language('admin.lang', '', array('language'=>$user['language']) ); 67 68 // Reload language only if it isn't the same one 69 if ( $same !== $user['language']) 70 { 71 load_language('common.lang', '', array('language'=>$user['language'])); 72 73 load_language( 74 'lang', 75 PHPWG_ROOT_PATH.PWG_LOCAL_DIR, 76 array( 77 'language' => $user['language'], 78 'no_fallback' => true, 79 'local' => true 80 ) 81 ); 82 83 if (defined('IN_ADMIN') and IN_ADMIN) 84 { 85 // Never currently 86 load_language('admin.lang', '', array('language'=>$user['language'])); 57 87 } 58 88 } 59 89 } 90 60 91 static public function _flags() 61 92 { 62 93 global $user, $template, $conf; 94 63 95 $available_lang = get_languages(); 64 if ( isset($conf['no_flag_languages']) ) 65 $available_lang = 66 array_diff_key($available_lang, array_flip($conf['no_flag_languages'])); 96 97 if (isset($conf['no_flag_languages'])) 98 { 99 $available_lang = array_diff_key($available_lang, array_flip($conf['no_flag_languages'])); 100 } 101 67 102 $url_starting = get_query_string_diff(array('lang')); 68 foreach ( $available_lang as $code => $displayname ) { 103 104 foreach ($available_lang as $code => $displayname) 105 { 69 106 $qlc = array ( 70 'url' => str_replace(array('=&','?&'),array('&','?'), 71 add_url_params( $url_starting, array('lang'=> $code) )), 72 'alt' => ucwords( $displayname ), 107 'url' => str_replace( 108 array('=&','?&'), 109 array('&','?'), 110 add_url_params($url_starting, array('lang'=> $code)) 111 ), 112 'alt' => ucwords($displayname), 73 113 'title' => substr($displayname, 0, -4), // remove [FR] or [RU] 74 'img' => get_root_url().'language/' . $code . '/' . $code .'.jpg',114 'img' => get_root_url().'language/'.$code.'/'.$code.'.jpg', 75 115 ); 76 116 … … 82 122 } 83 123 } 124 84 125 $template->set_filename('language_flags', dirname(__FILE__) . '/flags.tpl'); 126 85 127 $lsw['side'] = ceil(sqrt(count($available_lang))); 86 $template->assign(array( 87 'lang_switch'=> $lsw, 88 'LANGUAGE_SWITCH_PATH' => LANGUAGE_SWITCH_PATH, 89 )); 128 129 $template->assign( 130 array( 131 'lang_switch'=> $lsw, 132 'LANGUAGE_SWITCH_PATH' => LANGUAGE_SWITCH_PATH, 133 ) 134 ); 135 90 136 $flags = $template->parse('language_flags',true); 91 137 $template->clear_assign('lang_switch'); … … 93 139 } 94 140 } 141 95 142 /* {html_head} usage function */ 96 143 /* See flags.tpl for example (due no catenation available) */ 97 if (!function_exists('Componant_exists')) { 144 if (!function_exists('Componant_exists')) 145 { 98 146 function Componant_exists($path, $file) 99 { return file_exists( $path . $file); } 147 { 148 return file_exists( $path . $file); 149 } 100 150 } 101 151
Note: See TracChangeset
for help on using the changeset viewer.