<?php
/*
=====================================================
 Скрипт модуля Rss Grabber
 http://rss-grabber.ru/
 Автор: Andersoni
 со Автор: Alex
 Copyright (c) 2009-2011
=====================================================
*/

define('Rss_Grabber_INSTALL', 1);

error_reporting(E_ALL ^ E_NOTICE);

@session_start();
//var_export ($_POST);
@ini_set('display_errors', true);
@ini_set('html_errors', false);
@ini_set('error_reporting', E_ALL ^ E_NOTICE);

define('DATALIFEENGINE', true);
define('ROOT_DIR', dirname (__FILE__));
define('ENGINE_DIR', ROOT_DIR.'/engine');

require_once ENGINE_DIR.'/data/config.php';
include_once ENGINE_DIR.'/classes/mail.class.php';
require_once ENGINE_DIR.'/classes/mysql.php';
require_once ENGINE_DIR.'/data/dbconfig.php';
require_once ENGINE_DIR.'/modules/functions.php';

define( 'PATH', 'backup/' );
function fn_select($items, $selected) {
	$select = '';
	foreach ( $items as $key => $value ) {
		$select .= $key == $selected ? "<OPTION VALUE='{$key}' SELECTED>{$value}" : "<OPTION VALUE='{$key}'>{$value}";
	}
	return $select;
}

function file_select() {
	$files = array ('' );
	if( is_dir( PATH ) && $handle = opendir( PATH ) ) {
		while ( false !== ($file = readdir( $handle )) ) {
			if( preg_match( "/^.+?\.sql(\.(gz|bz2))?$/", $file ) and preg_match( "/sinon/", $file )) {
				$files[$file] = $file;
			}
		}
		closedir( $handle );
	}
	return $files;
}

$files = fn_select( file_select(), '' );


extract($_REQUEST, EXTR_SKIP);

$act = $_REQUEST['act'];

if (!intval($act))
{
	$act = 1;

	$next_act = 2;
}

$button_value = 'Дальше >';

switch ($act)
{
	default:
	case "1":

		$content = "Добро пожаловать в мастер установки <b>Rss Grabber v 3.6.8</b><br />Данный мастер поможет вам установить скрипт всего за пару минут. <br /><br />Прежде чем начать установку убедитесь, что все файлы дистрибутива загружены на сервер <b>правильно</b>!<br /><br />";


	break;

	case "2":

	$licence_file = @file_get_contents('./install/licence.odf');

	$content = "<script language='javascript'>
	check_eula = function(){
	if( document.getElementById( 'eula' ).checked == true ){ return true; }
	else { alert( 'Вы должны принять лицензионное соглашение, прежде чем продолжите установку.' ); return false; }}
	document.getElementById( 'install' ).onsubmit = check_eula;</script>
	<div class=eula>".urldecode($licence_file)."</div>
<input type=hidden name=action value=function_check>
<input type='checkbox' name='eula' id='eula'><b>Я принимаю данное соглашение</b>";
$next_act = 2.1;

	break;

case "2.1":
    $AllError=0;


// Апач
    if(eregi('Apache', $_SERVER['SERVER_SOFTWARE'])) $API="............<img src=\"install/images/icon-activate.gif\" border=0 align=absmiddle> <b class='ok'>Ok</b>";
    else {
        $API="............<img src=\"install/images/errormessage.gif\"  border=0 align=absmiddle> <b class='error'>Error</b>";
        $AllError=1;
    }

// Версия PHP
    $phpversion=substr(phpversion(),0,1);
    if($phpversion >= 4) $php="............<img src=\"install/images/icon-activate.gif\" border=0 align=absmiddle> <b class='ok'>Ok</b>";
    else {
        $php="............<img src=\"install/images/errormessage.gif\"  border=0 align=absmiddle> <b class='error'>Error</b>";
        $AllError=1;
    }



    if(@mysql_get_server_info()) {
        $mysqlversion=substr(@mysql_get_server_info(),0,1);
        if($mysqlversion >= 4) $mysql="............<img src=\"install/images/icon-activate.gif\" border=0 align=absmiddle> <b class='ok'>Ok</b>";
        else {
            $mysql="............<img src=\"install/images/errormessage.gif\"  border=0 align=absmiddle> <b class='error'>Error</b>";
            $AllError=1;
        }
    }else $mysql="...............?";

// Rewrite
    if (function_exists('curl_init')) $rewrite="............<img src=\"install/images/icon-activate.gif\" border=0 align=absmiddle> <b class='ok'>Ok</b>";
    else {
        $rewrite="............<img src=\"install/images/errormessage.gif\"  border=0 align=absmiddle> <b class='error'>Error</b>";
        $AllError=1;
    }


	$disable_functions = @ini_get ('disable_functions');
	$fun = explode (',', $disable_functions);
$functions = Array();
foreach ($fun as $item)
		{
$functions[] = trim($item);
		}


    $GD=gd_info();

//GD Support
    if(@ini_get ('safe_mode') == 0)
        $gd_support="............<img src=\"install/images/icon-activate.gif\" border=0 align=absmiddle> <b class='ok'>Ok</b>";
    else {
        $gd_support="............<img src=\"install/images/errormessage.gif\"  border=0 align=absmiddle> <b class='error'>Error</b>";
        $AllError=1;
    }

//FreeType Support
    if(!in_array ('fopen', $functions))
        $gd_freetype_support="............<img src=\"install/images/icon-activate.gif\" border=0 align=absmiddle> <b class='ok'>Ok</b>";
    else {
        $gd_freetype_support="............<img src=\"install/images/errormessage.gif\"  border=0 align=absmiddle> <b class='error'>Error</b>";
        $AllError=1;
    }

//FreeType Linkage
    if(!in_array ('fsockopen', $functions))
        $gd_freetype_linkage="............<img src=\"install/images/icon-activate.gif\" border=0 align=absmiddle> <b class='ok'>Ok</b>";
    else {
        $gd_freetype_linkage="............<img src=\"install/images/errormessage.gif\"  border=0 align=absmiddle> <b class='error'>Error</b>";
        $AllError=1;
    }

    if(!in_array ('set_time_limit', $functions))
        $gd_freetype_linkge="............<img src=\"install/images/icon-activate.gif\" border=0 align=absmiddle> <b class='ok'>Ok</b>";
    else {
        $gd_freetype_linkge="............<img src=\"install/images/errormessage.gif\"  border=0 align=absmiddle> <b class='error'>Error</b>";
        $AllError=1;
    }


	$content = <<<HTML
                <FIELDSET id=fldLayout><LEGEND id=lgdLayout><u>Т</u>ест системных требований</LEGEND>
                    <DIV style="padding: 5px;background-color: #FFFFFF;">
                        <ol>
                            <li id="line1"> Apache => 1.3.* $API</li>
                            <li id="line2"> PHP => 4.* $php</li>
                            <li id="line3"> CURL $rewrite</li>
                            <li id="line4">безопасный режим $gd_support</li>
                            <li id="line5">функция <b>fopen</b> $gd_freetype_support</li>
                            <li id="line6">функция <b>fsockopen</b> $gd_freetype_linkage</li>
                            <li id="line7">функция <b>set_time_limit</b> $gd_freetype_linkge</li>
                            <ol>
                                </DIV>
                                <div style="padding: 5px"><strong>Расшифровка</strong>: <img src="install/images/icon-activate.gif" border=0 align=absmiddle> <b>Ok</b> - тест пройден,
                                    <img src="install/images/errormessage.gif"  border=0 align=absmiddle> <b>Error</b> - тест не пройден (возможны проблемы при работе модуля, обратитесь к документации сервера или свяжитесь с администратором сервера)
                                </div>
                                </FIELDSET>
HTML;

if (count(file_select()) > 1 and @file_exists (ENGINE_DIR ."/inc/plugins/sinonims.php"))$next_act = 2.2;
else $next_act = 3;
	break;
	case "2.2":


	$content = <<<HTML

<div style="padding-top:5px;padding-bottom:2px;">

<table width="100%">
    <tr>
        <td style="padding:2px;">Выберите базу синонимов: <SELECT NAME=file>{$files}</SELECT></td>
    </tr>
</table>
</div>
HTML;

	$next_act = 3;

	break;

	case "3":
if ($_POST['file'] != '0' and isset($_POST['file'])){$content = include './install/dumper.php';}
else{
	if ($_REQUEST['install_type'])
	{
		if ($_REQUEST['install_type'] == "auto")
		{
			$content = "<font color=\"red\"><b>Вы действительно хотите произвести новую установку ??? </font> </b><br /><br /><b> При нажатиии \"&quot;Дальше&quot;\" будет удалена старая таблица rss и сразу же записана новая. </b> ";
				$next_act = 4;

		}
		elseif ($_REQUEST['install_type'] == "301")
		{
				$next_act = 4.1;
$content = "<b>При нажатиии &quot;Дальше&quot; будет обновлена таблица rss. </b> ";
			}
		elseif ($_REQUEST['install_type'] == "364")
		{
				$next_act = 4.2;
$content = "<b>При нажатиии &quot;Дальше&quot; будет обновлена таблица rss. </b> ";
			}
		elseif ($_REQUEST['install_type'] == "365")
		{
				$next_act = 4.3;
$content = "<b>При нажатиии &quot;Дальше&quot; будет обновлена таблица rss. </b> ";
			}
		elseif ($_REQUEST['install_type'] == "366")
		{
				$next_act = 4.4;
$content = "<b>При нажатиии &quot;Дальше&quot; будет обновлена таблица rss. </b> ";
			}
		elseif ($_REQUEST['install_type'] == "367")
		{
				$next_act = 4.5;
$content = "<b>При нажатиии &quot;Дальше&quot; будет обновлена таблица rss. </b> ";
			}
		}
	else
	{
if (@file_exists(ENGINE_DIR.'/data/rss_config.php')) include(ENGINE_DIR.'/data/rss_config.php');

		$content = "Выберите тип установки:<br />";
		$content .= "<input type=\"radio\" name=\"install_type\" class=\"radiobutton\" value=\"auto\" checked=\"checked\">Новая установка<br />";
		if ($config_rss['version'] < '3.6.4'){$content .= "<input type=\"radio\" name=\"install_type\" class=\"radiobutton\" value=\"301\" />Обновление с версии 3.1 и выше<br />";}
		if ($config_rss['version'] == '3.6.4'){$content .= "<input type=\"radio\" name=\"install_type\" class=\"radiobutton\" value=\"364\" />Обновление с версии 3.6.4.*<br />";}
		if ($config_rss['version'] == '3.6.5'){$content .= "<input type=\"radio\" name=\"install_type\" class=\"radiobutton\" value=\"365\" />Обновление с версии 3.6.5<br />";}
		if ($config_rss['version'] == '3.6.6'){$content .= "<input type=\"radio\" name=\"install_type\" class=\"radiobutton\" value=\"366\" />Обновление с версии 3.6.6<br>";}
		if ($config_rss['version'] == '3.6.7'){$content .= "<input type=\"radio\" name=\"install_type\" class=\"radiobutton\" value=\"367\" />Обновление с версии 3.6.7";}
		if ($config_rss['version'] == '3.6.8'){$content .= "<input type=\"radio\" name=\"install_type\" class=\"radiobutton\" value=\"367\" />Обновление с версии 3.6.8";}
		$next_act = 3;
	}
}
	break;

case "4":


		require_once './install/db.php';

		foreach($db_query as $table)
		{
			$db->query($table, false);
		}

		$content = "База данных MySQL создана...<br /><br />Все необходимые поля внесены...<br /><br />Нажмите &quot;Дальше&quot; для продолжения.";

		$next_act = 9;
	break;


case "4.1":

		require_once './install/db_3.1.php';
			foreach($db_query as $table)
			{
				$db->query($table, false);
			}
			$content = "База данных MySQL обновлена...<br /><br />Все необходимые изменения внесены...<br /><br />Нажмите &quot;Дальше&quot; для продолжения.";

			$next_act = 9;
break;

case "4.2":

		require_once './install/db_3.4.php';
			foreach($db_query as $table)
			{
				$db->query($table, false);
			}

			$content = "База данных MySQL обновлена...<br /><br />Все необходимые изменения внесены...<br /><br />Нажмите &quot;Дальше&quot; для продолжения.";

			$next_act = 9;
break;

	case "4.3":

		require_once './install/db_3.5.php';
			foreach($db_query as $table)
			{
				$db->query($table, false);
			}

			$next_act = 9;

	break;

case "4.4":

		require_once './install/db_3.6.6.php';
			foreach($db_query as $table)
			{
				$db->query($table, false);
			}
			$content = "База данных MySQL обновлена...<br /><br />Все необходимые изменения внесены...<br /><br />Нажмите &quot;Дальше&quot; для продолжения.";

			$next_act = 9;
break;


case "4.5":

		require_once './install/db_3.6.7.php';
			foreach($db_query as $table)
			{
				$db->query($table, false);
			}
			$content = "База данных MySQL обновлена...<br /><br />Все необходимые изменения внесены...<br /><br />Нажмите &quot;Дальше&quot; для продолжения.";

			$next_act = 9;
break;

	case "9":

		$ml = 'Nulled';
if(chmod_pap('install.php')){
		$content = "
<script type=\"text/javascript\" src=\"engine/inc/plugins/jquery.js\"></script>
		<script>
  $(document).ready(function(e){


    function countChecked() {
      var n = $(\"#check:checked\").length;
      $(\"#checks\").html(n != 0 ? '' : '<br /><font color=\"red\">Внимание: Удалите файл <font color=\"blue\"><b>install.php</b></font> и папку <font color=\"blue\"><b>install</b></font> во избежание повторной установки модуля!</font><br />');
$('button').attr('disabled', n == 0 ? true : '');
    }
    countChecked();
    $(\":checkbox\").click(countChecked);


  });

</script>
		Поздравляем Вас, <b>Rss Grabber 3.6.8</b> был успешно установлен.<br /><br /><br /><b>Удалить файлы инсталляции автоматически?</b> <input type=\"checkbox\" name=\"del\" value=\"1\" id=\"check\" checked /><br /> <div id=\"checks\"></div><br><br />Приятной Вам работы<br /><br /><i>Andersoni<br>

<a href=\"http://rss-grabber.ru\" target=\"_blank\">rss-grabber.ru</a></i>
		<br><br><br>
		P.S. <font color=\"red\">Внимание: при автоматическом удалении инсталяционных файлов проверьте их удаление</font>
		";
}else{
		$content = "Поздравляем Вас, <b>Rss Grabber 3.6.8</b> был успешно установлен.<br /><br /><br /><font color=\"red\">Внимание: Удалите файл <font color=\"blue\"><b>install.php</b></font> и папку <font color=\"blue\"><b>install</b></font> во избежание повторной установки модуля!</font><br /><br />Приятной Вам работы<br /><br /><i>Andersoni<br>

<a href=\"http://rss-grabber.ru\" target=\"_blank\">rss-grabber.ru</a></i>
		
		";
}
		#$mail = new dle_mail ($config, true);
		$url = $config['http_home_url'];
		if (!@file_exists(ENGINE_DIR.'/data/rss_config.php')){
$config_rss = "<?php
	/*======================================
	Configuration RSS grabber's
	======================================*/
	\$config_rss = array (
  'name' => 'RSS Grabber',
  'version' => '3.6.8',
  'img_host' => 'radikal',
  'water_radikal' => 'yes',
  'post_radikal' => '',
  'url_radikal' => '1',
  'water_ambrybox' => 'no',
  'post_ambrybox' => 'RSS GRABBER',
  'ambrybox' => '1',
  'url_zikuka' => '1',
  'url_10pix' => '1',
  'immage' => '1',
  'imageshack' => '1',
  'tinypic' => '1',
  'allow-water' => 'no',
  'x' => 'right',
  'y' => 'bottom',
  'margin' => '7',
  'dop-watermark' => 'yes',
  'watermark_image_light' => '/templates/Default/dleimages/watermark_light.png',
  'watermark_image_dark' => '/templates/Default/dleimages/watermark_dark.png',
  'image_align' => '1',
  'image_align_full' => '1',
  'create_images' => '3',
  'maxWidth' => '',
  'upload_t_size' => '0',
  'cat' => 'yes',
  'rewrite-news' => 'no',
  'allow-mod' => 'no',
  'allow-main' => 'yes',
  'allow-comm' => 'no',
  'allow-rate' => 'no',
  'allow-auto' => 'yes',
  'clear-short' => 'no',
  'short-images' => 'no',
  'short-full' => 'no',
  'null' => 'no',
  'hide' => 'no',
  'leech' => 'no',
  'date' => '0',
  'interval_start' => '10',
  'interval_finish' => '40',
  'show_autor' => 'yes',
  'show_date' => 'yes',
  'show_tegs' => 'yes',
  'show_code' => 'yes',
  'show_down' => 'yes',
  'show_f' => 'yes',
  'show_symbol' => 'yes',
  'show_url' => 'yes',
  'show_date_expires' => 'yes',
  'show_show_metatitle' => 'yes',
  'show_metadescr' => 'yes',
  'show_keywords' => 'yes',
  'news_kol' => '10',
  'news_limit' => '2',
  'allow_post' => 'yes',
  'ping_lognum' => '15',
  'sitemap' => 'yes',
  'sinonim' => 'yes',
  'page_sinonims' => '10',
  'proxy' => '',
  'proxy_file' => 'no',
  'get_proxy' => 'no',
  'reg_group' => '1',
  'code_bb' => '',
  'sin_dop' => '',
);
?>";
$handler = fopen(ENGINE_DIR.'/data/rss_config.php',"w");
fwrite($handler,$config_rss);
fclose($handler);}
#$mail->send ($ml, "RSS GRABBER 3.6.8", $url);


		$button_value = 'Готово';

		$next_act = 10;

	break;

	case "10":
if ($_POST['del'] == '1'){
		$ar_fal = array("install/images", "install");
	foreach($ar_fal as $value){
if ($handle = opendir($value)) {
    while (false !== ($file = readdir($handle))) { 
        if ($file != "." and  $file != ".." and $file != "images") { 
         @unlink($value.'/'.$file);
        } 
    }
    closedir($handle); 
}
@rmdir($value);
	}
	@unlink('install.php');
	}
		$link = $config['http_home_url'].$config['admin_path'].'?mod=rss&action=config';
	header("Location: $link");

	break;


}

$progress_array = array (
'1' => "О модуле",
'2' => "Cоглашение",
'2.1' => "Требования",
'3' => "Установка",
'4.5' => "База данных",
'9' => "Завершение",
);

if (count(file_select()) > 1 and @file_exists (ENGINE_DIR ."/inc/plugins/sinonims.php")){
$progress_array['2.2'] = "Синонимайзер";
ksort($progress_array);
}


foreach ($progress_array as $prog => $name)
{
	if ($prog == $act) $step_class = 'step_doing';

	elseif ($prog < $act) $step_class = 'step_done';

	else $step_class = 'step_notdone';

	if ($act == '9') $step_class = 'step_done';

	$progress .= "<li class='{$step_class}'>{$name}</li>";
}

$install_tpl = "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Strict//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd\">
<html xmlns=\"http://www.w3.org/1999/xhtml\">
<head>
<meta http-equiv=\"Content-Type\" content=\"text/html; charset=windows-1251\" />
<title>Rss Grabber</title>
<link href=\"install/style.css\" rel=\"stylesheet\" type=\"text/css\" />
</head>
{$js}
<body>
		<p>&nbsp;</p>
		<p>&nbsp;</p>
		<p>&nbsp;</p>

		<div id='ipswrapper'>
		<form id=\"install\" method=\"post\" action=\"$PHP_SELF\">
		    <div class='main_shell'>

		 	    <h1><img src='/install/images/package_icon.gif' align='absmiddle' /> Установщик Rss Grabbera</h1>
		 	    <div class='content_shell'>
		 	        <div class='package'>
		 	            <div>
		 	                <div class='install_info'>
		 	                    <h3>Требования</h3>

    		 	                <ul id='progress'>{$progress}</ul>
    		 	            </div>

    		 	            <div class='content_wrap'>
    		 	                <div style=\"padding-bottom:4px; border-bottom-width:1px; border-bottom-color:rgb(147,147,147); border-bottom-style:solid;\">
   		 	                     <div style=\"vertical-align:middle;\">
									 <h2>Rss Grabber</h2><br /><strong>Version 3.6.8</strong></div>
							</div>
   		 	                  <div style=\"clear:both;\"></div>
								  <div>
								  <div>{$content}</div>
								  </div></div>
								  </div>
		 	            <br clear='all' />

		 	            <div class='hr'></div>
		 	            <div style=\"padding-top:17px; padding-right:15px; padding-left:15px;\">
		 	                <div style=\"float:left;\">
		 	                    <input type='button' class='nav_button' value='Прекратить установку' onclick=\"window.location='?';return false;\" />
		 	                </div>

		 	                <div style=\"float:right;\">
							 <input type=hidden name=\"act\" value=\"{$next_act}\">
							 <input type='submit' id='button' class='nav_button' value='{$button_value}'>	</div>
		 	            </div>
		 	            <div style=\"clear:both;\"></div>
		 	            <div class='copyright'>{$ml}&copy; 2009-2011 Andersoni</div>
		 	        </div>

		 	    </div>
    		</div>
    		</form>
    	</div>

	</body>
</html>";

if ($_POST['file'] == '0' or !isset($_POST['file']))echo $install_tpl;

function chmod_pap($file) {

        if(file_exists($file)){
        if(is_writable($file) and is_readable($file)){
            return true;
        }
	}else{
			return false;
		}
}


?>