Changeset 145 for trunk


Ignore:
Timestamp:
02/27/2006 05:41:32 AM (6 years ago)
Author:
Winner
Message:

Add: Language selection from GUI. Closes #89
Fix: 2 english language addition from changeset [144].

Location:
trunk
Files:
4 added
10 edited

Legend:

Unmodified
Added
Removed
  • trunk/config-sample/config.php

    r143 r145  
    3131                 
    3232        'language' => array( 
    33                 'default' => 'greek' 
     33                'default' => 'greek', 
     34                'enabled' => array( 
     35                        'greek' => TRUE, 
     36                        'english' => TRUE) 
    3437                ), 
    3538                 
  • trunk/globals/classes/userdata.php

    r119 r145  
    3232        var $username_key = "username"; 
    3333        var $password_key = "password"; 
    34         var $info_keys = "username, name, surname, date_in, last_visit, last_session, status"; 
     34        var $info_keys = "username, name, surname, date_in, last_visit, last_session, status, language"; 
    3535        var $last_session_key = "last_session"; 
    3636        var $last_visit_key = "last_visit"; 
  • trunk/globals/common.php

    r143 r145  
    6161} 
    6262 
    63 //INCLUDE LANGUAGE 
    64 if (get('lang') != '') { 
    65         $tl = get('lang'); 
    66 } elseif ($_SESSION['lang'] != '') { 
    67         $tl = $_SESSION['lang']; 
    68 } else { 
    69         $tl = $vars['language']['default']; 
    70 } 
    71 include_once(ROOT_PATH."globals/language/".$tl.".php"); 
    72 if (file_exists(ROOT_PATH."config/language/".$tl."_overwrite.php")) { 
    73         include_once(ROOT_PATH."config/language/".$tl."_overwrite.php"); 
    74         $lang = array_multimerge($lang, $lang_overwrite); 
    75 } 
    76 // Set-up mbstring's internal encoding (mainly for supporting UTF-8) 
    77 mb_internal_encoding($lang['charset']); 
    78  
    7963$db = new mysql($vars['db']['server'], $vars['db']['username'], $vars['db']['password'], $vars['db']['database']); 
    80  
    81 if($vars['db']['version']>=4.1) 
    82         $db->query("SET NAMES '".$lang['mysql_charset']."'"); 
    8364 
    8465if ($db->error) { 
  • trunk/globals/functions.php

    r143 r145  
    7272                        array_unshift($valid_array, ''); 
    7373                        break; 
    74                 case 'lang': 
    75                         $valid_array = getdirlist(ROOT_PATH."globals/language/", FALSE, TRUE); 
    76                         for ($key=0;$key<count($valid_array);$key++) { 
    77                                 $valid_array[$key] = basename($valid_array[$key], '.php'); 
    78                         } 
    79                         array_unshift($valid_array, ''); 
    80                         break; 
    8174        } 
    8275        if (isset($valid_array) && !in_array($ret, $valid_array)) $ret = $valid_array[0]; 
     
    336329} 
    337330 
     331function language_set($language='', $force=FALSE) { 
     332        global $vars, $db, $lang; 
     333        if ($force) { 
     334                $tl = $lang; 
     335        } elseif (get('lang') != '') { 
     336                $tl = get('lang'); 
     337        } elseif ($_SESSION['lang'] != '') { 
     338                $tl = $_SESSION['lang']; 
     339        } elseif ($language != '') { 
     340                $tl = $language; 
     341        } else { 
     342                $tl = $vars['language']['default']; 
     343        } 
     344         
     345        if ($vars['language']['enabled'][$tl] === TRUE &&  
     346                        file_exists(ROOT_PATH."globals/language/".$tl.".php")) { 
     347 
     348                include_once(ROOT_PATH."globals/language/".$tl.".php"); 
     349                if (file_exists(ROOT_PATH."config/language/".$tl."_overwrite.php")) { 
     350                        include_once(ROOT_PATH."config/language/".$tl."_overwrite.php"); 
     351                        $lang = array_multimerge($lang, $lang_overwrite); 
     352                } 
     353                // Set-up mbstring's internal encoding (mainly for supporting UTF-8) 
     354                mb_internal_encoding($lang['charset']); 
     355                 
     356                // Set-up NAMES on database system 
     357                if($vars['db']['version']>=4.1) 
     358                        $db->query("SET NAMES '".$lang['mysql_charset']."'"); 
     359 
     360        } else { 
     361 
     362                if ($tl == $_SESSION['lang']) unset($_SESSION['lang']); 
     363                die("WiND error: Selected language not found."); 
     364 
     365        } 
     366} 
    338367?> 
  • trunk/globals/language/english.php

    r140 r145  
    3737        'home' => "Home", 
    3838        'edit_profile' => "User profile", 
     39        'edit_node' => "Node edit", 
    3940        'log_out' => "Log out", 
    4041        'login' => "Log in", 
     
    7677        'node' => "Node", 
    7778        'node_info' => "Node info", 
     79        'node_view' => "Node view", 
    7880        'node_delete' => "Delete node", 
    7981        'ip_range_request' => "IP C-Class request", 
     
    156158        'backbone_nodes' => "Backbone nodes", 
    157159        'null' => "(null)", 
     160        'default' => 'Default', 
     161        'logged' => 'Logged in as', 
    158162 
    159163        'db' => array( 
     
    169173                'users__status-pending' => 'Pending', 
    170174                'users__status-activated' => 'Activated', 
     175                'users__language' => 'Language', 
    171176                'fullname' => 'Full Name', 
    172177                 
     
    606611                        'body' => 'In this page you can send a message to the administrator(s) of the node. Your e-mail address will appear to your message, so that you can get a reply from the receiver(s). Each reply to your message will be sent to your e-mail address and will contain the e-mail address of the sender(s), so that you can reply to them back.' 
    607612                ) 
     613        ), 
     614         
     615        'languages' => array( 
     616                'greek' => 'Greek', 
     617                'english' => 'English' 
    608618        ) 
    609619 
  • trunk/globals/language/greek.php

    r144 r145  
    206206        'backbone_nodes' => "Backbone κόΌβοι", 
    207207        'null' => "(ΚεΜό)", 
     208        'default' => "ΠροεπιλεγΌέΜη", 
     209        'logged' => "ΣύΜΎεση ως", 
    208210 
    209211        'db' => array( 
     
    220222                'users__status-pending' => 'Σε αΜαΌοΜή', 
    221223                'users__status-activated' => 'ΕΜεργοποιηΌέΜη', 
     224                'users__language' => 'Γλώσσα', 
    222225                'fullname' => 'ΟΜοΌατεπώΜϠ
    223226Όο', 
     
    950953ΎροΌείο.' 
    951954                ) 
     955        ), 
     956         
     957        'languages' => array( 
     958                'greek' => 'ΕλληΜικά', 
     959                'english' => 'Αγγλικά' 
    952960        ) 
    953961 
  • trunk/includes/main.php

    r143 r145  
    5151                global $lang; 
    5252                 
     53                if (get('session_lang') != '') $_SESSION['lang'] = get('session_lang'); 
     54                language_set($this->userdata->info['language']); 
     55                 
    5356                $this->html->head->add_title($lang['site_title']); 
    5457                $this->html->head->add_meta("text/html; charset=".$lang['charset'], "", "Content-Type"); 
  • trunk/includes/main_menu.php

    r144 r145  
    3434                if ($this->hide) return; 
    3535                if ($_SERVER['REQUEST_METHOD'] == 'POST' && method_exists($this, 'output_onpost_'.$_POST['form_name'])) call_user_func(array($this, 'output_onpost_'.$_POST['form_name'])); 
    36                 global $construct, $main, $db; 
     36                global $construct, $main, $db, $vars, $lang; 
    3737                $this->tpl['logged'] = $main->userdata->logged; 
    3838                $this->tpl['form_login'] = $construct->form($this->form_login(), __FILE__); 
    39                 $main->html->dody->tpl['form_login'] = $this->tpl['form_login']; 
     39                 
     40                $main->html->body->tpl['form_login'] = $this->tpl['form_login']; 
     41                $main->html->body->tpl['logged_username'] = $main->userdata->info['username']; 
     42                $main->html->body->tpl['link_logged_profile'] = makelink(array("page" => "users", "user" => $main->userdata->user)); 
     43                 
     44                foreach($vars['language']['enabled'] as $key => $value) { 
     45                        if ($value) { 
     46                                $main->html->body->tpl['languages'][$key]['name'] = ($lang['languages'][$key]==''?$key:$lang['languages'][$key]); 
     47                                $main->html->body->tpl['languages'][$key]['link'] = makelink(array("session_lang" => $key), TRUE); 
     48                        } 
     49                } 
     50                 
    4051                if ($main->userdata->logged) { 
    4152                        $this->tpl = array_merge($this->tpl, $main->userdata->info); 
  • trunk/includes/pages/users/users.php

    r143 r145  
    3434         
    3535        function form_user() { 
    36                 global $main, $db; 
     36                global $main, $db, $vars, $lang; 
    3737                $form_user = new form(array('FORM_NAME' => 'form_user')); 
    3838                $form_user->db_data('users.username, users.password, users.surname, users.name, users.email, users.phone, users.info'.($main->userdata->privileges['admin'] === TRUE?', rights.type, users.status':'')); 
    39                 $form_user->db_data_values("users", "id", get('user')); 
    4039                // Hide password... 
    4140                $form_user->data[1]['value'] = ''; 
     
    5453                        $form_user->db_data_pickup("users_nodes.node_id", "nodes", $db->get("nodes.id AS value, CONCAT(nodes.name, ' (#', nodes.id, ')') AS output", "users_nodes, nodes", "nodes.id = users_nodes.node_id AND users_nodes.user_id = '".get('user')."' AND users_nodes.owner != 'Y'"), TRUE);            
    5554                } 
     55                $form_user->db_data('users.language'); 
     56                $form_user->data[12]['Type'] = 'enum'; 
     57                $form_user->data[12]['Null'] = ''; 
     58                $form_user->data[12]['Type_Enums'][0] = array("value" => "", "output" => $lang['default']); 
     59                foreach($vars['language']['enabled'] as $key => $value) { 
     60                        if ($value) array_push($form_user->data[12]['Type_Enums'], array("value" => $key, "output" => ($lang['languages'][$key]==''?$key:$lang['languages'][$key]))); 
     61                } 
     62                $form_user->db_data_values("users", "id", get('user')); 
     63                $form_user->data[1]['value'] = ''; 
    5664                return $form_user; 
    5765        } 
  • trunk/templates/basic/includes/body.tpl

    r19 r145  
    3434    <td class="table-middle-right-td"> 
    3535        <table border="0" cellpadding="0" cellspacing="0" class="table-middle-right"> 
    36   {if $menu != '' && $form_login != '' && $logged != TRUE} 
    37                 <tr><td class="quick-login"> 
    38                 {$form_login} 
    39                 </td></tr> 
    40   {/if} 
    41                 <tr><td class="main-page"> 
    42     {if $message==''} 
    43                 {$center} 
    44     {else} 
    45         <table width="100%" border="0" cellpadding="50" cellspacing="0"> 
    46         <tr><td align="center"> 
    47         {$message} 
    48         </td></tr> 
    49         </table> 
    50     {/if} 
    51         </td></tr> 
     36        {if $menu != ''} 
     37                <tr> 
     38                        <td class="quick-login" width="100%"> 
     39                        {if $logged} 
     40                                {include file="includes/main_menu_logged.tpl"} 
     41                        {else} 
     42                                {$form_login} 
     43                        {/if} 
     44                        </td> 
     45                        <td nowrap="nowrap" class="quick-login-field"> 
     46                                {foreach key=key item=item from=$languages} 
     47                                <a href="{$item.link}"><img alt="{$item.name}" src="{$img_dir}flags/{$key}.gif" /></a>  
     48                                {/foreach} 
     49                        </td> 
     50                </tr> 
     51          {/if} 
     52                <tr> 
     53                        <td class="main-page" colspan="2"> 
     54                        {if $message==''} 
     55                                        {$center} 
     56                        {else} 
     57                                <table width="100%" border="0" cellpadding="50" cellspacing="0"> 
     58                                        <tr> 
     59                                                <td align="center"> 
     60                                                        {$message} 
     61                                                </td> 
     62                                        </tr> 
     63                                </table> 
     64                        {/if} 
     65                        </td> 
     66                </tr> 
    5267        </table> 
    53  
    54 </td></tr> 
     68         
     69        </td> 
     70</tr> 
    5571     
    5672  {if $footer != ''} 
Note: See TracChangeset for help on using the changeset viewer.