[ Index ]
 

Code source de XOOPS 2.0.17.1

Accédez au Source d'autres logiciels libres

title

Body

[fermer]

/htdocs/install/ -> index.php (source)

   1  <?php
   2  // $Id: index.php 1074 2007-10-11 15:21:11Z phppp $

   3  //  ------------------------------------------------------------------------ //

   4  //                XOOPS - PHP Content Management System                      //

   5  //                    Copyright (c) 2000 XOOPS.org                           //

   6  //                       <http://www.xoops.org/>                             //

   7  //  ------------------------------------------------------------------------ //

   8  //  This program is free software; you can redistribute it and/or modify     //

   9  //  it under the terms of the GNU General Public License as published by     //

  10  //  the Free Software Foundation; either version 2 of the License, or        //

  11  //  (at your option) any later version.                                      //

  12  //                                                                           //

  13  //  You may not change or alter any portion of this comment or credits       //

  14  //  of supporting developers from this source code or any supporting         //

  15  //  source code which is considered copyrighted (c) material of the          //

  16  //  original comment or credit authors.                                      //

  17  //                                                                           //

  18  //  This program is distributed in the hope that it will be useful,          //

  19  //  but WITHOUT ANY WARRANTY; without even the implied warranty of           //

  20  //  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the            //

  21  //  GNU General Public License for more details.                             //

  22  //                                                                           //

  23  //  You should have received a copy of the GNU General Public License        //

  24  //  along with this program; if not, write to the Free Software              //

  25  //  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA //

  26  //  ------------------------------------------------------------------------ //

  27  
  28  error_reporting (0);
  29  
  30  include_once  './passwd.php';
  31  if(INSTALL_USER != '' || INSTALL_PASSWD != ''){
  32      if (!isset($_SERVER['PHP_AUTH_USER'])) {
  33          header('WWW-Authenticate: Basic realm="XOOPS Installer"');
  34          header('HTTP/1.0 401 Unauthorized');
  35          echo 'You can not access this XOOPS installer.';
  36          exit;
  37      } else {
  38          if(INSTALL_USER != '' && $_SERVER['PHP_AUTH_USER'] != INSTALL_USER){
  39              header('HTTP/1.0 401 Unauthorized');
  40              echo 'You can not access this XOOPS installer.';
  41              exit;
  42          }
  43          if(INSTALL_PASSWD != $_SERVER['PHP_AUTH_PW']){
  44              header('HTTP/1.0 401 Unauthorized');
  45              echo 'You can not access this XOOPS installer.';
  46              exit;
  47          }
  48      }
  49  }
  50  
  51  include_once  './class/textsanitizer.php';
  52  $myts =& TextSanitizer::getInstance();
  53  
  54  if ( isset($_POST) ) {
  55      foreach ($_POST as $k=>$v) {
  56          if (!is_array($v)) {
  57              $$k = $myts->stripSlashesGPC($v);
  58          }
  59      }
  60  }
  61  
  62  $language = 'english';
  63  if ( !empty($_POST['lang']) ) {
  64      $language = $_POST['lang'];
  65  } else {
  66      if (isset($_COOKIE['install_lang'])) {
  67          $language = $_COOKIE['install_lang'];
  68      } else {
  69          //$_SERVER['HTTP_ACCEPT_LANGUAGE'] = 'ja,en-us;q=0.7,zh-TW;q=0.6';

  70          if (isset($_SERVER['HTTP_ACCEPT_LANGUAGE'])) {
  71              $accept_langs = explode(',', $_SERVER['HTTP_ACCEPT_LANGUAGE']);
  72              $language_array = array('en' => 'english', 'ja' => 'japanese', 'fr' => 'french', 'de' => 'german', 'nl' => 'dutch', 'es' => 'spanish', 'tw' => 'tchinese', 'cn' => 'schinese', 'ro' => 'romanian');
  73              foreach ($accept_langs as $al) {
  74                  $al = strtolower($al);
  75                  $al_len = strlen($al);
  76                  if ($al_len > 2) {
  77                      if (preg_match("/([a-z]{2});q=[0-9.]+$/", $al, $al_match)) {
  78                          $al = $al_match[1];
  79                      } else {
  80                          continue;
  81                      }
  82                  }
  83                  if (isset($language_array[$al])) {
  84                      $language = $language_array[$al];
  85                      break;
  86                  }
  87              }
  88          }
  89      }
  90  }
  91  
  92  if ( file_exists("./language/".$language."/install.php") ) {
  93      include_once "./language/".$language."/install.php";
  94  } elseif ( file_exists("./language/english/install.php") ) {
  95      include_once  "./language/english/install.php";
  96      $language = 'english';
  97  } else {
  98      echo 'no language file.';
  99      exit();
 100  }
 101  setcookie("install_lang", $language);
 102  
 103  //include './include/viewerrors.php';

 104  //include './include/functions.php';

 105  
 106  define('_OKIMG',"<img src='img/yes.gif' width='6' height='12' border='0' alt='' /> ");
 107  define('_NGIMG',"<img src='img/no.gif' width='6' height='12' border='0' alt='' /> ");
 108  
 109  $b_back = '';
 110  $b_reload = '';
 111  $b_next = '';
 112  
 113  // options for mainfile.php

 114  $xoopsOption['nocommon'] = true;
 115  define('XOOPS_INSTALL', 1);
 116  
 117  if(!empty($_POST['op']))
 118      $op = $_POST['op'];
 119  elseif(!empty($_GET['op']))
 120      $op = $_GET['op'];
 121  else
 122      $op = '';
 123  
 124  ///// main

 125  switch ($op) {
 126  
 127  default:
 128  case "langselect":
 129      $title = _INSTALL_L0;
 130      if (!defined('_INSTALL_L128')) {
 131          define('_INSTALL_L128', 'Choose language to be used for the installation process');
 132      }
 133      $content = "<p>"._INSTALL_L128."</p>"
 134                ."<select name='lang'>";
 135  
 136      $langarr = getDirList("./language/");
 137      foreach ($langarr as $lang) {
 138          $content .= "<option value='".$lang."'";
 139          if (strtolower($lang) == $language) {
 140              $content .= ' selected="selected"';
 141          }
 142          $content .= ">".$lang."</option>";
 143      }
 144      $content .= "</select>";
 145  
 146      $b_next = array('start', _INSTALL_L80 );
 147      include  'install_tpl.php';
 148      break;
 149  
 150  case "start":
 151      $title = _INSTALL_L0;
 152      $content = "<table width='80%' align='center'><tr><td align='left'>\n";
 153      include './language/'.$language.'/welcome.php';
 154      $content .= "</td></tr></table>\n";
 155      $b_next = array('modcheck', _INSTALL_L81 );
 156      include  'install_tpl.php';
 157      break;
 158  
 159  case "modcheck":
 160      $writeok = array("uploads/", "cache/", "templates_c/", "mainfile.php");
 161      $title = _INSTALL_L82;
 162      $content = "<table align='center'><tr><td align='left'>\n";
 163      $error = false;
 164      foreach ($writeok as $wok) {
 165          if (!is_dir("../".$wok)) {
 166              if ( file_exists("../".$wok) ) {
 167                  @chmod("../".$wok, 0666);
 168                  if (! is_writeable("../".$wok)) {
 169                      $content .= _NGIMG.sprintf(_INSTALL_L83, $wok)."<br />";
 170                      $error = true;
 171                  }else{
 172                      $content .= _OKIMG.sprintf(_INSTALL_L84, $wok)."<br />";
 173                  }
 174              }
 175          } else {
 176              @chmod("../".$wok, 0777);
 177              if (! is_writeable("../".$wok)) {
 178                  $content .= _NGIMG.sprintf(_INSTALL_L85, $wok)."<br />";
 179                  $error = true;
 180              }else{
 181                  $content .= _OKIMG.sprintf(_INSTALL_L86, $wok)."<br />";
 182              }
 183          }
 184      }
 185      $content .= "</td></tr></table>\n";
 186  
 187      if(! $error) {
 188          $content .= "<p>"._INSTALL_L87."</p>";
 189          $b_next = array('dbform', _INSTALL_L89 );
 190      }else{
 191          $content .= "<p>"._INSTALL_L46."</p>";
 192          $b_reload = true;
 193      }
 194  
 195      include  'install_tpl.php';
 196      break;
 197  
 198  case "dbform":
 199      include_once  '../mainfile.php';
 200      include_once  'class/settingmanager.php';
 201      $sm = new setting_manager();
 202      $sm->readConstant();
 203      $content = $sm->editform();
 204      $title = _INSTALL_L90;
 205      $b_next = array('dbconfirm',_INSTALL_L91);
 206      include  'install_tpl.php';
 207      break;
 208  
 209  case "dbconfirm":
 210      include_once  'class/settingmanager.php';
 211      $sm = new setting_manager(true);
 212  
 213      $content = $sm->checkData();
 214      if (!empty($content)) {
 215          $content .= $sm->editform();
 216          $b_next = array('dbconfirm',_INSTALL_L91);
 217          include  'install_tpl.php';
 218          break;
 219      }
 220  
 221      $title = _INSTALL_L53;
 222      $content = $sm->confirmForm();
 223      $b_next = array('dbsave',_INSTALL_L92 );
 224      $b_back = array('', _INSTALL_L93 );
 225      include  'install_tpl.php';
 226      break;
 227  
 228  case "dbsave":
 229      include_once  "./class/mainfilemanager.php";
 230      $title = _INSTALL_L88;
 231      $mm = new mainfile_manager("../mainfile.php");
 232  
 233      $ret = $mm->copyDistFile();
 234      if(! $ret){
 235          $content = _INSTALL_L60;
 236          include  'install_tpl.php';
 237          exit();
 238      }
 239  
 240      $mm->setRewrite('XOOPS_ROOT_PATH', trim($myts->stripSlashesGPC($_POST['root_path'])));
 241      $mm->setRewrite('XOOPS_URL', trim($myts->stripSlashesGPC($_POST['xoops_url'])));
 242      $mm->setRewrite('XOOPS_DB_TYPE', trim($myts->stripSlashesGPC($_POST['database'])));
 243      $mm->setRewrite('XOOPS_DB_PREFIX', trim($myts->stripSlashesGPC($_POST['prefix'])));
 244      $mm->setRewrite('XOOPS_DB_HOST', trim($myts->stripSlashesGPC($_POST['dbhost'])));
 245      $mm->setRewrite('XOOPS_DB_USER', trim($myts->stripSlashesGPC($_POST['dbuname'])));
 246      $mm->setRewrite('XOOPS_DB_PASS', trim($myts->stripSlashesGPC($_POST['dbpass'])));
 247      $mm->setRewrite('XOOPS_DB_NAME', trim($myts->stripSlashesGPC($_POST['dbname'])));
 248      $mm->setRewrite('XOOPS_DB_PCONNECT', intval($_POST['db_pconnect']));
 249      $mm->setRewrite('XOOPS_GROUP_ADMIN', 1);
 250      $mm->setRewrite('XOOPS_GROUP_USERS', 2);
 251      $mm->setRewrite('XOOPS_GROUP_ANONYMOUS', 3);
 252  
 253      // Check if XOOPS_CHECK_PATH should be initially set or not

 254      $xoopsPathTrans = isset($_SERVER['PATH_TRANSLATED']) ? $_SERVER['PATH_TRANSLATED'] :  $_SERVER['SCRIPT_FILENAME'];
 255      if ( DIRECTORY_SEPARATOR != '/' ) {
 256           // IIS6 doubles the \ chars

 257          $xoopsPathTrans = str_replace( strpos( $xoopsPathTrans, '\\\\', 2 ) ? '\\\\' : DIRECTORY_SEPARATOR, '/', $xoopsPathTrans);
 258      }
 259      $mm->setRewrite('XOOPS_CHECK_PATH', strcasecmp( substr($xoopsPathTrans, 0, strlen($myts->stripSlashesGPC($_POST['root_path']))), $_POST['root_path']) ? 0 : 1 );
 260  
 261      $ret = $mm->doRewrite();
 262      if(! $ret){
 263          $content = _INSTALL_L60;
 264          include  'install_tpl.php';
 265          exit();
 266      }
 267  
 268      $content = $mm->report();
 269      $content .= "<p>"._INSTALL_L62."</p>\n";
 270      $b_next = array('mainfile', _INSTALL_L94 );
 271      include  'install_tpl.php';
 272      break;
 273  
 274  case "mainfile":
 275      // checking XOOPS_ROOT_PATH and XOOPS_URL

 276      include_once  "../mainfile.php";
 277      $title = _INSTALL_L94;
 278      $content = "<table align='center'><tr><td align='left'>\n";
 279  
 280      $detected = str_replace("\\", "/", getcwd()); // "

 281      $detected = str_replace("/install", "", $detected);
 282      if ( substr($detected, -1) == "/" ) {
 283          $detected = substr($detected, 0, -1);
 284      }
 285  
 286      if (empty($detected)){
 287          $content .= _NGIMG._INSTALL_L95.'<br />';
 288      }
 289      elseif ( XOOPS_ROOT_PATH != $detected ) {
 290          $content .= _NGIMG.sprintf(_INSTALL_L96,$detected). '<br />';
 291      }else {
 292          $content .= _OKIMG._INSTALL_L97.'<br />';
 293      }
 294  
 295      if(!is_dir(XOOPS_ROOT_PATH)){
 296          $content .= _NGIMG._INSTALL_L99.'<br />';
 297      }
 298  
 299      if(preg_match('/^http[s]?:\/\/(.*)[^\/]+$/i',XOOPS_URL)){
 300          $content .= _OKIMG._INSTALL_L100.'<br />';
 301      }else{
 302          $content .= _NGIMG._INSTALL_L101.'<br />';
 303      }
 304  
 305      $content .= "<br /></td></tr></table>\n";
 306  
 307      $content .= "<table align='center'><tr><td align='left'>\n";
 308      $content .= _INSTALL_L11."<b>".XOOPS_ROOT_PATH."</b><br />";
 309      $content .= _INSTALL_L12."<b>".XOOPS_URL."</b><br />";
 310      $content .= "</td></tr></table>\n";
 311      $content .= "<p align='center'>"._INSTALL_L13."</p>\n";
 312  
 313      $b_next = array('initial', _INSTALL_L102 );
 314      $b_back = array('start', _INSTALL_L103 );
 315      $b_reload = true;
 316  
 317      include  'install_tpl.php';
 318      //mainfile_settings();

 319      break;
 320  
 321  case "initial":
 322      // confirm database setting

 323      include_once  "../mainfile.php";
 324      $content = "<table align=\"center\">\n";
 325      $content .= "<tr><td align='center'>";
 326      $content .= "<table align=\"center\">\n";
 327      $content .= "<tr><td>"._INSTALL_L27."&nbsp;&nbsp;</td><td><b>".XOOPS_DB_HOST."</b></td></tr>\n";
 328      $content .= "<tr><td>"._INSTALL_L28."&nbsp;&nbsp;</td><td><b>".XOOPS_DB_USER."</b></td></tr>\n";
 329      $content .= "<tr><td>"._INSTALL_L29."&nbsp;&nbsp;</td><td><b>".XOOPS_DB_NAME."</b></td></tr>\n";
 330      $content .= "<tr><td>"._INSTALL_L30."&nbsp;&nbsp;</td><td><b>".XOOPS_DB_PREFIX."</b></td></tr>\n";
 331      $content .= "</table><br />\n";
 332      $content .= "</td></tr><tr><td align=\"center\">";
 333      $content .= _INSTALL_L13."<br /><br />\n";
 334      $content .= "</td></tr></table>\n";
 335      $b_next = array('checkDB', _INSTALL_L104);
 336      $b_back = array('start', _INSTALL_L103);
 337      $b_reload = true;
 338      $title = _INSTALL_L102;
 339      include  'install_tpl.php';
 340      break;
 341  
 342  case "checkDB":
 343      include_once  "../mainfile.php";
 344      include_once  './class/dbmanager.php';
 345      $dbm = new db_manager;
 346      $title = _INSTALL_L104;
 347      $content = "<table align='center'><tr><td align='left'>\n";
 348  
 349      if (! $dbm->isConnectable()) {
 350          $content .= _NGIMG._INSTALL_L106."<br />";
 351          $content .= "<div style='text-align:center'><br />"._INSTALL_L107;
 352          $content .= "</div></td></tr></table>\n";
 353          $b_back = array('start', _INSTALL_L103);
 354          $b_reload = true;
 355      }else{
 356          $content .= _OKIMG._INSTALL_L108."<br />";
 357          if (! $dbm->dbExists()) {
 358              $content .= _NGIMG.sprintf(_INSTALL_L109, XOOPS_DB_NAME)."<br />";
 359              $content .= "</td></tr></table>\n";
 360  
 361              $content .= "<p>"._INSTALL_L21."<br />"
 362                          ."<b>".XOOPS_DB_NAME."</b></p>"
 363                          ."<p>"._INSTALL_L22."</p>";
 364  
 365              $b_next = array('createDB', _INSTALL_L105);
 366              $b_back = array('start', _INSTALL_L103);
 367              $b_reload = true;
 368          }else{
 369              if (!$dbm->tableExists('users')) {
 370                  $content .= _OKIMG.sprintf(_INSTALL_L110, XOOPS_DB_NAME)."<br />";
 371                  $content .= "</td></tr></table>\n";
 372                  $content .= "<p>"._INSTALL_L111."</p>";
 373                  $b_next = array('createTables', _INSTALL_L40);
 374              } else {
 375                  $content .= _OKIMG.sprintf(_INSTALL_L110, XOOPS_DB_NAME)."<br />";
 376                  if (!$dbm->tableExists('config')) {
 377                      $content .= "</td></tr></table>\n";
 378                      $content .= "<p>"._INSTALL_L130."</p>";
 379                      $b_next = array('updateTables', _INSTALL_L14);
 380                  } else {
 381                      $content .= _NGIMG._INSTALL_L131."<br />";
 382                      $content .= "</td></tr></table>\n";
 383                  }
 384              }
 385          }
 386      }
 387  
 388      include  'install_tpl.php';
 389      break;
 390  
 391  case "createDB":
 392      include_once  "../mainfile.php";
 393      include_once  './class/dbmanager.php';
 394      $dbm = new db_manager;
 395  
 396      if(! $dbm->createDB()){
 397          $content = "<p>"._INSTALL_L31."</p>";
 398          $b_next = array('checkDB', _INSTALL_L104);
 399          $b_back = array('start', _INSTALL_L103);
 400      }else{
 401          $content = "<p>".sprintf(_INSTALL_L43, XOOPS_DB_NAME)."</p>";
 402          $b_next = array('checkDB', _INSTALL_L104);
 403      }
 404      include  'install_tpl.php';
 405      break;
 406  
 407  case "createTables":
 408      include_once  "../mainfile.php";
 409      include_once  './class/dbmanager.php';
 410      $dbm = new db_manager;
 411  
 412      //$content = "<table align='center'><tr><td align='left'>\n";

 413      $tables = array();
 414      $result = $dbm->queryFromFile('./sql/'.XOOPS_DB_TYPE.'.structure.sql');
 415      $content = $dbm->report();
 416      if(! $result ){
 417          //$deleted = $dbm->deleteTables($tables);

 418          $content .= "<p>"._INSTALL_L114."</p>\n";
 419          $b_back = array('start', _INSTALL_L103);
 420      }else{
 421          $content .= "<p>"._INSTALL_L115."</p>\n";
 422          $b_next = array('siteInit', _INSTALL_L112);
 423      }
 424  
 425      include  'install_tpl.php';
 426      break;
 427  
 428  case 'updateTables':
 429      include_once  "../mainfile.php";
 430      include_once  './class/dbmanager.php';
 431      $db = new db_manager;
 432      $sql = 'SELECT * FROM '.$db->prefix('groups');
 433      $result = $db->query($sql);
 434      $content = '<h5>'._INSTALL_L157.'</h5>';
 435      $content .= '<table align="center" cellspacing="0" border="1"><tr><td>'._INSTALL_L158.'</td><td>'._INSTALL_L159.'</td><td>'._INSTALL_L160.'</td><td>'._INSTALL_L161.'</td></tr>';
 436      while ($myrow = $db->fetchArray($result)) {
 437          if ($myrow['type'] == 'Admin') {
 438              $content .= '<tr><td>'.$myrow['name'].'</td><td><input type="radio" name="g_webmasters" value="'.$myrow['groupid'].'" /></td><td>&nbsp;</td><td>&nbsp;</td></tr>';
 439          } elseif ($myrow['type'] == 'User') {
 440              $content .= '<tr><td>'.$myrow['name'].'</td><td>&nbsp;</td><td><input type="radio" name="g_users" value="'.$myrow['groupid'].'" /></td><td>&nbsp;</td></tr>';
 441          } else {
 442              $content .= '<tr><td>'.$myrow['name'].'</td><td>&nbsp;</td><td>&nbsp;</td><td><input type="radio" name="g_anonymous" value="'.$myrow['groupid'].'" /></td></tr>';
 443          }
 444      }
 445      $content .= '</table>';
 446      $b_back = array();
 447      $b_next = array('updateTables_go', _INSTALL_L132);
 448      include  'install_tpl.php';
 449      break;
 450  
 451  case 'updateTables_go':
 452      include_once  "../mainfile.php";
 453      $error = false;
 454      $g_webmasters = isset($g_webmasters) ? intval($g_webmasters) : 0;
 455      $g_users = isset($g_users) ? intval($g_users) : 0;
 456      $g_anonymous = isset($g_anonymous) ? intval($g_anonymous) : 0;
 457      if (empty($g_webmasters) || empty($g_users) || empty($g_anonymous)) {
 458          $error = true;
 459      } else {
 460          include_once  "./class/mainfilemanager.php";
 461          $title = _INSTALL_L88;
 462          $mm = new mainfile_manager("../mainfile.php");
 463          $mm->setRewrite('XOOPS_GROUP_ADMIN', $g_webmasters);
 464          $mm->setRewrite('XOOPS_GROUP_USERS', $g_users);
 465          $mm->setRewrite('XOOPS_GROUP_ANONYMOUS', $g_anonymous);
 466  
 467          $ret = $mm->doRewrite();
 468          if(!$ret){
 469              $content = _INSTALL_L60;
 470              include  'install_tpl.php';
 471              exit();
 472          }
 473      }
 474      if (false != $error) {
 475          $b_back = array();
 476          $content = _INSTALL_L162;
 477          include  'install_tpl.php';
 478          break;
 479      }
 480      include_once  './class/dbmanager.php';
 481      $dbm = new db_manager;
 482      if (!$dbm->query("ALTER TABLE ".$dbm->prefix("newblocks")." ADD dirname VARCHAR(50) NOT NULL, ADD func_file VARCHAR(50) NOT NULL, ADD show_func VARCHAR(50) NOT NULL, ADD edit_func VARCHAR(50) NOT NULL")) {
 483      }
 484      $result = $dbm->queryFromFile('./sql/upgrade/'.XOOPS_DB_TYPE.'.structure.sql');
 485      $content = $dbm->report();
 486      if (!$result) {
 487          $content .= "<p>"._INSTALL_L135."</p>\n";
 488          $b_back = array();
 489      } else {
 490          $content .= "<p>"._INSTALL_L136."</p>\n";
 491          $b_next = array('updateConfig', _INSTALL_L14);
 492      }
 493      include  'install_tpl.php';
 494      break;
 495  
 496  case 'updateConfig':
 497      $b_next = array('updateConfig_go', _INSTALL_L144);
 498      $content = "<p>"._INSTALL_L143."</p>\n";
 499      include  'install_tpl.php';
 500      break;
 501  
 502  case 'updateConfig_go':
 503      include_once  "../mainfile.php";
 504  
 505      $language = check_language($language);
 506      if ( file_exists("./language/".$language."/install2.php") ) {
 507          include_once "./language/".$language."/install2.php";
 508      } elseif ( file_exists("./language/english/install2.php") ) {
 509          include_once  "./language/english/install2.php";
 510          $language = 'english';
 511      } else {
 512          echo 'no language file (install2.php).';
 513          exit();
 514      }
 515      include_once  './class/dbmanager.php';
 516      $dbm = new db_manager;
 517  
 518      // default settings

 519      $xoopsConfig['sitename'] = 'XOOPS Site';
 520      $xoopsConfig['slogan'] = 'Just use it!';
 521      $xoopsConfig['adminmail'] = '';
 522      $xoopsConfig['language'] = 'english';
 523      $xoopsConfig['anonymous'] = 'Anonymous';
 524      $xoopsConfig['minpass'] = 5;
 525      $xoopsConfig['anonpost'] = 0;
 526      $xoopsConfig['new_user_notify'] = 0;
 527      $xoopsConfig['new_user_notify_group'] = 1;
 528      $xoopsConfig['self_delete'] = 0;
 529      $xoopsConfig['gzip_compression'] = 0;
 530      $xoopsConfig['uname_test_level'] = 0;
 531      $xoopsConfig['usercookie'] = "xoops_user";
 532      $xoopsConfig['sessioncookie'] = "xoops_session";
 533      $xoopsConfig['sessionexpire'] = 4500;
 534      $xoopsConfig['server_TZ'] = 0;
 535      $xoopsConfig['default_TZ'] = 0;
 536      $xoopsConfig['banners'] = 1;
 537      $xoopsConfig['com_mode'] = "nest";
 538      $xoopsConfig['com_order'] = 1;
 539      $xoopsConfig['my_ip'] = "127.0.0.1";
 540      $xoopsConfig['avatar_allow_upload'] = 0;
 541      $xoopsConfig['avatar_width'] = 120;
 542      $xoopsConfig['avatar_height'] = 120;
 543      $xoopsConfig['avatar_maxsize'] = 15000;
 544  
 545      // override deafault with 1.3.x settings if any

 546      if (file_exists('../modules/system/cache/config.php')) {
 547          include_once('../modules/system/cache/config.php');
 548      }
 549  
 550      $dbm->insert('config', " VALUES (1, 0, 1, 'sitename', '_MD_AM_SITENAME', '".addslashes($xoopsConfig['sitename'])."', '_MD_AM_SITENAMEDSC', 'textbox', 'text', 0)");
 551      $dbm->insert('config', " VALUES (2, 0, 1, 'slogan', '_MD_AM_SLOGAN', '".addslashes($xoopsConfig['slogan'])."', '_MD_AM_SLOGANDSC', 'textbox', 'text', 2)");
 552      $dbm->insert('config', " VALUES (3, 0, 1, 'language', '_MD_AM_LANGUAGE', '".$xoopsConfig['language']."', '_MD_AM_LANGUAGEDSC', 'language', 'other', 4)");
 553      $dbm->insert('config', " VALUES (4, 0, 1, 'startpage', '_MD_AM_STARTPAGE', '--', '_MD_AM_STARTPAGEDSC', 'startpage', 'other', 6)");
 554      $dbm->insert('config', " VALUES (5, 0, 1, 'server_TZ', '_MD_AM_SERVERTZ', '".addslashes($xoopsConfig['server_TZ'])."', '_MD_AM_SERVERTZDSC', 'timezone', 'float', 8)");
 555      $dbm->insert('config', " VALUES (6, 0, 1, 'default_TZ', '_MD_AM_DEFAULTTZ', '".addslashes($xoopsConfig['default_TZ'])."', '_MD_AM_DEFAULTTZDSC', 'timezone', 'float', 10)");
 556      $dbm->insert('config', " VALUES (7, 0, 1, 'theme_set', '_MD_AM_DTHEME', 'default', '_MD_AM_DTHEMEDSC', 'theme', 'other', 12)");
 557      $dbm->insert('config', " VALUES (8, 0, 1, 'anonymous', '_MD_AM_ANONNAME', '".addslashes($xoopsConfig['anonymous'])."', '_MD_AM_ANONNAMEDSC', 'textbox', 'text', 15)");
 558      $dbm->insert('config', " VALUES (9, 0, 1, 'gzip_compression', '_MD_AM_USEGZIP', '".intval($xoopsConfig['gzip_compression'])."', '_MD_AM_USEGZIPDSC', 'yesno', 'int', 16)");
 559      $dbm->insert('config', " VALUES (10, 0, 1, 'usercookie', '_MD_AM_USERCOOKIE', '".addslashes($xoopsConfig['usercookie'])."', '_MD_AM_USERCOOKIEDSC', 'textbox', 'text', 18)");
 560      $dbm->insert('config', " VALUES (11, 0, 1, 'session_expire', '_MD_AM_SESSEXPIRE', '15', '_MD_AM_SESSEXPIREDSC', 'textbox', 'int', 22)");
 561      $dbm->insert('config', " VALUES (12, 0, 1, 'banners', '_MD_AM_BANNERS', '".intval($xoopsConfig['banners'])."', '_MD_AM_BANNERSDSC', 'yesno', 'int', 26)");
 562      $dbm->insert('config', " VALUES (13, 0, 1, 'debug_mode', '_MD_AM_DEBUGMODE', '0', '_MD_AM_DEBUGMODEDSC', 'select', 'int', 24)");
 563      $dbm->insert('config', " VALUES (14, 0, 1, 'my_ip', '_MD_AM_MYIP', '".addslashes($xoopsConfig['my_ip'])."', '_MD_AM_MYIPDSC', 'textbox', 'text', 29)");
 564      $dbm->insert('config', " VALUES (15, 0, 1, 'use_ssl', '_MD_AM_USESSL', '0', '_MD_AM_USESSLDSC', 'yesno', 'int', 30)");
 565      $dbm->insert('config', " VALUES (16, 0, 1, 'session_name', '_MD_AM_SESSNAME', 'xoops_session', '_MD_AM_SESSNAMEDSC', 'textbox', 'text', 20)");
 566      $dbm->insert('config', " VALUES (17, 0, 2, 'minpass', '_MD_AM_MINPASS', '".intval($xoopsConfig['minpass'])."', '_MD_AM_MINPASSDSC', 'textbox', 'int', 1)");
 567      $dbm->insert('config', " VALUES (18, 0, 2, 'minuname', '_MD_AM_MINUNAME', '5', '_MD_AM_MINUNAMEDSC', 'textbox', 'int', 2)");
 568      $dbm->insert('config', " VALUES (19, 0, 2, 'new_user_notify', '_MD_AM_NEWUNOTIFY', '".intval($xoopsConfig['new_user_notify'])."', '_MD_AM_NEWUNOTIFYDSC', 'yesno', 'int', 4)");
 569      $dbm->insert('config', " VALUES (20, 0, 2, 'new_user_notify_group', '_MD_AM_NOTIFYTO', ".intval($xoopsConfig['new_user_notify_group']).", '_MD_AM_NOTIFYTODSC', 'group', 'int', 6)");
 570      $dbm->insert('config', " VALUES (21, 0, 2, 'activation_type', '_MD_AM_ACTVTYPE', '0', '_MD_AM_ACTVTYPEDSC', 'select', 'int', 8)");
 571      $dbm->insert('config', " VALUES (22, 0, 2, 'activation_group', '_MD_AM_ACTVGROUP', ".XOOPS_GROUP_ADMIN.", '_MD_AM_ACTVGROUPDSC', 'group', 'int', 10)");
 572      $dbm->insert('config', " VALUES (23, 0, 2, 'uname_test_level', '_MD_AM_UNAMELVL', '".intval($xoopsConfig['uname_test_level'])."', '_MD_AM_UNAMELVLDSC', 'select', 'int', 12)");
 573      $dbm->insert('config', " VALUES (24, 0, 2, 'avatar_allow_upload', '_MD_AM_AVATARALLOW', '".intval($xoopsConfig['avatar_allow_upload'])."', '_MD_AM_AVATARALWDSC', 'yesno', 'int', 14)");
 574      $dbm->insert('config', " VALUES (27, 0, 2, 'avatar_width', '_MD_AM_AVATARW', '".intval($xoopsConfig['avatar_width'])."', '_MD_AM_AVATARWDSC', 'textbox', 'int', 16)");
 575      $dbm->insert('config', " VALUES (28, 0, 2, 'avatar_height', '_MD_AM_AVATARH', '".intval($xoopsConfig['avatar_height'])."', '_MD_AM_AVATARHDSC', 'textbox', 'int', 18)");
 576      $dbm->insert('config', " VALUES (29, 0, 2, 'avatar_maxsize', '_MD_AM_AVATARMAX', '".intval($xoopsConfig['avatar_maxsize'])."', '_MD_AM_AVATARMAXDSC', 'textbox', 'int', 20)");
 577      $dbm->insert('config', " VALUES (30, 0, 1, 'adminmail', '_MD_AM_ADMINML', '".addslashes($xoopsConfig['adminmail'])."', '_MD_AM_ADMINMLDSC', 'textbox', 'text', 3)");
 578      $dbm->insert('config', " VALUES (31, 0, 2, 'self_delete', '_MD_AM_SELFDELETE', '".intval($xoopsConfig['self_delete'])."', '_MD_AM_SELFDELETEDSC', 'yesno', 'int', 22)");
 579      $dbm->insert('config', " VALUES (32, 0, 1, 'com_mode', '_MD_AM_COMMODE', '".addslashes($xoopsConfig['com_mode'])."', '_MD_AM_COMMODEDSC', 'select', 'text', 34)");
 580      $dbm->insert('config', " VALUES (33, 0, 1, 'com_order', '_MD_AM_COMORDER', '".intval($xoopsConfig['com_order'])."', '_MD_AM_COMORDERDSC', 'select', 'int', 36)");
 581      $dbm->insert('config', " VALUES (34, 0, 2, 'bad_unames', '_MD_AM_BADUNAMES', '".addslashes(serialize(array('webmaster', '^xoops', '^admin')))."', '_MD_AM_BADUNAMESDSC', 'textarea', 'array', 24)");
 582      $dbm->insert('config', " VALUES (35, 0, 2, 'bad_emails', '_MD_AM_BADEMAILS', '".addslashes(serialize(array('xoops.org$')))."', '_MD_AM_BADEMAILSDSC', 'textarea', 'array', 26)");
 583      $dbm->insert('config', " VALUES (36, 0, 2, 'maxuname', '_MD_AM_MAXUNAME', '10', '_MD_AM_MAXUNAMEDSC', 'textbox', 'int', 3)");
 584      $dbm->insert('config', " VALUES (37, 0, 1, 'bad_ips', '_MD_AM_BADIPS', '".addslashes(serialize(array('127.0.0.1')))."', '_MD_AM_BADIPSDSC', 'textarea', 'array', 42)");
 585      $dbm->insert('config', " VALUES (38, 0, 3, 'meta_keywords', '_MD_AM_METAKEY', 'news, technology, headlines, xoops, xoop, nuke, myphpnuke, myphp-nuke, phpnuke, SE, geek, geeks, hacker, hackers, linux, software, download, downloads, free, community, mp3, forum, forums, bulletin, board, boards, bbs, php, survey, poll, polls, kernel, comment, comments, portal, odp, open, source, opensource, FreeSoftware, gnu, gpl, license, Unix, *nix, mysql, sql, database, databases, web site, weblog, guru, module, modules, theme, themes, cms, content management', '_MD_AM_METAKEYDSC', 'textarea', 'text', 0)");
 586      $dbm->insert('config', " VALUES (39, 0, 3, 'footer', '_MD_AM_FOOTER', 'Powered by XOOPS 2.0 &copy; 2001-" . date('Y', time()) . " <a href=\"http://xoops.sourceforge.net/\" target=\"_blank\">The XOOPS Project</a>', '_MD_AM_FOOTERDSC', 'textarea', 'text', 20)");
 587      $dbm->insert('config', " VALUES (40, 0, 4, 'censor_enable', '_MD_AM_DOCENSOR', '0', '_MD_AM_DOCENSORDSC', 'yesno', 'int', 0)");
 588      $dbm->insert('config', " VALUES (41, 0, 4, 'censor_words', '_MD_AM_CENSORWRD', '".addslashes(serialize(array('fuck', 'shit')))."', '_MD_AM_CENSORWRDDSC', 'textarea', 'array', 1)");
 589      $dbm->insert('config', " VALUES (42, 0, 4, 'censor_replace', '_MD_AM_CENSORRPLC', '#OOPS#', '_MD_AM_CENSORRPLCDSC', 'textbox', 'text', 2)");
 590      $dbm->insert('config', " VALUES (43, 0, 3, 'meta_robots', '_MD_AM_METAROBOTS', 'index,follow', '_MD_AM_METAROBOTSDSC', 'select', 'text', 2)");
 591      $dbm->insert('config', " VALUES (44, 0, 5, 'enable_search', '_MD_AM_DOSEARCH', '1', '_MD_AM_DOSEARCHDSC', 'yesno', 'int', 0)");
 592      $dbm->insert('config', " VALUES (45, 0, 5, 'keyword_min', '_MD_AM_MINSEARCH', '5', '_MD_AM_MINSEARCHDSC', 'textbox', 'int', 1)");
 593      $dbm->insert('config', " VALUES (46, 0, 2, 'avatar_minposts', '_MD_AM_AVATARMP', '0', '_MD_AM_AVATARMPDSC', 'textbox', 'int', 15)");
 594      $dbm->insert('config', " VALUES (47, 0, 1, 'enable_badips', '_MD_AM_DOBADIPS', '0', '_MD_AM_DOBADIPSDSC', 'yesno', 'int', 40)");
 595      $dbm->insert('config', " VALUES (48, 0, 3, 'meta_rating', '_MD_AM_METARATING', 'general', '_MD_AM_METARATINGDSC', 'select', 'text', 4)");
 596      $dbm->insert('config', " VALUES (49, 0, 3, 'meta_author', '_MD_AM_METAAUTHOR', 'XOOPS', '_MD_AM_METAAUTHORDSC', 'textbox', 'text', 6)");
 597      $dbm->insert('config', " VALUES (50, 0, 3, 'meta_copyright', '_MD_AM_METACOPYR', 'Copyright &copy; 2001-2003', '_MD_AM_METACOPYRDSC', 'textbox', 'text', 8)");
 598      $dbm->insert('config', " VALUES (51, 0, 3, 'meta_description', '_MD_AM_METADESC', 'XOOPS is a dynamic Object Oriented based open source portal script written in PHP.', '_MD_AM_METADESCDSC', 'textarea', 'text', 1)");
 599      $dbm->insert('config', " VALUES (52, 0, 2, 'allow_chgmail', '_MD_AM_ALLWCHGMAIL', '0', '_MD_AM_ALLWCHGMAILDSC', 'yesno', 'int', 3)");
 600      $dbm->insert('config', " VALUES (53, 0, 1, 'use_mysession', '_MD_AM_USEMYSESS', '0', '_MD_AM_USEMYSESSDSC', 'yesno', 'int', 19)");
 601      $dbm->insert('config', " VALUES (54, 0, 2, 'reg_dispdsclmr', '_MD_AM_DSPDSCLMR', 1, '_MD_AM_DSPDSCLMRDSC', 'yesno', 'int', 30)");
 602      $dbm->insert('config', " VALUES (55, 0, 2, 'reg_disclaimer', '_MD_AM_REGDSCLMR', '".addslashes(_INSTALL_DISCLMR)."', '_MD_AM_REGDSCLMRDSC', 'textarea', 'text', 32)");
 603      $dbm->insert('config', " VALUES (56, 0, 2, 'allow_register', '_MD_AM_ALLOWREG', 1, '_MD_AM_ALLOWREGDSC', 'yesno', 'int', 0)");
 604      $dbm->insert('config', " VALUES (57, 0, 1, 'theme_fromfile', '_MD_AM_THEMEFILE', '0', '_MD_AM_THEMEFILEDSC', 'yesno', 'int', 13)");
 605      $dbm->insert('config', " VALUES (58, 0, 1, 'closesite', '_MD_AM_CLOSESITE', '0', '_MD_AM_CLOSESITEDSC', 'yesno', 'int', 26)");
 606      $dbm->insert('config', " VALUES (59, 0, 1, 'closesite_okgrp', '_MD_AM_CLOSESITEOK', '".addslashes(serialize(array('1')))."', '_MD_AM_CLOSESITEOKDSC', 'group_multi', 'array', 27)");
 607      $dbm->insert('config', " VALUES (60, 0, 1, 'closesite_text', '_MD_AM_CLOSESITETXT', '"._INSTALL_L165."', '_MD_AM_CLOSESITETXTDSC', 'textarea', 'text', 28)");
 608      $dbm->insert('config', " VALUES (61, 0, 1, 'sslpost_name', '_MD_AM_SSLPOST', 'xoops_ssl', '_MD_AM_SSLPOSTDSC', 'textbox', 'text', 31)");
 609      $dbm->insert('config', " VALUES (62, 0, 1, 'module_cache', '_MD_AM_MODCACHE', '', '_MD_AM_MODCACHEDSC', 'module_cache', 'array', 50)");
 610      $dbm->insert('config', " VALUES (63, 0, 1, 'template_set', '_MD_AM_DTPLSET', 'default', '_MD_AM_DTPLSETDSC', 'tplset', 'other', 14)");
 611      $dbm->insert('config', " VALUES (64,0,6,'mailmethod','_MD_AM_MAILERMETHOD','mail','_MD_AM_MAILERMETHODDESC','select','text',4)");
 612      $dbm->insert('config', " VALUES (65,0,6,'smtphost','_MD_AM_SMTPHOST','a:1:{i:0;s:0:\"\";}', '_MD_AM_SMTPHOSTDESC','textarea','array',6)");
 613      $dbm->insert('config', " VALUES (66,0,6,'smtpuser','_MD_AM_SMTPUSER','','_MD_AM_SMTPUSERDESC','textbox','text',7)");
 614      $dbm->insert('config', " VALUES (67,0,6,'smtppass','_MD_AM_SMTPPASS','','_MD_AM_SMTPPASSDESC','password','text',8)");
 615      $dbm->insert('config', " VALUES (68,0,6,'sendmailpath','_MD_AM_SENDMAILPATH','/usr/sbin/sendmail','_MD_AM_SENDMAILPATHDESC','textbox','text',5)");
 616      $dbm->insert('config', " VALUES (69,0,6,'from','_MD_AM_MAILFROM','','_MD_AM_MAILFROMDESC','textbox','text',1)");
 617      $dbm->insert('config', " VALUES (70,0,6,'fromname','_MD_AM_MAILFROMNAME','','_MD_AM_MAILFROMNAMEDESC','textbox','text',2)");
 618      $dbm->insert('config', " VALUES (71, 0, 1, 'sslloginlink', '_MD_AM_SSLLINK', 'https://', '_MD_AM_SSLLINKDSC', 'textbox', 'text', 33)");
 619      $dbm->insert('config', " VALUES (72, 0, 1, 'theme_set_allowed', '_MD_AM_THEMEOK', '".serialize(array('default'))."', '_MD_AM_THEMEOKDSC', 'theme_multi', 'array', 13)");
 620      $dbm->insert('config', " VALUES (73,0,6,'fromuid','_MD_AM_MAILFROMUID','1','_MD_AM_MAILFROMUIDDESC','user','int',3)");
 621  
 622      $dbm->insert('config', " VALUES (74,0,7,'auth_method','_MD_AM_AUTHMETHOD','xoops','_MD_AM_AUTHMETHODDESC','select','text',1)");
 623      $dbm->insert('config', " VALUES (75,0,7,'ldap_port','_MD_AM_LDAP_PORT','389','_MD_AM_LDAP_PORT','textbox','int',2)");
 624      $dbm->insert('config', " VALUES (76,0,7,'ldap_server','_MD_AM_LDAP_SERVER','your directory server','_MD_AM_LDAP_SERVER_DESC','textbox','text',3)");
 625      $dbm->insert('config', " VALUES (77,0,7,'ldap_base_dn','_MD_AM_LDAP_BASE_DN','dc=xoops,dc=org','_MD_AM_LDAP_BASE_DN_DESC','textbox','text',4)");
 626      $dbm->insert('config', " VALUES (78,0,7,'ldap_manager_dn','_MD_AM_LDAP_MANAGER_DN','manager_dn','_MD_AM_LDAP_MANAGER_DN_DESC','textbox','text',5)");
 627      $dbm->insert('config', " VALUES (79,0,7,'ldap_manager_pass','_MD_AM_LDAP_MANAGER_PASS','manager_pass','_MD_AM_LDAP_MANAGER_PASS_DESC','password','text',6)");
 628      $dbm->insert('config', " VALUES (80,0,7,'ldap_version','_MD_AM_LDAP_VERSION','3','_MD_AM_LDAP_VERSION_DESC','textbox','text', 7)");
 629      $dbm->insert('config', " VALUES (81,0,7,'ldap_users_bypass','_MD_AM_LDAP_USERS_BYPASS','".serialize(array('admin'))."','_MD_AM_LDAP_USERS_BYPASS_DESC','textarea','array',8)");
 630      $dbm->insert('config', " VALUES (82,0,7,'ldap_loginname_asdn','_MD_AM_LDAP_LOGINNAME_ASDN','uid_asdn','_MD_AM_LDAP_LOGINNAME_ASDN_D','yesno','int',9)");
 631      $dbm->insert('config', " VALUES (83,0,7,'ldap_loginldap_attr', '_MD_AM_LDAP_LOGINLDAP_ATTR', 'uid', '_MD_AM_LDAP_LOGINLDAP_ATTR_D', 'textbox', 'text', 10)");
 632      $dbm->insert('config', " VALUES (84,0,7,'ldap_filter_person','_MD_AM_LDAP_FILTER_PERSON','','_MD_AM_LDAP_FILTER_PERSON_DESC','textbox','text',11)");
 633      $dbm->insert('config', " VALUES (85,0,7,'ldap_domain_name','_MD_AM_LDAP_DOMAIN_NAME','mydomain','_MD_AM_LDAP_DOMAIN_NAME_DESC','textbox','text',12)");
 634      $dbm->insert('config', " VALUES (86,0,7,'ldap_provisionning','_MD_AM_LDAP_PROVIS','0','_MD_AM_LDAP_PROVIS_DESC','yesno','int',13)");                
 635      $dbm->insert('config', " VALUES (87,0,7,'ldap_provisionning_group','_MD_AM_LDAP_PROVIS_GROUP','a:1:{i:0;s:1:\"2\";}','_MD_AM_LDAP_PROVIS_GROUP_DSC','group_multi','array',14)");
 636      $dbm->insert('config', " VALUES (88,0,7,'ldap_use_TLS','_MD_AM_LDAP_USETLS','0','_MD_AM_LDAP_USETLS_DESC','yesno','int',15)");                    
 637  
 638  
 639      // default the default theme

 640  
 641      $time = time();
 642      $dbm->insert('tplset', " VALUES (1, 'default', 'XOOPS Default Theme', '', ".$time.")");
 643  
 644  //    include_once './class/cachemanager.php';

 645  //    $cm = new cache_manager;

 646  //    $skinfiles = array('1' => 'skin.html', '2' => 'style.css'

 647  //                        , '3' => 'styleNN.css','4' =>  'styleMAC.css'

 648  //                        , '5' => 'skin_blockleft.html', '6' => 'skin_blockright.html'

 649  //                        , '7' => 'skin_blockcenter_l.html', '8' => 'skin_blockcenter_c.html'

 650  //                        , '9' => 'skin_blockcenter_r.html');

 651  //    foreach ($skinfiles as $key => $skinfile) {

 652  //        if(preg_match('/\.css$/', $skinfile)) {

 653  //            $type = 'css';

 654  //        }else{

 655  //            $type = 'skin';

 656  //        }

 657  //        $dbm->insert('tplfile', " VALUES ($key, 0, '', 'default', '$skinfile', '', $time, $time, '$type')");

 658  
 659  //        $fp = fopen('./templates/default_skin/'.$skinfile, 'r');

 660  //        $skinsource = fread($fp, filesize('./templates/default_skin/'.$skinfile));

 661  //        fclose($fp);

 662  //        $dbm->insert('tplsource', " (tpl_id, tpl_source) VALUES ($key, '".addslashes($skinsource)."')");

 663  //        if(preg_match('/\.css$/',$skinfile)) {

 664  //            $cm->write($skinfile, $skinsource);

 665  //        }

 666  //    }

 667  
 668          $dbm->query("INSERT INTO ".$dbm->prefix('group_permission')." (gperm_groupid, gperm_itemid) SELECT groupid, block_id FROM ".$dbm->prefix('groups_blocks_link'));
 669          $dbm->query("UPDATE ".$dbm->prefix('group_permission')." SET gperm_name = 'block_read'");
 670          $dbm->query("INSERT INTO ".$dbm->prefix('group_permission')." (gperm_groupid, gperm_itemid) SELECT groupid, mid FROM ".$dbm->prefix('groups_modules_link') ." WHERE type='A'");
 671          $dbm->query("UPDATE ".$dbm->prefix('group_permission')." SET gperm_name = 'module_admin' WHERE gperm_name = ''");
 672          $dbm->query("INSERT INTO ".$dbm->prefix('group_permission')." (gperm_groupid, gperm_itemid) SELECT groupid, mid FROM ".$dbm->prefix('groups_modules_link')." WHERE type='R'");
 673          $dbm->query("UPDATE ".$dbm->prefix('group_permission')." SET gperm_name = 'module_read' WHERE gperm_name = ''");
 674          $dbm->query("UPDATE ".$dbm->prefix('group_permission')." SET gperm_modid = 1");
 675          $dbm->query('DROP TABLE '.$dbm->prefix('groups_blocks_link'));
 676          $dbm->query('DROP TABLE '.$dbm->prefix('groups_modules_link'));
 677  
 678      // insert some more data

 679      $result = $dbm->queryFromFile('./sql/'.XOOPS_DB_TYPE.'.data.sql');
 680  
 681      $content = $dbm->report();
 682      //$content .= $cm->report();

 683      $b_next = array('updateModules', _INSTALL_L14);
 684      include  'install_tpl.php';
 685      break;
 686  
 687  case 'updateModules':
 688      $b_next = array('updateModules_go', _INSTALL_L137);
 689      $content = "<p>"._INSTALL_L141."</p>\n";
 690      include  'install_tpl.php';
 691      break;
 692  
 693  case 'updateModules_go':
 694      unset($xoopsOption['nocommon']);
 695      include_once  "../mainfile.php";
 696  ?>
 697  <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 698  <html>
 699  <head>
 700    <title>XOOPS Custom Installation</title>
 701    <meta http-equiv="Content-Type" content="text/html; charset=<?php echo _INSTALL_CHARSET ?>" />
 702    <style type="text/css" media="all"><!-- @import url(../xoops.css); --></style>
 703    <link rel="stylesheet" type="text/css" media="all" href="style.css" />
 704  </head>
 705  <body style="margin: 0; padding: 0;">
 706  <form action='index.php' method='post'>
 707  <table width="778" align="center" cellpadding="0" cellspacing="0" background="img/bg_table.gif">
 708    <tr>
 709      <td width="150"><img src="img/hbar_left.gif" width="100%" height="23" alt="" /></td>
 710      <td width="478" background="img/hbar_middle.gif">&nbsp;</td>
 711      <td width="150"><img src="img/hbar_right.gif" width="100%" height="23" alt="" /></td>
 712    </tr>
 713    <tr>
 714      <td width="150"><a href="index.php"><img src="img/logo.gif" width="150" height="80" alt="" /></a></td>
 715      <td width="478" background="img/bg_darkblue.gif">&nbsp;</td>
 716      <td width="150"><img src="img/xoops2.gif" width="100%" height="80"></td>
 717    </tr>
 718    <tr>
 719      <td width="150"><img src="img/hbar_left.gif" width="100%" height="23" alt="" /></td>
 720      <td width="478" background="img/hbar_middle.gif">&nbsp;</td>
 721      <td width="150"><img src="img/hbar_right.gif" width="100%" height="23" alt="" /></td>
 722    </tr>
 723  </table>
 724  
 725  <table width="778" align="center" cellspacing="0" cellpadding="0" background="img/bg_table.gif"
 726    <tr>
 727      <td width='5%'>&nbsp;</td>
 728      <td colspan="3"><h4 style="margin-top: 10px; margin-bottom: 5px; padding: 10px;"><?php echo _INSTALL_L142;?></h4><div style="padding: 10px; text-align:left;">
 729  <?php
 730      $module_handler =& xoops_gethandler('module');
 731      $modules =& $module_handler->getObjects(null, true);
 732      foreach (array_keys($modules) as $mid) {
 733          echo '<h5>'.$modules[$mid]->getVar('name').'</h5>';
 734          $dirname = $modules[$mid]->getVar('dirname');
 735          if (is_dir(XOOPS_ROOT_PATH.'/modules/'.$dirname)) {
 736              $modules[$mid]->loadInfoAsVar($dirname, false);
 737              if (!$module_handler->insert($modules[$mid])) {
 738                  echo '<p>Could not update '.$modules[$mid]->getVar('name').'</p>';
 739              } else {
 740                  $newmid = $modules[$mid]->getVar('mid');
 741                  $msgs = array();
 742                  $msgs[] = 'Module data updated.';
 743                  $tplfile_handler =& xoops_gethandler('tplfile');
 744                  $templates = $modules[$mid]->getInfo('templates');
 745                  if ($templates != false) {
 746                      $msgs[] = 'Generating templates...';
 747                      foreach ($templates as $tpl) {
 748                          $tpl['file'] = trim($tpl['file']);
 749                          $tpldata =& xoops_module_gettemplate($dirname, $tpl['file']);
 750                          $tplfile =& $tplfile_handler->create();
 751                          $tplfile->setVar('tpl_refid', $newmid);
 752                          $tplfile->setVar('tpl_lastimported', 0);
 753                          $tplfile->setVar('tpl_lastmodified', time());
 754                          if (preg_match("/\.css$/i", $tpl['file'])) {
 755                              $tplfile->setVar('tpl_type', 'css');
 756                          } else {
 757                              $tplfile->setVar('tpl_type', 'module');
 758                              //if ($xoopsConfig['default_theme'] == 'default') {

 759                              //    include_once XOOPS_ROOT_PATH.'/class/template.php';

 760                              //    xoops_template_touch($tplfile->getVar('tpl_id'));

 761                              //}

 762                          }
 763                          $tplfile->setVar('tpl_source', $tpldata, true);
 764                          $tplfile->setVar('tpl_module', $dirname);
 765                          $tplfile->setVar('tpl_tplset', 'default');
 766                          $tplfile->setVar('tpl_file', $tpl['file'], true);
 767                          $tplfile->setVar('tpl_desc', $tpl['description'], true);
 768                          if (!$tplfile_handler->insert($tplfile)) {
 769                              $msgs[] = '&nbsp;&nbsp;<span style="color:#ff0000;">ERROR: Could not insert template <b>'.$tpl['file'].'</b> to the database.</span>';
 770                          } else {
 771                              $msgs[] = '&nbsp;&nbsp;Template <b>'.$tpl['file'].'</b> inserted to the database.';
 772                          }
 773                          unset($tpldata);
 774                      }
 775                  }
 776                  $blocks = $modules[$mid]->getInfo('blocks');
 777                  $msgs[] = 'Rebuilding blocks...';
 778                  $showfuncs = array();
 779                  $funcfiles = array();
 780                  if ($blocks != false) {
 781                      $count = count($blocks);
 782                      include_once(XOOPS_ROOT_PATH.'/class/xoopsblock.php');
 783                      for ( $i = 1; $i <= $count; $i++ ) {
 784                          if (isset($blocks[$i]['show_func']) && $blocks[$i]['show_func'] != '' && isset($blocks[$i]['file']) && $blocks[$i]['file'] != '') {
 785                              $editfunc = isset($blocks[$i]['edit_func']) ? $blocks[$i]['edit_func'] : '';
 786                              $showfuncs[] = $blocks[$i]['show_func'];
 787                              $funcfiles[] = $blocks[$i]['file'];
 788                              $template = '';
 789                              if ((isset($blocks[$i]['template']) && trim($blocks[$i]['template']) != '')) {
 790                                  $content =& xoops_module_gettemplate($dirname, $blocks[$i]['template'], true);
 791                                  $template = $blocks[$i]['template'];
 792                              }
 793                              if (!$content) {
 794                                  $content = '';
 795                              }
 796                              $options = '';
 797                              if (isset($blocks[$i]['options']) && $blocks[$i]['options'] != '') {
 798                                  $options = $blocks[$i]['options'];
 799                              }
 800                              $sql = "SELECT bid, name FROM ".$xoopsDB->prefix('newblocks')." WHERE mid=".$mid." AND func_num=".$i;
 801                              $fresult = $xoopsDB->query($sql);
 802                              $fcount = 0;
 803                              while ($fblock = $xoopsDB->fetchArray($fresult)) {
 804                                  $fcount++;
 805                                  $sql = "UPDATE ".$xoopsDB->prefix("newblocks")." SET name='".addslashes($blocks[$i]['name'])."', title='".addslashes($blocks[$i]['name'])."', dirname='".addslashes($dirname)."',  func_file='".addslashes($blocks[$i]['file'])."', show_func='".addslashes($blocks[$i]['show_func'])."', template='".addslashes($template)."', edit_func='".addslashes($editfunc)."', options='".addslashes($options)."', content='', template='".$template."', last_modified=".time()." WHERE bid=".$fblock['bid'];
 806                                  $result = $xoopsDB->query($sql);
 807                                  if (!$result) {
 808                                      $msgs[] = '&nbsp;&nbsp;ERROR: Could not update '.$fblock['name'];
 809                                  } else {
 810                                      $msgs[] = '&nbsp;&nbsp;Block <b>'.$fblock['name'].'</b> updated. Block ID: <b>'.$fblock['bid'].'</b>';
 811                                      if ($template != '') {
 812                                          $tplfile =& $tplfile_handler->create();
 813                                          $tplfile->setVar('tpl_refid', $fblock['bid']);
 814                                          $tplfile->setVar('tpl_source', $content, true);
 815                                          $tplfile->setVar('tpl_tplset', 'default');
 816                                          $tplfile->setVar('tpl_file', $blocks[$i]['template']);
 817                                          $tplfile->setVar('tpl_module', $dirname);
 818                                          $tplfile->setVar('tpl_type', 'block');
 819                                          $tplfile->setVar('tpl_desc', $blocks[$i]['description'], true);
 820                                          $tplfile->setVar('tpl_lastimported', 0);
 821                                          $tplfile->setVar('tpl_lastmodified', time());
 822                                          if (!$tplfile_handler->insert($tplfile)) {
 823                                              $msgs[] = '&nbsp;&nbsp;<span style="color:#ff0000;">ERROR: Could not insert template <b>'.$blocks[$i]['template'].'</b> to the database.</span>';
 824                                          } else {
 825                                              $msgs[] = '&nbsp;&nbsp;Template <b>'.$blocks[$i]['template'].'</b> inserted to the database.';
 826                                              //if ($xoopsConfig['default_theme'] == 'default') {

 827                                              //    if (!xoops_template_touch($tplfile[0]->getVar('tpl_id'))) {

 828                                              //        $msgs[] = '&nbsp;&nbsp;<span style="color:#ff0000;">ERROR: Could not recompile template <b>'.$blocks[$i]['template'].'</b>.</span>';

 829                                              //    } else {

 830                                              //        $msgs[] = '&nbsp;&nbsp;Template <b>'.$blocks[$i]['template'].'</b> recompiled.';

 831                                              //    }

 832                                              //}

 833                                          }
 834                                      }
 835                                  }
 836                              }
 837                              if ($fcount == 0) {
 838                                  $newbid = $xoopsDB->genId($xoopsDB->prefix('newblocks').'_bid_seq');
 839                                  $block_name = addslashes($blocks[$i]['name']);
 840                                  $sql = "INSERT INTO ".$xoopsDB->prefix("newblocks")." (bid, mid, func_num, options, name, title, content, side, weight, visible, block_type, isactive, dirname, func_file, show_func, edit_func, template, last_modified) VALUES (".$newbid.", ".$mid.", ".$i.",'".addslashes($options)."','".$block_name."', '".$block_name."', '', 0, 0, 0, 'M', 1, '".addslashes($dirname)."', '".addslashes($blocks[$i]['file'])."', '".addslashes($blocks[$i]['show_func'])."', '".addslashes($editfunc)."', '".$template."', ".time().")";
 841                                  $result = $xoopsDB->query($sql);
 842                                  if (!$result) {
 843                                      $msgs[] = '&nbsp;&nbsp;ERROR: Could not create '.$blocks[$i]['name'];
 844                                  } else {
 845                                      if (empty($newbid)) {
 846                                          $newbid = $xoopsDB->getInsertId();
 847                                      }
 848                                      if ($template != '') {
 849                                          $tplfile =& $tplfile_handler->create();
 850                                          $tplfile->setVar('tpl_module', $dirname);
 851                                          $tplfile->setVar('tpl_refid', $newbid);
 852                                          $tplfile->setVar('tpl_source', $content, true);
 853                                          $tplfile->setVar('tpl_tplset', 'default');
 854                                          $tplfile->setVar('tpl_file', $blocks[$i]['template'], true);
 855                                          $tplfile->setVar('tpl_type', 'block');
 856                                          $tplfile->setVar('tpl_lastimported', 0);
 857                                          $tplfile->setVar('tpl_lastmodified', time());
 858                                          $tplfile->setVar('tpl_desc', $blocks[$i]['description'], true);
 859                                          if (!$tplfile_handler->insert($tplfile)) {
 860                                              $msgs[] = '&nbsp;&nbsp;<span style="color:#ff0000;">ERROR: Could not insert template <b>'.$blocks[$i]['template'].'</b> to the database.</span>';
 861                                          } else {
 862                                              $msgs[] = '&nbsp;&nbsp;Template <b>'.$blocks[$i]['template'].'</b> inserted to the database.';
 863                                          }
 864                                      }
 865                                      $msgs[] = '&nbsp;&nbsp;Block <b>'.$blocks[$i]['name'].'</b> created. Block ID: <b>'.$newbid.'</b>';
 866                                  }
 867                              }
 868                          }
 869                      }
 870                  }
 871                  $block_arr = XoopsBlock::getByModule($mid);
 872                  foreach ($block_arr as $block) {
 873                      if (!in_array($block->getVar('show_func'), $showfuncs) || !in_array($block->getVar('func_file'), $funcfiles)) {
 874                          $sql = sprintf("DELETE FROM %s WHERE bid = %u", $xoopsDB->prefix('newblocks'), $block->getVar('bid'));
 875                          if(!$xoopsDB->query($sql)) {
 876                              $msgs[] = '&nbsp;&nbsp;<span style="color:#ff0000;">ERROR: Could not delete block <b>'.$block->getVar('name').'</b>. Block ID: <b>'.$block->getVar('bid').'</b></span>';
 877                          } else {
 878                              $msgs[] = '&nbsp;&nbsp;Block <b>'.$block->getVar('name').' deleted. Block ID: <b>'.$block->getVar('bid').'</b>';
 879                          }
 880                      }
 881                  }
 882  
 883                  $configs = $modules[$mid]->getInfo('config');
 884                  if ($configs != false) {
 885                      if ($modules[$mid]->getVar('hascomments') != 0) {
 886                          include_once(XOOPS_ROOT_PATH.'/include/comment_constants.php');
 887                          array_push($configs, array('name' => 'com_rule', 'title' => '_CM_COMRULES', 'description' => '', 'formtype' => 'select', 'valuetype' => 'int', 'default' => 1, 'options' => array('_CM_COMAPPROVEALL' => XOOPS_COMMENT_APPROVEALL, '_CM_COMAPPROVEUSER' => XOOPS_COMMENT_APPROVEUSER, '_CM_COMAPPROVEADMIN' => XOOPS_COMMENT_APPROVEADMIN)));
 888                          array_push($configs, array('name' => 'com_anonpost', 'title' => '_CM_COMANONPOST', 'description' => '', 'formtype' => 'yesno', 'valuetype' => 'int', 'default' => 0));
 889                      }
 890                  } else {
 891                      if ($modules[$mid]->getVar('hascomments') != 0) {
 892                          $configs = array();
 893                          include_once(XOOPS_ROOT_PATH.'/include/comment_constants.php');
 894                          $configs[] = array('name' => 'com_rule', 'title' => '_CM_COMRULES', 'description' => '', 'formtype' => 'select', 'valuetype' => 'int', 'default' => 1, 'options' => array('_CM_COMAPPROVEALL' => XOOPS_COMMENT_APPROVEALL, '_CM_COMAPPROVEUSER' => XOOPS_COMMENT_APPROVEUSER, '_CM_COMAPPROVEADMIN' => XOOPS_COMMENT_APPROVEADMIN));
 895                          array_push($configs, array('name' => 'com_anonpost', 'title' => '_CM_COMANONPOST', 'description' => '', 'formtype' => 'yesno', 'valuetype' => 'int', 'default' => 0));
 896                      }
 897                  }
 898                  // RMV-NOTIFY

 899                  if ($modules[$mid]->getVar('hasnotification') != 0) {
 900                      if (empty($configs)) {
 901                          $configs = array();
 902                      }
 903                      include_once(XOOPS_ROOT_PATH.'/include/notification_constants.php');
 904                      $configs[] = array ('name' => 'notification_enabled', 'title' => '_NOT_CONFIG_ENABLED', 'description' => '_NOT_CONFIG_ENABLEDDSC', 'formtype' => 'select', 'valuetype' => 'int', 'default' => XOOPS_NOTIFICATION_ENABLEBOTH, 'options' => $options);
 905                  }
 906  
 907                  if ($configs != false) {
 908                      $msgs[] = 'Adding module config data...';
 909                      $config_handler =& xoops_gethandler('config');
 910                      $order = 0;
 911                      foreach ($configs as $config) {
 912                          $confobj =& $config_handler->createConfig();
 913                          $confobj->setVar('conf_modid', $newmid);
 914                          $confobj->setVar('conf_catid', 0);
 915                          $confobj->setVar('conf_name', $config['name']);
 916                          $confobj->setVar('conf_title', $config['title'], true);
 917                          $confobj->setVar('conf_desc', $config['description'], true);
 918                          $confobj->setVar('conf_formtype', $config['formtype']);
 919                          $confobj->setVar('conf_valuetype', $config['valuetype']);
 920                          $confobj->setVar('conf_value', $config['default'], true);
 921                          $confobj->setVar('conf_order', $order);
 922                          $confop_msgs = '';
 923                          if (isset($config['options']) && is_array($config['options'])) {
 924                              foreach ($config['options'] as $key => $value) {
 925                                  $confop =& $config_handler->createConfigOption();
 926                                  $confop->setVar('confop_name', $key, true);
 927                                  $confop->setVar('confop_value', $value, true);
 928                                  $confobj->setConfOptions($confop);
 929                                  $confop_msgs .= '<br />&nbsp;&nbsp;&nbsp;&nbsp;Config option added. Name: <b>'.$key.'</b> Value: <b>'.$value.'</b>';
 930                                  unset($confop);
 931                              }
 932                          }
 933                          $order++;
 934                          if ($config_handler->insertConfig($confobj) != false) {
 935                              $msgs[] = '&nbsp;&nbsp;Config <b>'.$config['name'].'</b> added to the database.'.$confop_msgs;
 936                          } else {
 937                              $msgs[] = '&nbsp;&nbsp;<span style="color:#ff0000;">ERROR: Could not insert config <b>'.$config['name'].'</b> to the database.</span>';
 938                          }
 939                          unset($confobj);
 940                      }
 941                      unset($configs);
 942                  }
 943                  foreach ($msgs as $msg) {
 944                      echo '<code>'.$msg.'</code><br />';
 945                  }
 946              }
 947              // data for table 'block_module_link'

 948              include_once  './class/dbmanager.php';
 949              $dbm = new db_manager;
 950              $sql = 'SELECT bid, side FROM '.$dbm->prefix('newblocks');
 951              $result = $dbm->query($sql);
 952  
 953              while ($myrow = $dbm->fetchArray($result)) {
 954                  if ($myrow['side'] == 0) {
 955                      $dbm->insert("block_module_link", " VALUES (".$myrow['bid'].", 0)");
 956                  } else {
 957                      $dbm->insert("block_module_link", " VALUES (".$myrow['bid'].", -1)");
 958                  }
 959              }
 960          }
 961          echo '<br />';
 962          flush();
 963          sleep(1);
 964      }
 965  ?>
 966      </div></td>
 967      <td width='5%'>&nbsp;</td>
 968    </tr>
 969    <tr>
 970      <td width='5%'>&nbsp;</td>
 971      <td width='35%' align='left'>&nbsp;</td>
 972      <td width='20%' align='center'>&nbsp;</td>
 973      <td width='35%' align='right'><span style='font-size:85%;'><?php echo _INSTALL_L14;?> >></span> <input type='hidden' name='op' value='updateComments' /><input type='submit' name='submit' value='<?php echo _INSTALL_L47;?>' /></td>
 974      <td width='5%'>&nbsp;</td>
 975    </tr>
 976    <tr>
 977      <td colspan="5">&nbsp;</td>
 978    </tr>
 979  </table>
 980  
 981  <table width="778" cellspacing="0" cellpadding="0" align="center" background="img/bg_table.gif">
 982    <tr>
 983      <td width="150"><img src="img/hbar_left.gif" width="100%" height="23" alt="" /></td>
 984      <td width="478" background="img/hbar_middle.gif">&nbsp;</td>
 985      <td width="150"><img src="img/hbar_installer_right.gif" width="100%" height="23" alt="" /></td>
 986    </tr>
 987  </table>
 988  </form>
 989  </body>
 990  </html>
 991  <?php
 992      break;
 993  
 994  case 'updateComments':
 995      $content = "<p>"._INSTALL_L149."</p>\n";
 996      $b_next = array('updateComments_go', _INSTALL_L138);
 997      include  'install_tpl.php';
 998      break;
 999  
1000  case 'updateComments_go':
1001      unset($xoopsOption['nocommon']);
1002      include  '../mainfile.php';
1003      include  '../class/xoopscomments.php';
1004      include  '../include/comment_constants.php';
1005      $module_handler =& xoops_gethandler('module');
1006      $old_commentd_mods = array('news' => 'comments', 'xoopspoll' => 'xoopspollcomments');
1007      $title = _INSTALL_L147;
1008      $content = '';
1009      foreach ($old_commentd_mods as $module => $com_table) {
1010          $moduleobj =& $module_handler->getByDirname($module);
1011          if (is_object($moduleobj)) {
1012              $content .= '<h5>'.$moduleobj->getVar('name').'</h5>';
1013              $comment_handler =& xoops_gethandler('comment');
1014              $criteria = new CriteriaCompo();
1015              $criteria->setOrder('DESC');
1016              $criteria->setSort('com_id');
1017              $criteria->setLimit(1);
1018              $last_comment =& $comment_handler->getObjects($criteria);
1019              $offset = (is_array($last_comment) && count($last_comment) > 0) ? $last_comment[0]->getVar('com_id') : 0;
1020              $xc = new XoopsComments($xoopsDB->prefix($com_table));
1021              $top_comments =& $xc->getAllComments(array('pid=0'));
1022  
1023              foreach ($top_comments as $tc) {
1024                  $sql = sprintf("INSERT INTO %s (com_id, com_pid, com_modid, com_icon, com_title, com_text, com_created, com_modified, com_uid, com_ip, com_sig, com_itemid, com_rootid, com_status, dohtml, dosmiley, doxcode, doimage, dobr) VALUES (%u, %u, %u, '%s', '%s', '%s', %u, %u, %u, '%s', %u, %u, %u, %u, %u, %u, %u, %u, %u)", $xoopsDB->prefix('xoopscomments'), $tc->getVar('comment_id') + $offset, 0, $moduleobj->getVar('mid'), '', addslashes($tc->getVar('subject', 'n')), addslashes($tc->getVar('comment', 'n')), $tc->getVar('date'), $tc->getVar('date'), $tc->getVar('user_id'), $tc->getVar('ip'), 0, $tc->getVar('item_id'), $tc->getVar('comment_id') + $offset, XOOPS_COMMENT_ACTIVE, 0, 1, 1, 1, 1);
1025  
1026                  if (!$xoopsDB->query($sql)) {
1027                      $content .= _NGIMG.sprintf(_INSTALL_L146, $tc->getVar('comment_id') + $offset).'<br />';
1028                  } else {
1029                      $content .= _OKIMG.sprintf(_INSTALL_L145, $tc->getVar('comment_id') + $offset).'<br />';
1030                      $child_comments = $tc->getCommentTree();
1031                      foreach ($child_comments as $cc) {
1032                          $sql = sprintf("INSERT INTO %s (com_id, com_pid, com_modid, com_icon, com_title, com_text, com_created, com_modified, com_uid, com_ip, com_sig, com_itemid, com_rootid, com_status, dohtml, dosmiley, doxcode, doimage, dobr) VALUES (%u, %u, %u, '%s', '%s', '%s', %u, %u, %u, '%s', %u, %u, %u, %u, %u, %u, %u, %u, %u)", $xoopsDB->prefix('xoopscomments'), $cc->getVar('comment_id') + $offset, $cc->getVar('pid') + $offset, $moduleobj->getVar('mid'), '', addslashes($cc->getVar('subject', 'n')), addslashes($cc->getVar('comment', 'n')), $cc->getVar('date'), $cc->getVar('date'), $cc->getVar('user_id'), $cc->getVar('ip'), 0, $cc->getVar('item_id'), $tc->getVar('comment_id') + $offset, XOOPS_COMMENT_ACTIVE, 0, 1, 1, 1, 1);
1033                          if (!$xoopsDB->query($sql)) {
1034                              $content .= _NGIMG.sprintf(_INSTALL_L146, $cc->getVar('comment_id') + $offset).'<br />';
1035                          } else {
1036                              $content .= _OKIMG.sprintf(_INSTALL_L145, $cc->getVar('comment_id') + $offset).'<br />';
1037                          }
1038                      }
1039                  }
1040              }
1041          }
1042      }
1043      $xoopsDB->query('ALTER TABLE '.$xoopsDB->prefix('xoopscomments').' CHANGE com_id com_id mediumint(8) unsigned NOT NULL auto_increment PRIMARY KEY');
1044      $b_next = array('updateSmilies', _INSTALL_L14);
1045      include  'install_tpl.php';
1046      break;
1047  
1048  case 'updateSmilies':
1049      $content = '<p>'._INSTALL_L150.'</p>';
1050      $b_next = array('updateSmilies_go', _INSTALL_L140);
1051      include  'install_tpl.php';
1052      break;
1053  
1054  
1055  case 'updateSmilies_go':
1056      unset($xoopsOption['nocommon']);
1057      include ('../mainfile.php');
1058      $result = $xoopsDB->query("SELECT * FROM ".$xoopsDB->prefix('smiles'));
1059      $content = '';
1060      $title = _INSTALL_L155;
1061      if (!defined('XOOPS_UPLOAD_PATH')) {
1062          define('XOOPS_UPLOAD_PATH', '../uploads');
1063      }
1064      while ($smiley = $xoopsDB->fetchArray($result)) {
1065          if (file_exists('../images/smilies/'.$smiley['smile_url']) && false != $fp = fopen('../images/smilies/'.$smiley['smile_url'], 'rb')) {
1066              $binary = fread($fp, filesize('../images/smilies/'.$smiley['smile_url']));
1067              fclose($fp);
1068              if (!preg_match("/\.([a-zA-Z0-9]+)$/", $smiley['smile_url'], $matched)) {
1069                  continue;
1070              }
1071              $newsmiley = uniqid('smil').'.'.strtolower($matched[1]);
1072              if (false != $fp = fopen(XOOPS_UPLOAD_PATH.'/'.$newsmiley, 'wb')) {
1073                  if (-1 != fwrite($fp, $binary)) {
1074                      $xoopsDB->query("UPDATE ".$xoopsDB->prefix('smiles')." SET smile_url='".$newsmiley."' WHERE id=".$smiley['id']);
1075                      $content .= _OKIMG.sprintf(_INSTALL_L154, $smiley['smile_url']).'<br />';
1076                  } else {
1077                      $content .= _NGIMG.sprintf(_INSTALL_L153, $smiley['smile_url']).'<br />';
1078                  }
1079                  fclose($fp);
1080              }
1081          } else {
1082              $content .= _OKIMG.sprintf(_INSTALL_L152, $smiley['smile_url']).'<br />';
1083          }
1084      }
1085      $result = $xoopsDB->query("SELECT * FROM ".$xoopsDB->prefix('ranks'));
1086      while ($rank = $xoopsDB->fetchArray($result)) {
1087          if (file_exists('../images/ranks/'.$rank['rank_image']) && false != $fp = fopen('../images/ranks/'.$rank['rank_image'], 'rb')) {
1088              $binary = fread($fp, filesize('../images/ranks/'.$rank['rank_image']));
1089              fclose($fp);
1090              if (!preg_match("/\.([a-zA-Z0-9]+)$/", $rank['rank_image'], $matched)) {
1091                  continue;
1092              }
1093              $newrank = uniqid('rank').'.'.strtolower($matched[1]);
1094              if (false != $fp = fopen(XOOPS_UPLOAD_PATH.'/'.$newrank, 'wb')) {
1095                  if (-1 != fwrite($fp, $binary)) {
1096                      $content .= _OKIMG.sprintf(_INSTALL_L154, $rank['rank_image']).'<br />';
1097                      $xoopsDB->query("UPDATE ".$xoopsDB->prefix('ranks')." SET rank_image='".$newrank."' WHERE rank_id=".$rank['rank_id']);
1098                  } else {
1099                      $content .= _NGIMG.sprintf(_INSTALL_L153, $rank['rank_image']).'<br />';
1100                  }
1101                  fclose($fp);
1102              }
1103          } else {
1104              $content .= _OKIMG.sprintf(_INSTALL_L152, $rank['rank_image']).'<br />';
1105          }
1106      }
1107      $b_next = array('updateAvatars', _INSTALL_L14);
1108      include  'install_tpl.php';
1109      break;
1110  
1111  case 'updateAvatars':
1112      $content = '<p>'._INSTALL_L151.'</p>';
1113      $b_next = array('updateAvatars_go', _INSTALL_L139);
1114      include  'install_tpl.php';
1115      break;
1116  
1117  case 'updateAvatars_go':
1118      unset($xoopsOption['nocommon']);
1119      include ('../mainfile.php');
1120      $content = '';
1121      $title = _INSTALL_L156;
1122      $avatars = getImageFileList(XOOPS_ROOT_PATH.'/images/avatar/users/');
1123      $xoopsDB->query("UPDATE ".$xoopsDB->prefix('users')." SET user_avatar='blank.gif'");
1124      $avt_handler =& xoops_gethandler('avatar');
1125      if (!defined('XOOPS_UPLOAD_PATH')) {
1126          define('XOOPS_UPLOAD_PATH', '../uploads');
1127      }
1128      foreach ($avatars as $avatar_file) {
1129          if (preg_match("/^([0-9]+)\.([a-zA-Z]+)$/", $avatar_file, $matched)) {
1130              $user_id = intval($matched[1]);
1131              if ($user_id > 0 && false != $fp = fopen('../images/avatar/users/'.$avatar_file, 'rb')) {
1132                  $binary = fread($fp, filesize('../images/avatar/users/'.$avatar_file));
1133                  fclose($fp);
1134                  $newavatar = uniqid('cavt').'.'.strtolower($matched[2]);
1135                  if (false != $fp = fopen(XOOPS_UPLOAD_PATH.'/'.$newavatar, 'wb')) {
1136                      if (-1 != fwrite($fp, $binary)) {
1137                          $error = false;
1138                          if (!$xoopsDB->query("UPDATE ".$xoopsDB->prefix('users')." SET user_avatar='".$newavatar."' WHERE uid=".$user_id)) {
1139                              $error = true;
1140                          } else {
1141                              $avatar =& $avt_handler->create();
1142                              $avatar->setVar('avatar_file', $newavatar);
1143                              $avatar->setVar('avatar_name', 'custom');
1144                              $avatar->setVar('avatar_mimetype', '');
1145                              $avatar->setVar('avatar_display', 1);
1146                              $avatar->setVar('avatar_type', 'C');
1147                              if(!$avt_handler->insert($avatar)) {
1148                                  $error = true;
1149                              } else {
1150                                  $avt_handler->addUser($avatar->getVar('avatar_id'), $user['uid']);
1151                              }
1152                          }
1153                          if (false != $error) {
1154                              $content .= _NGIMG.sprintf(_INSTALL_L153, $avatar_file).'<br />';
1155                              @unlink(XOOPS_UPLOAD_PATH.'/'.$newavatar);
1156                          } else {
1157                              $content .= _OKIMG.sprintf(_INSTALL_L154, $avatar_file).'<br />';
1158                          }
1159                      } else {
1160                          $content .= _NGIMG.sprintf(_INSTALL_L153, $avatar_file).'<br />';
1161                          $xoopsDB->query("UPDATE ".$xoopsDB->prefix('users')." SET user_avatar='blank.gif' WHERE uid=".$user_id);
1162                      }
1163                      fclose($fp);
1164                  }
1165              } else {
1166                  $content .= _NGIMG.sprintf(_INSTALL_L152, $avatar_file).'<br />';
1167              }
1168          }
1169      }
1170  
1171      $b_next = array('finish', _INSTALL_L14);
1172      include  'install_tpl.php';
1173      break;
1174  
1175  
1176  case "siteInit":
1177      include_once  "../mainfile.php";
1178  
1179      $content = "<table align='center' width='70%'>\n";
1180      $content .= "<tr><td colspan='2' align='center'>"._INSTALL_L36."</td></tr>\n";
1181      $content .= "<tr><td align='right'><b>"._INSTALL_L37."</b></td><td><input type=\"text\" name=\"adminname\" /></td></tr>\n";
1182      $content .= "<tr><td align='right'><b>"._INSTALL_L38."</b></td><td><input type='text' name='adminmail' value='' maxlength='60' /></td></tr>\n";
1183      $content .= "<tr><td align='right'><b>"._INSTALL_L39."</b></td><td><input type='password' name='adminpass' /></td></tr>\n";
1184      $content .= "<tr><td align='right'><b>"._INSTALL_L74."</b></td><td><input type='password' name='adminpass2' /></td></tr>\n";
1185      $content .= "</table>\n";
1186      $b_next = array('insertData', _INSTALL_L116);
1187  
1188      include  'install_tpl.php';
1189      break;
1190  
1191  case "insertData":
1192      $adminname = $myts->stripSlashesGPC($_POST['adminname']);
1193      $adminpass = $myts->stripSlashesGPC($_POST['adminpass']);
1194      $adminpass2 = $myts->stripSlashesGPC($_POST['adminpass2']);
1195      $adminmail = $myts->stripSlashesGPC($_POST['adminmail']);
1196  
1197      if (!preg_match("/^[_a-z0-9-]+(\.[_a-z0-9-]+)*@[a-z0-9-]+([\.][a-z0-9-]+)+$/i",$adminmail)) {
1198          $content = "<p>"._INSTALL_L73."</p>\n";
1199          $b_back = array('', _INSTALL_L112 );
1200          include  'install_tpl.php';
1201          exit();
1202      }
1203      if ( !isset($adminname) || !isset($adminpass) || !isset($adminmail) || $adminmail == "" || $adminname =="" || $adminpass =="" || $adminpass != $adminpass2) {
1204          $content = "<p>"._INSTALL_L41."</p>\n";
1205          $b_back = array('', _INSTALL_L112 );
1206          include  'install_tpl.php';
1207          exit();
1208      }
1209  
1210      include_once  "../mainfile.php";
1211      //include_once './include/createtables2.php';

1212      include_once  './makedata.php';
1213      include_once  './class/dbmanager.php';
1214      $dbm = new db_manager;
1215      include_once  './class/cachemanager.php';
1216      $cm = new cache_manager;
1217  
1218      $language = check_language($language);
1219      if ( file_exists("./language/".$language."/install2.php") ) {
1220          include_once "./language/".$language."/install2.php";
1221      } elseif ( file_exists("./language/english/install2.php") ) {
1222          include_once  "./language/english/install2.php";
1223          $language = 'english';
1224      } else {
1225          echo 'no language file (install2.php).';
1226          exit();
1227      }
1228  
1229      //$tables = array();

1230      $result = $dbm->queryFromFile('./sql/'.XOOPS_DB_TYPE.'.data.sql');
1231      $result = $dbm->queryFromFile('./language/'.$language.'/'.XOOPS_DB_TYPE.'.lang.data.sql');
1232      $group = make_groups($dbm);
1233      $result = make_data($dbm, $cm, $adminname, $adminpass, $adminmail, $language, $group);
1234      $content = $dbm->report();
1235      $content .= $cm->report();
1236      include_once  "./class/mainfilemanager.php";
1237      $mm = new mainfile_manager("../mainfile.php");
1238      foreach($group as $key => $val){
1239          $mm->setRewrite($key, intval($val));
1240      }
1241      $result = $mm->doRewrite();
1242      $content .= $mm->report();
1243  
1244      $b_next = array('finish', _INSTALL_L117);
1245      $title = _INSTALL_L116;
1246      setcookie('xoops_session', '', time() - 3600);
1247      include  'install_tpl.php';
1248  
1249      break;
1250  
1251  case 'finish':
1252  
1253      $title = _INSTALL_L32;
1254      $content = "<table width='60%' align='center'><tr><td align='left'>\n";
1255      include './language/'.$language.'/finish.php';
1256      $content .= "</td></tr></table>\n";
1257      include  'install_tpl.php';
1258      break;
1259  }
1260  
1261  /*

1262   * gets list of name of directories inside a directory

1263   */
1264  function getDirList($dirname)
1265  {
1266      require_once dirname(dirname(__FILE__))."/class/xoopslists.php";
1267      return XoopsLists::getDirListAsArray($dirname);
1268  }
1269  
1270  /*

1271   * gets list of name of files within a directory

1272   */
1273  function getImageFileList($dirname)
1274  {
1275      require_once dirname(dirname(__FILE__))."/class/xoopslists.php";
1276      return XoopsLists::getImgListAsArray($dirname);
1277  }
1278  
1279  function &xoops_module_gettemplate($dirname, $template, $block=false)
1280  {
1281      if ($block) {
1282          $path = XOOPS_ROOT_PATH.'/modules/'.$dirname.'/templates/blocks/'.$template;
1283      } else {
1284          $path = XOOPS_ROOT_PATH.'/modules/'.$dirname.'/templates/'.$template;
1285      }
1286      if (!file_exists($path)) {
1287          return false;
1288      } else {
1289          $lines = file($path);
1290      }
1291      if (!$lines) {
1292          return false;
1293      }
1294      $ret = '';
1295      $count = count($lines);
1296      for ($i = 0; $i < $count; $i++) {
1297          $ret .= str_replace("\n", "\r\n", str_replace("\r\n", "\n", $lines[$i]));
1298      }
1299      return $ret;
1300  }
1301  
1302  function check_language($language){
1303       if ( file_exists('../modules/system/language/'.$language.'/modinfo.php') ) {
1304          return $language;
1305      } else {
1306          return 'english';
1307      }
1308  }
1309  ?>


Généré le : Sun Nov 25 11:44:32 2007 par Balluche grâce à PHPXref 0.7
  Clicky Web Analytics