1
0
Fork 0
mirror of https://github.com/Oreolek/ifhub.club.git synced 2024-07-01 05:55:02 +03:00

Прототип инсталлятора системы.

This commit is contained in:
Alexey Kachayev 2009-11-08 00:23:51 +00:00
parent 7414d667ad
commit 08da5471c1
6 changed files with 1342 additions and 0 deletions

400
install/install.php Normal file
View file

@ -0,0 +1,400 @@
<?php
/*-------------------------------------------------------
*
* LiveStreet Engine Social Networking
* Copyright © 2008 Mzhelskiy Maxim
*
*--------------------------------------------------------
*
* Official site: www.livestreet.ru
* Contact e-mail: rus.engine@gmail.com
*
* GNU General Public License, version 2:
* http://www.gnu.org/licenses/old-licenses/gpl-2.0.html
*
---------------------------------------------------------
*/
error_reporting(E_ALL);
class Install {
/**
* Название первого шага (используется, если другое не указано)
*
* @var string
*/
const INSTALL_DEFAULT_STEP = 'Start';
/**
* Ключ сессии для хранения название следующего шага
*
* @var string
*/
const SESSSION_KEY_STEP_NAME = 'livestreet_install_step';
/**
* Массив разрешенных шагов инсталяции
*
* @var array
*/
protected $aSteps = array(0=>'Start',1=>'Db',2=>'Admin',3=>'End');
/**
* Массив сообщений для пользователя
*
* @var array
*/
protected $aMessages = array();
/**
* Директория с шаблонами
*
* @var string
*/
protected $sTemplatesDir = 'templates';
/**
* Массив с переменными шаблонизатора
*
* @var array
*/
protected $aTemplateVars = array(
'___CONTENT___' => '',
'___FORM_ACTION___' => '',
'___NEXT_STEP_DISABLED___' => '',
'___NEXT_STEP_DISPLAY___' => 'block',
'___SYSTEM_MESSAGES___' => '',
);
/**
* Описание требований для успешной инсталяции
*
* @var array
*/
protected $aValidEnv = array(
'safe_mode' => array ('0','off',''),
'register_globals' => array ('0','off',''),
'allow_url_fopen' => array ('1','on'),
'UTF8_support' => '1',
'http_input' => array ('','pass'),
'http_output' => array ('0','pass'),
'func_overload' => array ('0','4', 'no overload'),
);
/**
* Вытягивает переменную из сессии
*
* @param string $sKey
* @return mixed
*/
protected function GetSessionVar($sKey,$mDefault=null) {
return array_key_exists($sKey,$_SESSION) ? unserialize($_SESSION[$sKey]) : $mDefault;
}
/**
* Вкладывает переменную в сессию
*
* @param string $sKey
* @param mixed $mVar
* @return bool
*/
protected function SetSessionVar($sKey,$mVar) {
$_SESSION[$sKey] = serialize($mVar);
return true;
}
/**
* Уничтожает переменную в сессии
*
* @param string $sKey
* @return bool
*/
protected function DestroySessionVar($sKey) {
if(!array_key_exists($sKey,$_SESSION)) return false;
unset($_SESSION[$sKey]);
return true;
}
/**
* Функция отвечающая за проверку входных параметров
* и передающая управление на фукнцию текущего шага
*
* @call $this->Step{__Name__}
*/
public function Run() {
$sStepName = $this->GetSessionVar(self::SESSSION_KEY_STEP_NAME, self::INSTALL_DEFAULT_STEP);
if(!$sStepName or !in_array($sStepName,$this->aSteps)) die('Unknown step');
$iKey = array_search($sStepName,$this->aSteps);
if($iKey == count($this->aSteps)-1) {
$this->Assign('NEXT_STEP_DISPLAY', 'none');
}
/**
* Пердаем управление на метод текущего шага
*/
$sFunctionName = 'Step'.$sStepName;
if(@method_exists($this,$sFunctionName)) {
$this->$sFunctionName();
} else {
$sFunctionName = 'Step'.self::INSTALL_DEFAULT_STEP;
$this->SetSessionVar(self::SESSSION_KEY_STEP_NAME,self::INSTALL_DEFAULT_STEP);
$this->$sFunctionName();
}
}
/**
* Выполняет рендеринг указанного шаблона
*
* @param string $sTemplateName
* @return string
*/
protected function Fetch($sTemplateName) {
if(!file_exists($this->sTemplatesDir.'/'.$sTemplateName)) return false;
$sTemplate = file_get_contents($this->sTemplatesDir.'/'.$sTemplateName);
return str_replace(array_keys($this->aTemplateVars),array_values($this->aTemplateVars),$sTemplate);
}
/**
* Добавляет переменную для отображение в шаблоне
*
* @param string $sName
* @param string $sValue
*/
protected function Assign($sName,$sValue) {
$this->aTemplateVars['___'.strtoupper($sName).'___'] = $sValue;
}
/**
* Выполняет рендер layout`а (двухуровневый)
*
* @param string $sTemplate
* @return null
*/
protected function Layout($sTemplate) {
if(!$sLayoutContent = $this->Fetch($sTemplate)) {
return false;
}
/**
* Рендерим сообщения по списку
*/
if(count($this->aMessages)) {
$sMessageContent = "";
foreach ($this->aMessages as $sMessage) {
$this->Assign('message_style_class', $sMessage['type']);
$this->Assign('message_content', $sMessage['text']);
$sMessageContent.=$this->Fetch('message.tpl');
}
$this->Assign('system_messages',$sMessageContent);
}
$this->Assign('content', $sLayoutContent);
print $this->Fetch('layout.tpl');
}
/**
* Проверяем возможность инсталяции
*
* @return bool
*/
protected function ValidateEnviroment() {
$bOk = true;
if(!in_array(strtolower(@ini_get('safe_mode')), $this->aValidEnv['safe_mode'])) {
$bOk = false;
$this->Assign('validate_safe_mode', '<span style="color:red;">Нет</span>');
} else {
$this->Assign('validate_safe_mode', '<span style="color:green;">Да</span>');
}
if(!in_array(strtolower(@ini_get('register_globals')), $this->aValidEnv['register_globals'])) {
$bOk = false;
$this->Assign('validate_register_globals', '<span style="color:red;">Нет</span>');
} else {
$this->Assign('validate_register_globals', '<span style="color:green;">Да</span>');
}
if(@preg_match('//u', '')!=$this->aValidEnv['UTF8_support']) {
$bOk = false;
$this->Assign('validate_utf8', '<span style="color:red;">Нет</span>');
} else {
$this->Assign('validate_utf8', '<span style="color:green;">Да</span>');
}
if (@extension_loaded('mbstring')){
$aMbInfo=mb_get_info();
if(!in_array(strtolower($aMbInfo['http_input']), $this->aValidEnv['http_input'])) {
$bOk = false;
$this->Assign('validate_http_input', '<span style="color:red;">Нет</span>');
} else {
$this->Assign('validate_http_input', '<span style="color:green;">Да</span>');
}
if(!in_array(strtolower($aMbInfo['http_output']), $this->aValidEnv['http_output'])) {
$bOk = false;
$this->Assign('validate_http_output', '<span style="color:red;">Нет</span>');
} else {
$this->Assign('validate_http_output', '<span style="color:green;">Да</span>');
}
if(!in_array(strtolower($aMbInfo['func_overload']), $this->aValidEnv['func_overload'])) {
$bOk = false;
$this->Assign('validate_func_overload', '<span style="color:red;">Нет</span>');
} else {
$this->Assign('validate_func_overload', '<span style="color:green;">Да</span>');
}
}
return $bOk;
}
/**
* Первый шаг инсталяции.
* Валидация окружения.
*/
protected function StepStart() {
if(!$this->ValidateEnviroment()) {
$this->Assign('next_step_disabled', 'disabled');
} else {
$this->SetSessionVar(self::SESSSION_KEY_STEP_NAME,'Db');
}
$this->Layout('steps/start.tpl');
}
protected function StepDb() {
if(!isset($_POST['install_db_params'])) {
$this->Assign('install_db_server', 'localhost');
$this->Assign('install_db_port', '3306');
$this->Assign('install_db_name', 'social');
$this->Assign('install_db_user', 'root');
$this->Assign('install_db_password', '');
$this->Assign('install_db_create_check', '');
$this->Assign('install_db_prefix', 'prefix_');
$this->Layout('steps/db.tpl');
return true;
}
/**
* Если переданны данные формы, проверяем их на валидность
*/
$aParams['server'] = $this->GetRequest('install_db_server','');
$aParams['port'] = $this->GetRequest('install_db_port','');
$aParams['name'] = $this->GetRequest('install_db_name','');
$aParams['user'] = $this->GetRequest('install_db_user','');
$aParams['password'] = $this->GetRequest('install_db_password','');
$aParams['create'] = $this->GetRequest('install_db_create',0);
$aParams['prefix'] = $this->GetRequest('install_db_prefix','prefix_');
$this->Assign('install_db_server', $aParams['server']);
$this->Assign('install_db_port', $aParams['port']);
$this->Assign('install_db_name', $aParams['name']);
$this->Assign('install_db_user', $aParams['user']);
$this->Assign('install_db_password', $aParams['password']);
$this->Assign('install_db_create_check', ($aParams['create'])?'checked="checked"':'');
$this->Assign('install_db_prefix', $aParams['prefix']);
if($oDb=$this->ValidateDBConnection($aParams)) {
$bSelect = $this->SelectDatabase($aParams['name'],$aParams['create']);
/**
* Если не удалось выбрать базу данных, возвращаем ошибку
*/
if(!$bSelect) {
$this->aMessages[] = array('type'=>'error','text'=>'Невозможно выбрать или создать базу данных');
$this->Layout('steps/db.tpl');
return false;
}
/**
* Открываем .sql файл и добавляем в базу недостающие таблицы
*/
list($bResult,$aErrors) = array_values($this->CreateTables('sql.sql'));
if(!$bResult) {
foreach($aErrors as $sError) $this->aMessages[] = array('type'=>'error','text'=>$sError);
$this->Layout('steps/db.tpl');
return false;
}
$this->aMessages[] = array('type'=>'notice','text'=>'Сделано. Остальные этапы в разработке.');
$this->Assign('next_step_disabled','disabled');
$this->Layout('steps/db.tpl');
return true;
} else {
$this->aMessages[] = array('type'=>'error','text'=>'Не удалось подключиться к базе данных');
$this->Layout('steps/db.tpl');
return false;
}
}
/**
* Проверяет соединение с базой данных
*
* @param array $aParams
* @return mixed
*/
protected function ValidateDBConnection($aParams) {
$oDb = @mysql_connect($aParams['server'],$aParams['user'],$aParams['password']);
if( $oDb ) {
mysql_query('set names utf8');
return $oDb;
}
return null;
}
/**
* Выбрать базу данных (либо создать в случае необходимости).
*
* @param string $sName
* @param bool $bCreate
* @return bool
*/
protected function SelectDatabase($sName,$bCreate=false) {
if(@mysql_select_db($sName)) return true;
if($bCreate){
@mysql_query("CREATE DATABASE $sName");
return @mysql_select_db($sName);
}
return false;
}
/**
* Добавляет в базу данных необходимые таблицы
*
* @param string $sFilePath
* @return array
*/
protected function CreateTables($sFilePath) {
$sFileQuery = file_get_contents($sFilePath);
$aQuery=explode(';',$sFileQuery);
/**
* Массив для сбора ошибок
*/
$aErrors = array();
/**
* Выполняем запросы по очереди
*/
foreach($aQuery as $sQuery){
$sQuery = trim($sQuery);
if($sQuery!='') {
$bResult=mysql_query($sQuery);
if(!$bResult) $aErrors[] = mysql_error();
}
}
if(count($aErrors)==0) {
return array('result'=>true,'errors'=>null);
}
return array('result'=>false,'errors'=>$aErrors);
}
/**
* Получает значение переданных параметров
*
* @param string $sName
* @param mixed $default
* @return mixed
*/
protected function GetRequest($sName,$default=null) {
if (isset($_REQUEST[$sName])) {
if (is_string($_REQUEST[$sName])) {
return trim(stripcslashes($_REQUEST[$sName]));
} else {
return $_REQUEST[$sName];
}
}
return $default;
}
}
session_start();
$oInstaller = new Install;
$oInstaller->Run();
?>

830
install/sql.sql Normal file
View file

@ -0,0 +1,830 @@
-- phpMyAdmin SQL Dump
-- version 2.6.1
-- http://www.phpmyadmin.net
--
-- Хост: localhost
-- Время создания: Май 10 2009 г., 11:18
-- Версия сервера: 5.0.45
-- Версия PHP: 5.2.4
--
-- БД: `ls_03`
--
-- --------------------------------------------------------
--
-- Структура таблицы `prefix_blog`
--
CREATE TABLE `prefix_blog` (
`blog_id` int(11) unsigned NOT NULL auto_increment,
`user_owner_id` int(11) unsigned NOT NULL,
`blog_title` varchar(200) NOT NULL,
`blog_description` text NOT NULL,
`blog_type` enum('personal','open','invite','close') default 'personal',
`blog_date_add` datetime NOT NULL,
`blog_date_edit` datetime default NULL,
`blog_rating` float(9,3) NOT NULL default '0.000',
`blog_count_vote` int(11) unsigned NOT NULL default '0',
`blog_count_user` int(11) unsigned NOT NULL default '0',
`blog_limit_rating_topic` float(9,3) NOT NULL default '0.000',
`blog_url` varchar(200) default NULL,
`blog_avatar` tinyint(1) unsigned NOT NULL default '0',
`blog_avatar_type` varchar(5) default NULL,
PRIMARY KEY (`blog_id`),
KEY `user_owner_id` (`user_owner_id`),
KEY `blog_type` (`blog_type`),
KEY `blog_url` (`blog_url`),
KEY `blog_title` (`blog_title`)
) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8 AUTO_INCREMENT=2 ;
--
-- Дамп данных таблицы `prefix_blog`
--
INSERT INTO `prefix_blog` VALUES (1, 1, 'Blog by admin', 'This is your personal blog.', 'personal', '2009-05-10 00:00:00', NULL, 0.000, 0, 0, -1000.000, NULL, 0, NULL);
-- --------------------------------------------------------
--
-- Структура таблицы `prefix_blog_user`
--
CREATE TABLE `prefix_blog_user` (
`blog_id` int(11) unsigned NOT NULL,
`user_id` int(11) unsigned NOT NULL,
`is_moderator` tinyint(1) unsigned NOT NULL default '0',
`is_administrator` tinyint(1) unsigned NOT NULL default '0',
UNIQUE KEY `blog_id_user_id_uniq` (`blog_id`,`user_id`),
KEY `blog_id` (`blog_id`),
KEY `user_id` (`user_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
--
-- Дамп данных таблицы `prefix_blog_user`
--
-- --------------------------------------------------------
--
-- Структура таблицы `prefix_blog_vote`
--
CREATE TABLE `prefix_blog_vote` (
`blog_id` int(11) unsigned NOT NULL,
`user_voter_id` int(11) unsigned NOT NULL,
`vote_delta` float(9,3) NOT NULL default '0.000',
UNIQUE KEY `blog_id_user_voter_id_uniq` (`blog_id`,`user_voter_id`),
KEY `blog_id` (`blog_id`),
KEY `user_voter_id` (`user_voter_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
--
-- Дамп данных таблицы `prefix_blog_vote`
--
-- --------------------------------------------------------
--
-- Структура таблицы `prefix_city`
--
CREATE TABLE `prefix_city` (
`city_id` int(11) unsigned NOT NULL auto_increment,
`city_name` varchar(30) NOT NULL,
PRIMARY KEY (`city_id`),
KEY `city_name` (`city_name`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ;
--
-- Дамп данных таблицы `prefix_city`
--
-- --------------------------------------------------------
--
-- Структура таблицы `prefix_city_user`
--
CREATE TABLE `prefix_city_user` (
`city_id` int(11) unsigned NOT NULL,
`user_id` int(11) unsigned NOT NULL,
UNIQUE KEY `user_id` (`user_id`),
KEY `city_id` (`city_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
--
-- Дамп данных таблицы `prefix_city_user`
--
-- --------------------------------------------------------
--
-- Структура таблицы `prefix_country`
--
CREATE TABLE `prefix_country` (
`country_id` int(11) unsigned NOT NULL auto_increment,
`country_name` varchar(30) NOT NULL,
PRIMARY KEY (`country_id`),
KEY `country_name` (`country_name`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ;
--
-- Дамп данных таблицы `prefix_country`
--
-- --------------------------------------------------------
--
-- Структура таблицы `prefix_country_user`
--
CREATE TABLE `prefix_country_user` (
`country_id` int(11) unsigned NOT NULL,
`user_id` int(11) unsigned NOT NULL,
UNIQUE KEY `user_id` (`user_id`),
KEY `country_id` (`country_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
--
-- Дамп данных таблицы `prefix_country_user`
--
-- --------------------------------------------------------
--
-- Структура таблицы `prefix_favourite_topic`
--
CREATE TABLE `prefix_favourite_topic` (
`user_id` int(11) unsigned NOT NULL,
`topic_id` int(11) unsigned NOT NULL,
`topic_publish` tinyint(1) NOT NULL default '1',
UNIQUE KEY `user_id_topic_id` (`user_id`,`topic_id`),
KEY `user_id` (`user_id`),
KEY `topic_id` (`topic_id`),
KEY `topic_publish` (`topic_publish`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
--
-- Дамп данных таблицы `prefix_favourite_topic`
--
-- --------------------------------------------------------
--
-- Структура таблицы `prefix_friend`
--
CREATE TABLE `prefix_friend` (
`user_id` int(11) unsigned NOT NULL,
`user_frend_id` int(11) unsigned NOT NULL,
UNIQUE KEY `user_id_fren_id` (`user_id`,`user_frend_id`),
KEY `user_id` (`user_id`),
KEY `user_frend_id` (`user_frend_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
--
-- Дамп данных таблицы `prefix_friend`
--
-- --------------------------------------------------------
--
-- Структура таблицы `prefix_invite`
--
CREATE TABLE `prefix_invite` (
`invite_id` int(11) unsigned NOT NULL auto_increment,
`invite_code` varchar(32) NOT NULL,
`user_from_id` int(11) unsigned NOT NULL,
`user_to_id` int(11) unsigned default NULL,
`invite_date_add` datetime NOT NULL,
`invite_date_used` datetime default NULL,
`invite_used` tinyint(1) unsigned NOT NULL default '0',
PRIMARY KEY (`invite_id`),
UNIQUE KEY `invite_code` (`invite_code`),
KEY `user_from_id` (`user_from_id`),
KEY `user_to_id` (`user_to_id`),
KEY `invite_date_add` (`invite_date_add`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ;
--
-- Дамп данных таблицы `prefix_invite`
--
-- --------------------------------------------------------
--
-- Структура таблицы `prefix_page`
--
CREATE TABLE `prefix_page` (
`page_id` int(11) unsigned NOT NULL auto_increment,
`page_pid` int(11) unsigned default NULL,
`page_url` varchar(50) NOT NULL,
`page_url_full` varchar(254) NOT NULL,
`page_title` varchar(200) NOT NULL,
`page_text` text NOT NULL,
`page_date_add` datetime NOT NULL,
`page_date_edit` datetime default NULL,
`page_seo_keywords` varchar(250) default NULL,
`page_seo_description` varchar(250) default NULL,
`page_active` tinyint(1) unsigned NOT NULL default '1',
PRIMARY KEY (`page_id`),
KEY `page_pid` (`page_pid`),
KEY `page_url_full` (`page_url_full`,`page_active`),
KEY `page_title` (`page_title`)
) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8 AUTO_INCREMENT=2 ;
--
-- Дамп данных таблицы `prefix_page`
--
INSERT INTO `prefix_page` VALUES (1, NULL, 'about', 'about', 'About', 'edit this page http://yousite/page/admin/', '2008-11-05 01:03:46', NULL, '', '', 1);
-- --------------------------------------------------------
--
-- Структура таблицы `prefix_reminder`
--
CREATE TABLE `prefix_reminder` (
`reminder_code` varchar(32) NOT NULL,
`user_id` int(11) unsigned NOT NULL,
`reminder_date_add` datetime NOT NULL,
`reminder_date_used` datetime default '0000-00-00 00:00:00',
`reminder_date_expire` datetime NOT NULL,
`reminde_is_used` tinyint(1) unsigned NOT NULL default '0',
PRIMARY KEY (`reminder_code`),
UNIQUE KEY `user_id` (`user_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
--
-- Дамп данных таблицы `prefix_reminder`
--
-- --------------------------------------------------------
--
-- Структура таблицы `prefix_talk`
--
CREATE TABLE `prefix_talk` (
`talk_id` int(11) unsigned NOT NULL auto_increment,
`user_id` int(11) unsigned NOT NULL,
`talk_title` varchar(200) NOT NULL,
`talk_text` text NOT NULL,
`talk_date` datetime NOT NULL,
`talk_date_last` datetime NOT NULL,
`talk_user_ip` varchar(20) NOT NULL,
PRIMARY KEY (`talk_id`),
KEY `user_id` (`user_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ;
--
-- Дамп данных таблицы `prefix_talk`
--
-- --------------------------------------------------------
--
-- Структура таблицы `prefix_talk_comment`
--
CREATE TABLE `prefix_talk_comment` (
`talk_comment_id` int(11) unsigned NOT NULL auto_increment,
`talk_comment_pid` int(11) unsigned default NULL,
`talk_id` int(11) unsigned NOT NULL,
`user_id` int(11) unsigned NOT NULL,
`talk_comment_date` datetime NOT NULL,
`talk_comment_user_ip` varchar(20) NOT NULL,
`talk_comment_text` text NOT NULL,
PRIMARY KEY (`talk_comment_id`),
KEY `talk_id` (`talk_id`),
KEY `user_id` (`user_id`),
KEY `talk_comment_pid` (`talk_comment_pid`),
KEY `talk_comment_date` (`talk_comment_date`),
KEY `talk_id_user_id` (`talk_id`,`user_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ;
--
-- Дамп данных таблицы `prefix_talk_comment`
--
-- --------------------------------------------------------
--
-- Структура таблицы `prefix_talk_user`
--
CREATE TABLE `prefix_talk_user` (
`talk_id` int(11) unsigned NOT NULL,
`user_id` int(11) unsigned NOT NULL,
`date_last` datetime default NULL,
UNIQUE KEY `talk_id_user_id` (`talk_id`,`user_id`),
KEY `talk_id` (`talk_id`),
KEY `user_id` (`user_id`),
KEY `date_last` (`date_last`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
--
-- Дамп данных таблицы `prefix_talk_user`
--
-- --------------------------------------------------------
--
-- Структура таблицы `prefix_topic`
--
CREATE TABLE `prefix_topic` (
`topic_id` int(11) unsigned NOT NULL auto_increment,
`blog_id` int(11) unsigned NOT NULL,
`user_id` int(11) unsigned NOT NULL,
`topic_type` enum('topic','link','question') NOT NULL default 'topic',
`topic_title` varchar(200) NOT NULL,
`topic_tags` varchar(250) NOT NULL COMMENT 'tags separated by a comma',
`topic_date_add` datetime NOT NULL,
`topic_date_edit` datetime default NULL,
`topic_user_ip` varchar(20) NOT NULL,
`topic_publish` tinyint(1) NOT NULL default '0',
`topic_publish_draft` tinyint(1) NOT NULL default '1',
`topic_publish_index` tinyint(1) NOT NULL default '0',
`topic_rating` float(9,3) NOT NULL default '0.000',
`topic_count_vote` int(11) unsigned NOT NULL default '0',
`topic_count_read` int(11) unsigned NOT NULL default '0',
`topic_count_comment` int(11) unsigned NOT NULL default '0',
`topic_cut_text` varchar(100) default NULL,
`topic_forbid_comment` tinyint(1) NOT NULL default '0',
`topic_text_hash` varchar(32) NOT NULL,
PRIMARY KEY (`topic_id`),
KEY `blog_id` (`blog_id`),
KEY `user_id` (`user_id`),
KEY `topic_date_add` (`topic_date_add`),
KEY `topic_rating` (`topic_rating`),
KEY `topic_publish` (`topic_publish`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ;
--
-- Дамп данных таблицы `prefix_topic`
--
-- --------------------------------------------------------
--
-- Структура таблицы `prefix_topic_comment`
--
CREATE TABLE `prefix_topic_comment` (
`comment_id` int(11) unsigned NOT NULL auto_increment,
`comment_pid` int(11) unsigned default NULL,
`topic_id` int(11) unsigned NOT NULL,
`user_id` int(11) unsigned NOT NULL,
`comment_text` text NOT NULL,
`comment_text_hash` varchar(32) NOT NULL,
`comment_date` datetime NOT NULL,
`comment_user_ip` varchar(20) NOT NULL,
`comment_rating` float(9,3) NOT NULL default '0.000',
`comment_count_vote` int(11) unsigned NOT NULL default '0',
`comment_delete` tinyint(4) NOT NULL default '0',
PRIMARY KEY (`comment_id`),
KEY `topic_id` (`topic_id`),
KEY `user_id` (`user_id`),
KEY `comment_pid` (`comment_pid`),
KEY `comment_delete` (`comment_delete`),
KEY `rating_date_id` (`comment_rating`,`comment_date`,`comment_id`),
KEY `comment_date` (`comment_date`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ;
--
-- Дамп данных таблицы `prefix_topic_comment`
--
-- --------------------------------------------------------
--
-- Структура таблицы `prefix_topic_comment_online`
--
CREATE TABLE `prefix_topic_comment_online` (
`comment_online_id` int(11) unsigned NOT NULL auto_increment,
`topic_id` int(11) unsigned NOT NULL,
`comment_id` int(11) unsigned NOT NULL,
PRIMARY KEY (`comment_online_id`),
UNIQUE KEY `topic_id` (`topic_id`),
KEY `comment_id` (`comment_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ;
--
-- Дамп данных таблицы `prefix_topic_comment_online`
--
-- --------------------------------------------------------
--
-- Структура таблицы `prefix_topic_comment_vote`
--
CREATE TABLE `prefix_topic_comment_vote` (
`comment_id` int(11) unsigned NOT NULL,
`user_voter_id` int(11) unsigned NOT NULL,
`vote_delta` float(9,3) NOT NULL,
UNIQUE KEY `comment_id_user_voter_id_uniq` (`comment_id`,`user_voter_id`),
KEY `comment_id` (`comment_id`),
KEY `user_voter_id` (`user_voter_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
--
-- Дамп данных таблицы `prefix_topic_comment_vote`
--
-- --------------------------------------------------------
--
-- Структура таблицы `prefix_topic_content`
--
CREATE TABLE `prefix_topic_content` (
`topic_id` int(11) unsigned NOT NULL,
`topic_text` text NOT NULL,
`topic_text_short` text NOT NULL,
`topic_text_source` text NOT NULL,
`topic_extra` text NOT NULL,
PRIMARY KEY (`topic_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
--
-- Дамп данных таблицы `prefix_topic_content`
--
-- --------------------------------------------------------
--
-- Структура таблицы `prefix_topic_question_vote`
--
CREATE TABLE `prefix_topic_question_vote` (
`topic_id` int(11) unsigned NOT NULL,
`user_voter_id` int(11) unsigned NOT NULL,
`answer` tinyint(4) NOT NULL,
UNIQUE KEY `topic_id_user_id` (`topic_id`,`user_voter_id`),
KEY `topic_id` (`topic_id`),
KEY `user_voter_id` (`user_voter_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
--
-- Дамп данных таблицы `prefix_topic_question_vote`
--
-- --------------------------------------------------------
--
-- Структура таблицы `prefix_topic_read`
--
CREATE TABLE `prefix_topic_read` (
`topic_id` int(11) unsigned NOT NULL,
`user_id` int(11) unsigned NOT NULL,
`date_read` datetime NOT NULL,
`comment_count_last` int(10) unsigned NOT NULL default '0',
`comment_id_last` int(11) NOT NULL default '0',
UNIQUE KEY `topic_id_user_id` (`topic_id`,`user_id`),
KEY `topic_id` (`topic_id`),
KEY `user_id` (`user_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
--
-- Дамп данных таблицы `prefix_topic_read`
--
-- --------------------------------------------------------
--
-- Структура таблицы `prefix_topic_tag`
--
CREATE TABLE `prefix_topic_tag` (
`topic_tag_id` int(11) unsigned NOT NULL auto_increment,
`topic_id` int(11) unsigned NOT NULL,
`user_id` int(11) unsigned NOT NULL,
`blog_id` int(11) unsigned NOT NULL,
`topic_tag_text` varchar(50) NOT NULL,
PRIMARY KEY (`topic_tag_id`),
KEY `topic_id` (`topic_id`),
KEY `user_id` (`user_id`),
KEY `blog_id` (`blog_id`),
KEY `topic_tag_text` (`topic_tag_text`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ;
--
-- Дамп данных таблицы `prefix_topic_tag`
--
-- --------------------------------------------------------
--
-- Структура таблицы `prefix_topic_vote`
--
CREATE TABLE `prefix_topic_vote` (
`topic_id` int(11) unsigned NOT NULL,
`user_voter_id` int(11) unsigned NOT NULL,
`vote_delta` float(9,3) NOT NULL default '0.000',
UNIQUE KEY `topic_id_user_voter_id_uniq` (`topic_id`,`user_voter_id`),
KEY `topic_id` (`topic_id`),
KEY `user_voter_id` (`user_voter_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
--
-- Дамп данных таблицы `prefix_topic_vote`
--
-- --------------------------------------------------------
--
-- Структура таблицы `prefix_user`
--
CREATE TABLE `prefix_user` (
`user_id` int(11) unsigned NOT NULL auto_increment,
`user_login` varchar(30) NOT NULL,
`user_password` varchar(50) NOT NULL,
`user_key` varchar(32) default NULL,
`user_mail` varchar(50) NOT NULL,
`user_skill` float(9,3) unsigned NOT NULL default '0.000',
`user_date_register` datetime NOT NULL,
`user_date_last` datetime default NULL,
`user_date_activate` datetime default NULL,
`user_date_comment_last` datetime default NULL,
`user_ip_register` varchar(20) NOT NULL,
`user_ip_last` varchar(20) default NULL,
`user_rating` float(9,3) NOT NULL default '0.000',
`user_count_vote` int(11) unsigned NOT NULL default '0',
`user_activate` tinyint(1) unsigned NOT NULL default '0',
`user_activate_key` varchar(32) default NULL,
`user_profile_name` varchar(50) default NULL,
`user_profile_sex` enum('man','woman','other') NOT NULL default 'other',
`user_profile_country` varchar(30) default NULL,
`user_profile_region` varchar(30) default NULL,
`user_profile_city` varchar(30) default NULL,
`user_profile_birthday` datetime default NULL,
`user_profile_site` varchar(200) default NULL,
`user_profile_site_name` varchar(50) default NULL,
`user_profile_icq` bigint(20) unsigned default NULL,
`user_profile_about` text,
`user_profile_date` datetime default NULL,
`user_profile_avatar` tinyint(1) unsigned NOT NULL default '0',
`user_profile_avatar_type` varchar(5) default NULL,
`user_profile_foto` varchar(250) default NULL,
`user_settings_notice_new_topic` tinyint(1) NOT NULL default '1',
`user_settings_notice_new_comment` tinyint(1) NOT NULL default '1',
`user_settings_notice_new_talk` tinyint(1) NOT NULL default '1',
`user_settings_notice_reply_comment` tinyint(1) NOT NULL default '1',
`user_settings_notice_new_friend` tinyint(1) NOT NULL default '1',
PRIMARY KEY (`user_id`),
UNIQUE KEY `user_login` (`user_login`),
UNIQUE KEY `user_mail` (`user_mail`),
UNIQUE KEY `user_key` (`user_key`),
KEY `user_activate_key` (`user_activate_key`),
KEY `user_activate` (`user_activate`),
KEY `user_rating` (`user_rating`),
KEY `user_date_last` (`user_date_last`,`user_activate`),
KEY `user_profile_sex` (`user_profile_sex`)
) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8 AUTO_INCREMENT=2 ;
--
-- Дамп данных таблицы `prefix_user`
--
INSERT INTO `prefix_user` VALUES (1, 'admin', '21232f297a57a5a743894a0e4a801fc3', NULL, 'admin@admin.adm', 0.000, '2009-05-10 00:00:00', NULL, NULL, NULL, '127.0.0.1', NULL, 0.000, 0, 1, NULL, NULL, 'other', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, NULL, 1, 1, 1, 1, 1);
-- --------------------------------------------------------
--
-- Структура таблицы `prefix_user_administrator`
--
CREATE TABLE `prefix_user_administrator` (
`user_id` int(11) unsigned NOT NULL,
UNIQUE KEY `user_id` (`user_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
--
-- Дамп данных таблицы `prefix_user_administrator`
--
INSERT INTO `prefix_user_administrator` VALUES (1);
-- --------------------------------------------------------
--
-- Структура таблицы `prefix_user_vote`
--
CREATE TABLE `prefix_user_vote` (
`user_id` int(11) unsigned NOT NULL,
`user_voter_id` int(11) unsigned NOT NULL,
`vote_delta` float(9,3) NOT NULL default '0.000',
UNIQUE KEY `user_id_2` (`user_id`,`user_voter_id`),
KEY `user_id` (`user_id`),
KEY `user_voter_id` (`user_voter_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
--
-- Дамп данных таблицы `prefix_user_vote`
--
--
-- Constraints for dumped tables
--
--
-- Constraints for table `prefix_blog`
--
ALTER TABLE `prefix_blog`
ADD CONSTRAINT `prefix_blog_fk` FOREIGN KEY (`user_owner_id`) REFERENCES `prefix_user` (`user_id`) ON DELETE CASCADE ON UPDATE CASCADE;
--
-- Constraints for table `prefix_blog_user`
--
ALTER TABLE `prefix_blog_user`
ADD CONSTRAINT `prefix_blog_user_fk` FOREIGN KEY (`blog_id`) REFERENCES `prefix_blog` (`blog_id`) ON DELETE CASCADE ON UPDATE CASCADE,
ADD CONSTRAINT `prefix_blog_user_fk1` FOREIGN KEY (`user_id`) REFERENCES `prefix_user` (`user_id`) ON DELETE CASCADE ON UPDATE CASCADE;
--
-- Constraints for table `prefix_blog_vote`
--
ALTER TABLE `prefix_blog_vote`
ADD CONSTRAINT `prefix_blog_vote_fk` FOREIGN KEY (`blog_id`) REFERENCES `prefix_blog` (`blog_id`) ON DELETE CASCADE ON UPDATE CASCADE,
ADD CONSTRAINT `prefix_blog_vote_fk1` FOREIGN KEY (`user_voter_id`) REFERENCES `prefix_user` (`user_id`) ON DELETE CASCADE ON UPDATE CASCADE;
--
-- Constraints for table `prefix_city_user`
--
ALTER TABLE `prefix_city_user`
ADD CONSTRAINT `prefix_city_user_fk` FOREIGN KEY (`city_id`) REFERENCES `prefix_city` (`city_id`) ON DELETE CASCADE ON UPDATE CASCADE,
ADD CONSTRAINT `prefix_city_user_fk1` FOREIGN KEY (`user_id`) REFERENCES `prefix_user` (`user_id`) ON DELETE CASCADE ON UPDATE CASCADE;
--
-- Constraints for table `prefix_country_user`
--
ALTER TABLE `prefix_country_user`
ADD CONSTRAINT `prefix_country_user_fk` FOREIGN KEY (`country_id`) REFERENCES `prefix_country` (`country_id`) ON DELETE CASCADE ON UPDATE CASCADE,
ADD CONSTRAINT `prefix_country_user_fk1` FOREIGN KEY (`user_id`) REFERENCES `prefix_user` (`user_id`) ON DELETE CASCADE ON UPDATE CASCADE;
--
-- Constraints for table `prefix_favourite_topic`
--
ALTER TABLE `prefix_favourite_topic`
ADD CONSTRAINT `prefix_favourite_topic_fk` FOREIGN KEY (`user_id`) REFERENCES `prefix_user` (`user_id`) ON DELETE CASCADE ON UPDATE CASCADE,
ADD CONSTRAINT `prefix_favourite_topic_fk1` FOREIGN KEY (`topic_id`) REFERENCES `prefix_topic` (`topic_id`) ON DELETE CASCADE ON UPDATE CASCADE;
--
-- Constraints for table `prefix_friend`
--
ALTER TABLE `prefix_friend`
ADD CONSTRAINT `prefix_frend_fk` FOREIGN KEY (`user_id`) REFERENCES `prefix_user` (`user_id`) ON DELETE CASCADE ON UPDATE CASCADE,
ADD CONSTRAINT `prefix_frend_fk1` FOREIGN KEY (`user_frend_id`) REFERENCES `prefix_user` (`user_id`) ON DELETE CASCADE ON UPDATE CASCADE;
--
-- Constraints for table `prefix_invite`
--
ALTER TABLE `prefix_invite`
ADD CONSTRAINT `prefix_invite_fk` FOREIGN KEY (`user_from_id`) REFERENCES `prefix_user` (`user_id`) ON DELETE CASCADE ON UPDATE CASCADE,
ADD CONSTRAINT `prefix_invite_fk1` FOREIGN KEY (`user_to_id`) REFERENCES `prefix_user` (`user_id`) ON DELETE CASCADE ON UPDATE CASCADE;
--
-- Constraints for table `prefix_page`
--
ALTER TABLE `prefix_page`
ADD CONSTRAINT `prefix_page_fk` FOREIGN KEY (`page_pid`) REFERENCES `prefix_page` (`page_id`) ON DELETE CASCADE ON UPDATE CASCADE;
--
-- Constraints for table `prefix_reminder`
--
ALTER TABLE `prefix_reminder`
ADD CONSTRAINT `prefix_reminder_fk` FOREIGN KEY (`user_id`) REFERENCES `prefix_user` (`user_id`) ON DELETE CASCADE ON UPDATE CASCADE;
--
-- Constraints for table `prefix_talk`
--
ALTER TABLE `prefix_talk`
ADD CONSTRAINT `prefix_talk_fk` FOREIGN KEY (`user_id`) REFERENCES `prefix_user` (`user_id`) ON DELETE CASCADE ON UPDATE CASCADE;
--
-- Constraints for table `prefix_talk_comment`
--
ALTER TABLE `prefix_talk_comment`
ADD CONSTRAINT `prefix_talk_comment_fk` FOREIGN KEY (`talk_id`) REFERENCES `prefix_talk` (`talk_id`) ON DELETE CASCADE ON UPDATE CASCADE,
ADD CONSTRAINT `prefix_talk_comment_fk1` FOREIGN KEY (`user_id`) REFERENCES `prefix_user` (`user_id`) ON DELETE CASCADE ON UPDATE CASCADE,
ADD CONSTRAINT `prefix_talk_comment_fk2` FOREIGN KEY (`talk_comment_pid`) REFERENCES `prefix_talk_comment` (`talk_comment_id`) ON DELETE CASCADE ON UPDATE CASCADE;
--
-- Constraints for table `prefix_talk_user`
--
ALTER TABLE `prefix_talk_user`
ADD CONSTRAINT `prefix_talk_user_fk` FOREIGN KEY (`talk_id`) REFERENCES `prefix_talk` (`talk_id`) ON DELETE CASCADE ON UPDATE CASCADE,
ADD CONSTRAINT `prefix_talk_user_fk1` FOREIGN KEY (`user_id`) REFERENCES `prefix_user` (`user_id`) ON DELETE CASCADE ON UPDATE CASCADE;
--
-- Constraints for table `prefix_topic`
--
ALTER TABLE `prefix_topic`
ADD CONSTRAINT `prefix_topic_fk` FOREIGN KEY (`blog_id`) REFERENCES `prefix_blog` (`blog_id`) ON DELETE CASCADE ON UPDATE CASCADE,
ADD CONSTRAINT `prefix_topic_fk1` FOREIGN KEY (`user_id`) REFERENCES `prefix_user` (`user_id`) ON DELETE CASCADE ON UPDATE CASCADE;
--
-- Constraints for table `prefix_topic_comment`
--
ALTER TABLE `prefix_topic_comment`
ADD CONSTRAINT `prefix_topic_comment_fk` FOREIGN KEY (`comment_pid`) REFERENCES `prefix_topic_comment` (`comment_id`) ON DELETE CASCADE ON UPDATE CASCADE,
ADD CONSTRAINT `topic_comment_fk` FOREIGN KEY (`topic_id`) REFERENCES `prefix_topic` (`topic_id`) ON DELETE CASCADE ON UPDATE CASCADE,
ADD CONSTRAINT `topic_comment_fk1` FOREIGN KEY (`user_id`) REFERENCES `prefix_user` (`user_id`) ON DELETE CASCADE ON UPDATE CASCADE;
--
-- Constraints for table `prefix_topic_comment_online`
--
ALTER TABLE `prefix_topic_comment_online`
ADD CONSTRAINT `prefix_topic_comment_online_fk` FOREIGN KEY (`topic_id`) REFERENCES `prefix_topic` (`topic_id`) ON DELETE CASCADE ON UPDATE CASCADE,
ADD CONSTRAINT `prefix_topic_comment_online_fk1` FOREIGN KEY (`comment_id`) REFERENCES `prefix_topic_comment` (`comment_id`) ON DELETE CASCADE ON UPDATE CASCADE;
--
-- Constraints for table `prefix_topic_comment_vote`
--
ALTER TABLE `prefix_topic_comment_vote`
ADD CONSTRAINT `prefix_topic_comment_vote_fk` FOREIGN KEY (`comment_id`) REFERENCES `prefix_topic_comment` (`comment_id`) ON DELETE CASCADE ON UPDATE CASCADE,
ADD CONSTRAINT `prefix_topic_comment_vote_fk1` FOREIGN KEY (`user_voter_id`) REFERENCES `prefix_user` (`user_id`) ON DELETE CASCADE ON UPDATE CASCADE;
--
-- Constraints for table `prefix_topic_content`
--
ALTER TABLE `prefix_topic_content`
ADD CONSTRAINT `prefix_topic_content_fk` FOREIGN KEY (`topic_id`) REFERENCES `prefix_topic` (`topic_id`) ON DELETE CASCADE ON UPDATE CASCADE;
--
-- Constraints for table `prefix_topic_question_vote`
--
ALTER TABLE `prefix_topic_question_vote`
ADD CONSTRAINT `prefix_topic_question_vote_fk` FOREIGN KEY (`topic_id`) REFERENCES `prefix_topic` (`topic_id`) ON DELETE CASCADE ON UPDATE CASCADE,
ADD CONSTRAINT `prefix_topic_question_vote_fk1` FOREIGN KEY (`user_voter_id`) REFERENCES `prefix_user` (`user_id`) ON DELETE CASCADE ON UPDATE CASCADE;
--
-- Constraints for table `prefix_topic_read`
--
ALTER TABLE `prefix_topic_read`
ADD CONSTRAINT `prefix_topic_read_fk` FOREIGN KEY (`topic_id`) REFERENCES `prefix_topic` (`topic_id`) ON DELETE CASCADE ON UPDATE CASCADE,
ADD CONSTRAINT `prefix_topic_read_fk1` FOREIGN KEY (`user_id`) REFERENCES `prefix_user` (`user_id`) ON DELETE CASCADE ON UPDATE CASCADE;
--
-- Constraints for table `prefix_topic_tag`
--
ALTER TABLE `prefix_topic_tag`
ADD CONSTRAINT `prefix_topic_tag_fk` FOREIGN KEY (`topic_id`) REFERENCES `prefix_topic` (`topic_id`) ON DELETE CASCADE ON UPDATE CASCADE,
ADD CONSTRAINT `prefix_topic_tag_fk1` FOREIGN KEY (`user_id`) REFERENCES `prefix_user` (`user_id`) ON DELETE CASCADE ON UPDATE CASCADE,
ADD CONSTRAINT `prefix_topic_tag_fk2` FOREIGN KEY (`blog_id`) REFERENCES `prefix_blog` (`blog_id`) ON DELETE CASCADE ON UPDATE CASCADE;
--
-- Constraints for table `prefix_topic_vote`
--
ALTER TABLE `prefix_topic_vote`
ADD CONSTRAINT `prefix_topic_vote_fk` FOREIGN KEY (`topic_id`) REFERENCES `prefix_topic` (`topic_id`) ON DELETE CASCADE ON UPDATE CASCADE,
ADD CONSTRAINT `prefix_topic_vote_fk1` FOREIGN KEY (`user_voter_id`) REFERENCES `prefix_user` (`user_id`) ON DELETE CASCADE ON UPDATE CASCADE;
--
-- Constraints for table `prefix_user_administrator`
--
ALTER TABLE `prefix_user_administrator`
ADD CONSTRAINT `user_administrator_fk` FOREIGN KEY (`user_id`) REFERENCES `prefix_user` (`user_id`) ON DELETE CASCADE ON UPDATE CASCADE;
--
-- Constraints for table `prefix_user_vote`
--
ALTER TABLE `prefix_user_vote`
ADD CONSTRAINT `user_vote_fk` FOREIGN KEY (`user_id`) REFERENCES `prefix_user` (`user_id`) ON DELETE CASCADE ON UPDATE CASCADE,
ADD CONSTRAINT `user_vote_fk1` FOREIGN KEY (`user_voter_id`) REFERENCES `prefix_user` (`user_id`) ON DELETE CASCADE ON UPDATE CASCADE;

View file

@ -0,0 +1,39 @@
<!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" xml:lang="en">
<head>
<title>LS Installer</title>
<style type="text/css" media="screen">
html {margin:0;padding:0;background:url("data:image/gif;base64,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")}
body {width:50em; margin:2em auto;border:4px solid #eee; padding:0.5em 1em 1.5em; font-size:14px; font-family: Verdana, sans-serif; background-color:#fffafa}
h1,h2 {color:#639cb1; border-bottom:1px solid #d7e1e1; text-transform:uppercase; font-family: Arial, sans-serif;font-weight:100;letter-spacing:2px}
h1 {font-size: 22px;padding:0.159em 0;margin:0.159em 0;background:url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAcCAYAAAB75n/uAAAACXBIWXMAAC4jAAAuIwF4pT92AAAAGHRFWHRTb2Z0d2FyZQBQYWludC5ORVQgdjMuMzE3g3eGAAABmElEQVR42q2VWU/CQBSF+f9/xSiJe+LyIIrRRAEFBemCLRQoO2XvMs6ZpEQytHSZm5xknuab5Zx7M4SW43rkWW2To0KdqdIeEFGVweY5qbXd3FdrPBMDyCsGyZYkDvCmdcUAFhubjBYrcvXV2AHc/+hiAP7iw+jvAC4rDeKJBGhDi3sma7URBygbAw4wFQkoNnscoG6OxQFyMm/VvNIWBzj9VDgANF/b6QFr29m7OYQQIoypAEhtEAB6oBDX85IDCk0zFAA90cQnuQkD5P81ukMQJD82YF+zC9JtTYv18Qzw3RlGBkDoW1FvsnVRtiTHglxTyHS5jp6DajfeLaAT2ub1kRUNgHqUjdgQ6F032SscBNiuy+ZAEsh5WSXqYBIOQCFPmA3HRSkRCC7rz5bBAL+Q7rOykggClVr9cAAKfvdvgna+cdxQ4VAvjQ57rpuqRibUZYEATDMIfwLfxy08k9wb8wDYDq64q+nb06NFmNYi3TxALanVcK0mhfhuev3t0I/30g8cVI+eEoFDgC4qKlun2fzgJ4uoP3oP6QVLTtdkAAAAAElFTkSuQmCC') no-repeat bottom right}
h2 {font-size: 14px;padding:0.25em 0;margin:0.25em 0}
input[type=submit] { padding: 3px 12px 3px 12px; }
table { border: 0px; }
td { padding: 7px 3px 2px 4px; }
.error { background: #f0c8c8; border: 1px solid #ff8181; padding: 15px; margin-bottom: 15px; color: #b22626; }
.notice { background: #dafad8; border: 1px solid #83c460; padding: 15px; margin-bottom: 15px; color: #4bb23b; }
.backtrace, .backtrace li {margin:0;padding:0;list-style:none}
.line,.path {font-family:monospace}
.backtrace .path {display:block;font-size:14px;margin-top:1em; padding:0 0 0.25em; color:#7f7a79}
.code-block {padding-left:3.5em;border:1px solid #b0a8a6;border-width:1px 0;font-size:12px;font-family:monospace;line-height:1.4;background:#ddd url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAQAAAAECAIAAAAmkwkpAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAABh0RVh0U29mdHdhcmUAUGFpbnQuTkVUIHYzLjMxN4N3hgAAACJJREFUGFdjfPr0KQMYvHv3jgHIAYLLly+DROEsEAciBgEAX8klDXI0GZkAAAAASUVORK5CYII=')}
.code-block .line {float:left;width:3em;margin-left:-3.375em;padding:0.25em 0;text-align:right}
.code-block code {display:block;background-color:#eee;padding:0.25em;}
</style>
<!--[if IE ]>
<style type="text/css" media="screen">
html {background:#BEC6C6}
</style>
<![endif]-->
</head>
<body>
<h1>LiveStreet Install</h1>
___SYSTEM_MESSAGES___
<form action="___FORM_ACTION___" method="POST">
___CONTENT___
<br />
<p><input type="submit" name="install_step_next" value="Next" ___NEXT_STEP_DISABLED___ style="display:___NEXT_STEP_DISPLAY___;" /></p>
</form>
</body>
</html>

View file

@ -0,0 +1 @@
<p class="___MESSAGE_STYLE_CLASS___">___MESSAGE_CONTENT___</p>

View file

@ -0,0 +1,33 @@
<p>Заполните указаные ниже поля.</p>
<br />
<h2>Настройка базы данных</h2>
<input type="hidden" name="install_db_params" value="1" />
<table>
<tr>
<td width="250px">Имя сервера БД или DSN</td>
<td><input type="text" name="install_db_server" value="___INSTALL_DB_SERVER___" /></td>
</tr>
<tr>
<td>Порт сервера БД</td>
<td><input type="text" name="install_db_port" value="___INSTALL_DB_PORT___" /></td>
</tr>
<tr>
<td>Название базы данных</td>
<td>
<input type="text" name="install_db_name" value="___INSTALL_DB_NAME___" /><br />
<input type="checkbox" name="install_db_create" value="1" ___INSTALL_DB_CREATE_CHECK___ /> <i>Создать базу данных</i>
</td>
</tr>
<tr>
<td>Имя пользователя</td>
<td><input type="text" name="install_db_user" value="___INSTALL_DB_USER___" /></td>
</tr>
<tr>
<td>Пароль к БД</td>
<td><input type="text" name="install_db_password" value="___INSTALL_DB_PASSWORD___" /></td>
</tr>
<tr>
<td>Префикс таблиц</td>
<td><input type="text" name="install_db_prefix" value="___INSTALL_DB_PREFIX___" /></td>
</tr>
</table>

View file

@ -0,0 +1,39 @@
<p>Добро пожаловать в инсталлятор LiveStreet &copy; 0.4. Ознакомьтесь с результатами и следуйте подсказкам.</p>
<br />
<h2>Основные настройки PHP</h2>
<table>
<tr>
<td width="350px"><i>Safe mode</i> выключен</td><td>___VALIDATE_SAFE_MODE___</td>
</tr>
<tr>
<td width="350px"><i>register_globals</i> отключен</td><td>___VALIDATE_REGISTER_GLOBALS___</td>
</tr>
<tr>
<td width="350px">Поддержка UTF-8 в PCRE</td><td>___VALIDATE_UTF8___</td>
</tr>
</table>
<br />
<h2>MBSTRING Extension</h2>
<table>
<tr>
<td width="350px">
Перегрузка функции: <br />
<i>Значение mbstring.func_overload должно быть установлено равным 0 либо 4.</i>
</td>
<td>___VALIDATE_HTTP_INPUT___</td>
</tr>
<tr>
<td width="350px">
Кодировка входящих символов:<br />
<i>Значение mbstring.http_input должно быть установлено равным pass.</i>
</td>
<td>___VALIDATE_HTTP_OUTPUT___</td>
</tr>
<tr>
<td width="350px">
Кодировка исходящих символов: <br />
<i>Значение mbstring.http_output должно быть установлено равным pass.</i>
</td>
<td>___VALIDATE_FUNC_OVERLOAD___</td>
</tr>
</table>