<?php
error_reporting(E_ALL);
define('REQUIRE_PHP_VERSION','5.2'); // запрашиваемая версия PHP
define('H', $_SERVER['DOCUMENT_ROOT']); // корневая директория сайта
define('TEMP', H.'/sys/tmp'); // временная папка
define('TMP', H.'/sys/tmp'); // временная папка
define('TIME', time()); // временная метка unix

define('DIR_FILES', realpath(H.'/sys/files'));

function __autoload($class_name) {@include_once (H.'/sys/plugins/classes/'.strtolower($class_name).'.class.php');}

session_name('DCMS_INSTALL_SESSION') or die('Невозможно инициализировать сессии');
@session_start() or die('Невозможно инициализировать сессии');
define('SESS', preg_replace('#[^a-z0-9]#i', '', session_id()));





/* Переназначение функций */
function my_esc($str){return mysql_real_escape_string($str);}
function for_value($text){return text::for_value($text);}
function output_text($text){return text::output_text($text);}
function rus_mes($mes,$v=1){return misc::rus_mes($mes,$v);}
function vremja($t){return misc::vremja($t);}
function size_data($filesize=0){return misc::size_data($filesize);}
function ini_file_write($path,$array){return misc::ini_file_write($path,$array);}
/* ---------------------- */


function myhash($pass,$salt){
return md5($salt.md5((string)$pass).md5($salt).$salt);
}


function db_connect()
{
$settings = &$_SESSION['settings'];
mysql_connect($settings['mysql_host'],$settings['mysql_user'],$settings['mysql_pass']) or die('Нет соединения с сервером базы');
mysql_select_db($settings['mysql_base'])or die('Нет доступа к выбранной базе данных');
mysql_query('SET NAMES "utf8"');
}


function passgen($len=32)
{
$password='';
$small='abcdefghijklmnopqrstuvwxyz';
$large='ABCDEFGHIJKLMNOPQRSTUVWXYZ';
$numbers='1234567890';
//$symbols='_)(%^*!-';
for ($i=0; $i<$len; $i++) {
switch (mt_rand(1,3)) {
//case 4:$password.=$symbols[mt_rand(0,8)];break;
case 3:$password.=$large[mt_rand(0,25)];break;
case 2:$password.=$small[mt_rand(0,25)];break;
case 1:$password.=$numbers[mt_rand(0,9)];break;
}
}
return $password;
}

if (is_file(H.'/sys/ini/settings.ini'))
{
header("Location: /?".passgen().'&'.SID);
exit;
}

$install = &$_SESSION['install'];
$options = &$_SESSION['options'];
$ini = @parse_ini_file('inc/steps.ini',true);

foreach ($ini as $key=>$value) {
if (empty($value['if_option']) || isset($options[$value['if_option']]))
{
if (empty($install[$key]['status']))
{
$step = $key;
break;
}
}
}




header('Content-Type: application/xhtml+xml; charset=utf-8');
ob_start();
include 'inc/head.php';

echo "<h1>{$ini[$step]['title']}</h1>";



if (isset($_POST['to_start'])){
header("Location: ./?".passgen().'&'.SID);

$_SESSION=array();
exit;
}
echo "<form method='post' action='?".passgen()."'>";
echo "<input type='submit' name='to_start' value='В начало' />";
echo "<input type='submit' name='refresh' value='Обновить' />";
echo "</form>";


if (!@include_once ('inc/'.$step.'.php'))die('Невозможно продолжить установку по причине отсутствия файла inc/'.$step.'.php');
$inst_obj = new $step;

if (isset($_POST['next_step'])){
$install[$step]['status'] = $inst_obj->actions();

header("Location: ./?".passgen().'&'.SID);
exit;

}


echo "<form method='post' action='?".passgen()."'>";
if ($inst_obj->form())
echo "<input type='submit' name='next_step' value='Далее' />";
else
echo "<input type='submit' name='refresh' value='Обновить' />";
echo "</form>";


include 'inc/foot.php';
?>
