Changeset 11123


Ignore:
Timestamp:
05/31/11 00:58:12 (8 years ago)
Author:
plg
Message:

refactor language switch PHP code to make it readable

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/plugins/language_switch/language_switch.inc.php

    r9906 r11123  
    2121// | USA.                                                                  | 
    2222// +-----------------------------------------------------------------------+ 
     23 
    2324if (!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 
     29class language_controler 
     30{ 
    2631  static public function _switch() 
    2732  { 
    2833    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     
    3040    $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 = ' 
     53UPDATE '.USER_INFOS_TABLE.' 
     54  SET language = \''.$_GET['lang'].'\' 
     55  WHERE user_id = '.$user['id'].' 
     56;'; 
    4157          pwg_query($query); 
    4258        } 
     59         
    4360        $user['language'] = $_GET['lang']; 
    4461      } 
    4562    } 
    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']); 
    4866    } 
    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'])); 
    5787      } 
    5888    } 
    5989  } 
     90   
    6091  static public function _flags() 
    6192  { 
    6293    global $user, $template, $conf; 
     94     
    6395    $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     
    67102    $url_starting = get_query_string_diff(array('lang')); 
    68     foreach ( $available_lang as $code => $displayname ) { 
     103     
     104    foreach ($available_lang as $code => $displayname) 
     105    { 
    69106      $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), 
    73113        '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', 
    75115        ); 
    76116       
     
    82122      } 
    83123    } 
     124     
    84125    $template->set_filename('language_flags', dirname(__FILE__) . '/flags.tpl'); 
     126     
    85127    $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     
    90136    $flags = $template->parse('language_flags',true); 
    91137    $template->clear_assign('lang_switch'); 
     
    93139  } 
    94140} 
     141 
    95142  /* {html_head} usage function */ 
    96143  /* See flags.tpl for example (due no catenation available) */ 
    97 if (!function_exists('Componant_exists')) { 
     144if (!function_exists('Componant_exists')) 
     145{ 
    98146  function Componant_exists($path, $file) 
    99     { return file_exists( $path . $file); } 
     147  { 
     148    return file_exists( $path . $file); 
     149  } 
    100150} 
    101151 
Note: See TracChangeset for help on using the changeset viewer.