Changeset 11123


Ignore:
Timestamp:
May 31, 2011, 12:58:12 AM (9 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.