- Timestamp:
- Mar 4, 2011, 11:41:36 AM (13 years ago)
- Location:
- trunk
- Files:
-
- 7 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/admin/include/languages.class.php
r8728 r9518 81 81 $query = ' 82 82 INSERT INTO '.LANGUAGES_TABLE.' 83 (id, name) 84 VALUES(\''.$language_id.'\', \''.$this->fs_languages[$language_id].'\') 83 (id, version, name) 84 VALUES(\''.$language_id.'\', 85 \''.$this->fs_languages[$language_id]['version'].'\', 86 \''.$this->fs_languages[$language_id]['name'].'\') 85 87 ;'; 86 88 pwg_query($query); … … 158 160 159 161 $dir = opendir(PHPWG_ROOT_PATH.'language'); 160 161 162 while ($file = readdir($dir)) 162 163 { 163 $path = PHPWG_ROOT_PATH.'language/'.$file; 164 if (!is_link($path) and is_dir($path) and file_exists($path.'/iso.txt')) 165 { 166 list($language_name) = @file($path.'/iso.txt'); 167 168 $languages[$file] = convert_charset($language_name, 'utf-8', $target_charset); 164 if ($file!='.' and $file!='..') 165 { 166 $path = PHPWG_ROOT_PATH.'language/'.$file; 167 if (is_dir($path) and !is_link($path) 168 and preg_match('/^[a-zA-Z0-9-_]+$/', $file ) 169 and file_exists($path.'/common.lang.php') 170 ) 171 { 172 $language = array( 173 'code'=>$file, 174 'version'=>'0', 175 'uri'=>'', 176 'author'=>'', 177 ); 178 $plg_data = implode( '', file($path.'/common.lang.php') ); 179 180 if ( preg_match("|Language Name: (.*)|", $plg_data, $val) ) 181 { 182 $language['name'] = trim( $val[1] ); 183 $language['name'] = convert_charset($language['name'], 'utf-8', $target_charset); 184 } 185 if (preg_match("|Version: (.*)|", $plg_data, $val)) 186 { 187 $language['version'] = trim($val[1]); 188 } 189 if ( preg_match("|Language URI: (.*)|", $plg_data, $val) ) 190 { 191 $language['uri'] = trim($val[1]); 192 } 193 if ( preg_match("|Author: (.*)|", $plg_data, $val) ) 194 { 195 $language['author'] = trim($val[1]); 196 } 197 if ( preg_match("|Author URI: (.*)|", $plg_data, $val) ) 198 { 199 $language['author uri'] = trim($val[1]); 200 } 201 if (!empty($language['uri']) and strpos($language['uri'] , 'extension_view.php?eid=')) 202 { 203 list( , $extension) = explode('extension_view.php?eid=', $language['uri']); 204 if (is_numeric($extension)) $language['extension'] = $extension; 205 } 206 // IMPORTANT SECURITY ! 207 $language = array_map('htmlspecialchars', $language); 208 $this->fs_languages[$file] = $language; 209 } 169 210 } 170 211 } 171 212 closedir($dir); 172 @ asort($languages);173 174 return $ languages;213 @uasort($this->fs_languages, 'name_compare'); 214 215 return $this->fs_languages; 175 216 } 176 217 … … 193 234 * Retrieve PEM server datas to $server_languages 194 235 */ 195 function get_server_languages( )236 function get_server_languages($new=false) 196 237 { 197 238 global $user; … … 224 265 { 225 266 return false; 267 } 268 269 // Languages to check 270 $languages_to_check = array(); 271 foreach($this->fs_languages as $fs_language) 272 { 273 if (isset($fs_language['extension'])) 274 { 275 $languages_to_check[] = $fs_language['extension']; 276 } 226 277 } 227 278 … … 234 285 ) 235 286 ); 287 if (!empty($languages_to_check)) 288 { 289 if ($new) 290 { 291 $get_data['extension_exclude'] = implode(',', $languages_to_check); 292 } 293 else 294 { 295 $get_data['extension_include'] = implode(',', $languages_to_check); 296 } 297 } 236 298 237 299 if (fetchRemote($url, $result, $get_data)) … … 244 306 foreach ($pem_languages as $language) 245 307 { 246 if (preg_match('/^.*? \[[A-Z]{2}\]$/', $language['extension_name']) 247 and !in_array($language['extension_name'], $this->fs_languages))248 {249 $this->server_languages[] = $language;250 251 }308 if (preg_match('/^.*? \[[A-Z]{2}\]$/', $language['extension_name'])) 309 { 310 $this->server_languages[$language['extension_name']] = $language; 311 } 312 } 313 @ksort($this->server_languages); 252 314 return true; 253 315 } … … 281 343 foreach ($list as $file) 282 344 { 283 // we search iso.txtin archive284 if (basename($file['filename']) == ' iso.txt'345 // we search common.lang.php in archive 346 if (basename($file['filename']) == 'common.lang.php' 285 347 and (!isset($main_filepath) 286 348 or strlen($file['filename']) < strlen($main_filepath))) … … 291 353 if (isset($main_filepath)) 292 354 { 293 $root = basename(dirname($main_filepath)); // iso.txtpath in archive355 $root = basename(dirname($main_filepath)); // common.lang.php path in archive 294 356 if (preg_match('/^[a-z]{2}_[A-Z]{2}$/', $root)) 295 357 { -
trunk/admin/languages_installed.php
r8728 r9518 55 55 $tpl_languages = array(); 56 56 57 foreach($languages->fs_languages as $language_id => $language _name)57 foreach($languages->fs_languages as $language_id => $language) 58 58 { 59 $language = array( 60 'id' => $language_id, 61 'name' => $language_name, 62 'u_action' => $base_url.'&language='.$language_id, 63 ); 59 $language['u_action'] = add_url_params($base_url, array('language' => $language_id)); 64 60 65 61 if (in_array($language_id, array_keys($languages->db_languages))) -
trunk/admin/languages_new.php
r8728 r9518 108 108 // | start template output | 109 109 // +-----------------------------------------------------------------------+ 110 if ($languages->get_server_languages( ))110 if ($languages->get_server_languages(true)) 111 111 { 112 112 foreach($languages->server_languages as $language) -
trunk/install.php
r8728 r9518 193 193 $language = 'en_UK'; 194 194 // Try to get browser language 195 foreach ($languages->fs_languages as $language_code => $ language_name)195 foreach ($languages->fs_languages as $language_code => $fs_language) 196 196 { 197 197 if (substr($language_code,0,2) == @substr($_SERVER["HTTP_ACCEPT_LANGUAGE"],0,2)) … … 341 341 342 342 // fill languages table 343 foreach ($languages->get_fs_languages() as $language_code => $ language_name)343 foreach ($languages->get_fs_languages() as $language_code => $fs_language) 344 344 { 345 345 $languages->perform_action('activate', $language_code); … … 418 418 $dbengines = available_engines(); 419 419 420 foreach ($languages->fs_languages as $language_code => $ language_name)420 foreach ($languages->fs_languages as $language_code => $fs_language) 421 421 { 422 422 if ($language == $language_code) … … 424 424 $template->assign('language_selection', $language_code); 425 425 } 426 $languages_options[$language_code] = $ language_name;426 $languages_options[$language_code] = $fs_language['name']; 427 427 } 428 428 $template->assign('language_options', $languages_options); -
trunk/install/db/90-database.php
r9086 r9518 50 50 $languages = new languages(PWG_CHARSET); 51 51 52 foreach ($languages->fs_languages as $language_code => $ language_name)52 foreach ($languages->fs_languages as $language_code => $fs_language) 53 53 { 54 54 $languages->perform_action('activate', $language_code); -
trunk/install/php5_apache_configuration.php
r8728 r9518 175 175 <td> 176 176 <select name="language" onchange="document.location = \''.$script.'.php?language=\'+this.options[this.selectedIndex].value;">'; 177 foreach ($languages->fs_languages as $code => $ name)177 foreach ($languages->fs_languages as $code => $fs_language) 178 178 { 179 179 echo ' 180 <option label="'.$ name.'" value="'.$code.'" '.($code == $language ? 'selected="selected"' : '') .'>'.$name.'</option>';180 <option label="'.$fs_language['name'].'" value="'.$code.'" '.($code == $language ? 'selected="selected"' : '') .'>'.$fs_language['name'].'</option>'; 181 181 } 182 182 echo ' -
trunk/upgrade.php
r8728 r9518 160 160 $language = 'en_UK'; 161 161 // Try to get browser language 162 foreach ($languages->fs_languages as $language_code => $ language_name)162 foreach ($languages->fs_languages as $language_code => $fs_language) 163 163 { 164 164 if (substr($language_code,0,2) == @substr($_SERVER["HTTP_ACCEPT_LANGUAGE"],0,2)) … … 401 401 $languages = new languages(); 402 402 403 foreach ($languages->fs_languages as $language_code => $ language_name)403 foreach ($languages->fs_languages as $language_code => $fs_language) 404 404 { 405 405 if ($language == $language_code) … … 407 407 $template->assign('language_selection', $language_code); 408 408 } 409 $languages_options[$language_code] = $ language_name;409 $languages_options[$language_code] = $fs_language['name']; 410 410 } 411 411 $template->assign('language_options', $languages_options);
Note: See TracChangeset
for help on using the changeset viewer.