View file upgrade/upgrade_forum.php

File size: 5.92Kb
<?php
#-----------------------------------------------------#
#          ********* ROTORCMS *********               #
#              Made by  :  VANTUZ                     #
#               E-mail  :  [email protected]         #
#                 Site  :  http://pizdec.ru           #
#             WAP-Site  :  http://visavi.net          #
#                  ICQ  :  36-44-66                   #
#  Вы не имеете право вносить изменения в код скрипта #
#        для его дальнейшего распространения          #
#-----------------------------------------------------#	
require_once ('../includes/start.php');
require_once ('../includes/functions.php');
require_once ('../includes/header.php');
include_once ('../themes/' . $config['themes'] . '/index.php');

if (isset($_GET['act'])) {
  $act = check($_GET['act']);
} else {
  $act = 'index';
} 

show_title('site.png', 'Апгрейд форума движка Wap-Motor 18.x');

switch ($act):
# ###########################################################################################
# #                                    Главная страница                                    ##
# ###########################################################################################
case 'index':

  echo '<b>Прочтите внимательно!</b><br />';
  echo 'Для апгрейда форума у вас уже должен быть установлен движок MotorCMS<br />';
  echo 'Перед установкой переместите папку с профилями пользователей в директорию local (По умолчанию) local/dataforum<br /><br />';

  echo 'Апгрейд возможен для движка Wap-Motor версии 18.x<br /><br />';
  echo 'Важно чтобы в таблицах forums, topics и posts не было никаких записей<br /><br />';

  echo 'Если по какой-то причине произойдет ошибка очистите таблицы forums, topics и posts в базе данных и попробуйте заново произвести апгрейд<br /><br />';

  echo 'После апгрейда необходимо зайти в панель управления форумом и нажать на ссылку <b>"Пересчитать"</b><br /><br />';

  echo '<img src="../images/img/reload.gif" alt="image" /> <b><a href="upgrade_forum.php?act=upgrade&amp;' . SID . '">Перейти к апгрейду</a></b><br /><br />';
  break;
# ###########################################################################################
# #                                        Апгрейд                                         ##
# ###########################################################################################
case 'upgrade':

  if (file_exists(DATADIR . 'dataforum/mainforum.dat')) {
    $file = file(DATADIR . 'dataforum/mainforum.dat');

    foreach ($file as $value) {
      $data = explode('|', $value);

      $maxorder = DB :: $dbh -> querySingle("SELECT IFNULL(MAX(`forums_order`),0)+1 FROM `forums`;");

      DB :: $dbh -> query("INSERT IGNORE INTO `forums` (`forums_id`, `forums_order`, `forums_parent`, `forums_title`, `forums_topics`, `forums_posts`) VALUES (?, ?, ?, ?, ?, ?);", array($data[0], $maxorder, 0, $data[1], $data[4], $data[5]));

      $filestopic = file(DATADIR . 'dataforum/topic' . $data[0] . '.dat');

      foreach ($filestopic as $values) {
        $datatopic = explode('|', $values);

        if (!empty($datatopic[7])) {
          $filescount = file(DATADIR . 'dataforum/' . $datatopic[7] . '.dat');
          $countspost = count($filescount);
          $datastart = explode('|', $filescount[0]);
          $datastop = explode('|', end($filescount));

          $closed = ($datastop[6] == 'CLOSED') ? 1 : 0;
          $locked = ($datatopic[10] == 'ON') ? 1 : 0;

          DB :: $dbh -> query("INSERT IGNORE INTO `topics` (`topics_forums_id`, `topics_title`, `topics_author`, `topics_closed`, `topics_locked`, `topics_posts`, `topics_last_user`, `topics_last_time`) VALUES (?, ?, ?, ?, ?, ?, ?, ?);", array($data[0], $datatopic[3], $datastart[0], $closed, $locked, $countspost, $datatopic[0], $datatopic[9]));

          $lastid = DB :: $dbh -> lastInsertId();

          $filespost = file(DATADIR . 'dataforum/' . $datatopic[7] . '.dat');
          foreach ($filespost as $valuespost) {
            $datapost = explode('|', $valuespost);

            $datapost[4] = str_replace('<br>', '<br />', $datapost[4]);
            $datapost[4] = str_replace('alt="">', 'alt="smile" />', $datapost[4]);

            if (strstr($datapost[2], " - ")) {
              list($browsers, $ipsum) = explode(" - ", $datapost[2]);
            } else {
              list($browsers, $ipsum) = explode(", ", $datapost[2]);
            } 

            DB :: $dbh -> query("INSERT IGNORE INTO `posts` (`posts_forums_id`, `posts_topics_id`, `posts_user`, `posts_text`, `posts_time`, `posts_ip`, `posts_brow`) VALUES (?, ?, ?, ?, ?, ?, ?);", array($data[0], $lastid, $datapost[0], $datapost[4], $datapost[9], $ipsum, $browsers));
          } 
        } 
      } 
    } 

    echo '<b>Апгрейд форума успешно произведен!</b><br /><br />';
    echo '<b>Не обновляйте данную страницу! Закройте ее и удалите файл upgrade_forum.php</b><br /><br />';
  } else {
    echo '<b>Ошибка! Отсутствует файл с разделами форума!</b><br /><br />';
  } 

  echo '<img src="../images/img/back.gif" alt="image" /> <a href="upgrade_forum.php?' . SID . '">Вернуться</a><br />';
  break;

default:
  header("location: upgrade_forum.php?" . SID);
  endswitch;

  echo '<img src="../images/img/homepage.gif" alt="image" /> <a href="../index.php?' . SID . '">На главную</a>';

  include_once ('../themes/' . $config['themes'] . '/foot.php');

  ?>