Changeset 2127 for trunk/install.php


Ignore:
Timestamp:
Oct 9, 2007, 3:43:29 AM (17 years ago)
Author:
rvelices
Message:
  • PWG_CHARSET, DB_CHARSET and DB_COLLATE... utf-8 ready
File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/install.php

    r2124 r2127  
    2828define('PHPWG_ROOT_PATH','./');
    2929
    30 // Guess an initial language ...
    31 function guess_lang()
    32 {
    33   return 'en_UK.iso-8859-1';
    34 }
    35 
    3630//
    3731// Pick a language, any language ...
     
    3933function language_select($default, $select_name = "language")
    4034{
    41   $available_lang = get_languages();
     35  $available_lang = get_languages('utf-8');
    4236
    4337  $lang_select = '<select name="' . $select_name . '" onchange="document.location = \''.PHPWG_ROOT_PATH.'install.php?language=\'+this.options[this.selectedIndex].value;">';
     
    8579      if (!preg_match('/^DROP TABLE/i', $query))
    8680      {
     81        global $install_charset_collate;
     82        if ( !empty($install_charset_collate) )
     83        {
     84          if ( preg_match('/^(CREATE TABLE .*)[\s]*;[\s]*/im', $query, $matches) )
     85          {
     86            $query = $matches[1].' '.$install_charset_collate.';';
     87          }
     88        }
    8789        mysql_query($query);
    8890      }
     
    211213create_empty_local_files();
    212214
    213 if ( isset( $_POST['language'] ))
    214 {
    215   $language = strip_tags($_POST['language']);
    216 }
    217 elseif ( isset( $_GET['language'] ))
    218 {
    219   $language = strip_tags($_GET['language']);
    220 }
    221 else
    222 {
    223   $language = guess_lang();
    224 }
    225 
    226 if (!file_exists(PHPWG_ROOT_PATH.'language/'.$language.'/install.lang.php'))
    227 {
    228   $language = 'en_UK.iso-8859-1';
    229 }
    230 
    231 include( './language/'.$language.'/common.lang.php' );
    232 // Never: @include( './language/'.$language.'/local.lang.php' );
    233 include( './language/'.$language.'/admin.lang.php' );
    234 include( './language/'.$language.'/install.lang.php' );
     215if ( isset( $_REQUEST['language'] ))
     216{
     217  $language = strip_tags($_REQUEST['language']);
     218}
     219else
     220{
     221  $language = 'en_UK';
     222}
     223
     224load_language( 'common.lang', '', $language, false, 'utf-8' );
     225load_language( 'admin.lang', '', $language, false, 'utf-8' );
     226load_language( 'install.lang', '', $language, false, 'utf-8' );
     227
    235228//----------------------------------------------------- template initialization
    236 $template=setup_style('yoga');
     229$template=new Template(PHPWG_ROOT_PATH.'template/yoga');
    237230$template->set_filenames( array('install'=>'install.tpl') );
    238231$step = 1;
     
    252245      array_push( $errors, $lang['step1_err_db'] );
    253246    }
     247    if ( version_compare(mysql_get_server_info(), '4.1.0', '>=') )
     248    {
     249      $pwg_charset='utf-8';
     250      $pwg_db_charset='utf8';
     251      $install_charset_collate = "DEFAULT CHARACTER SET $pwg_db_charset";
     252    }
     253    else
     254    {
     255      $pwg_charset='iso-8859-1';
     256      $pwg_db_charset='latin1';
     257      $install_charset_collate = '';
     258      if ( !array_key_exists($language, get_languages($pwg_charset) ) )
     259      {
     260        $language='en_UK';
     261      }
     262    }
    254263  }
    255264  else
     
    257266    array_push( $errors, $lang['step1_err_server'] );
    258267  }
    259  
     268
    260269  $webmaster = trim(preg_replace( '/\s{2,}/', ' ', $admin_name ));
    261270  if ( empty($webmaster))
     
    267276  if ( empty($admin_mail))
    268277    array_push( $errors, $lang['reg_err_mail_address'] );
    269   else 
     278  else
    270279  {
    271280    $error_mail_address = validate_mail_address(null, $admin_mail);
     
    273282      array_push( $errors, $error_mail_address );
    274283  }
    275  
     284
    276285  if ( count( $errors ) == 0 )
    277286  {
     
    286295
    287296define(\'PHPWG_INSTALLED\', true);
     297define(\'PWG_CHARSET\', \''.$pwg_charset.'\');
     298define(\'DB_CHARSET\', \''.$pwg_db_charset.'\');
     299define(\'DB_COLLATE\', \'\');
     300
    288301?'.'>';
    289    
     302
    290303    @umask(0111);
    291304    // writing the configuration file
     
    303316    @fputs($fp, $file_content, strlen($file_content));
    304317    @fclose($fp);
    305    
     318
    306319    // tables creation, based on phpwebgallery_structure.sql
    307320    execute_sqlfile(
     
    325338      );
    326339    mass_inserts(SITES_TABLE, array_keys($insert), array($insert));
    327    
     340
    328341    // webmaster admin user
    329342    $inserts = array(
     
    371384  array(
    372385    'RELEASE'=>PHPWG_VERSION,
    373  
     386
    374387    'L_BASE_TITLE'=>$lang['Initial_config'],
    375388    'L_LANG_TITLE'=>$lang['Default_lang'],
     
    399412    'L_END_TITLE'=>$lang['install_end_title'],
    400413    'L_END_MESSAGE'=>$lang['install_end_message'],
    401    
     414
    402415    'F_ACTION'=>'install.php',
    403416    'F_DB_HOST'=>$dbhost,
     
    412425    'F_ADMIN_EMAIL'=>$admin_mail,
    413426    'F_LANG_SELECT'=>language_select($language),
    414    
    415     'T_CONTENT_ENCODING' => $lang_info['charset']
     427
     428    'T_CONTENT_ENCODING' => 'utf-8'
    416429    ));
    417430
Note: See TracChangeset for help on using the changeset viewer.