mirror of
https://github.com/Oreolek/ifhub.club.git
synced 2024-06-28 20:45:00 +03:00
Доработка инсталлятора - конвертация таблицы плагина Page
This commit is contained in:
parent
a75b33dbde
commit
8a87498cbd
|
@ -168,25 +168,47 @@ abstract class InstallStep
|
|||
* Массив для сбора ошибок
|
||||
*/
|
||||
$aErrors = array();
|
||||
/**
|
||||
* Смотрим, какие таблицы существуют в базе данных
|
||||
*/
|
||||
$aDbTables = array();
|
||||
$aResult = @mysqli_query($oDb, "SHOW TABLES");
|
||||
if (!$aResult) {
|
||||
return array(
|
||||
'result' => false,
|
||||
'errors' => array($this->addError(InstallCore::getLang('db.errors.db_query')))
|
||||
);
|
||||
}
|
||||
while ($aRow = mysqli_fetch_array($aResult, MYSQLI_NUM)) {
|
||||
$aDbTables[] = $aRow[0];
|
||||
|
||||
if (isset($aParams['check_table'])) {
|
||||
/**
|
||||
* Смотрим, какие таблицы существуют в базе данных
|
||||
*/
|
||||
$aDbTables = array();
|
||||
$aResult = @mysqli_query($oDb, "SHOW TABLES");
|
||||
if (!$aResult) {
|
||||
return array(
|
||||
'result' => false,
|
||||
'errors' => array($this->addError(InstallCore::getLang('db.errors.db_query')))
|
||||
);
|
||||
}
|
||||
while ($aRow = mysqli_fetch_array($aResult, MYSQLI_NUM)) {
|
||||
$aDbTables[] = $aRow[0];
|
||||
}
|
||||
/**
|
||||
* Если среди таблиц БД уже есть нужная таблица, то выполнять SQL-дамп не нужно
|
||||
*/
|
||||
if (in_array($aParams['prefix'] . $aParams['check_table'], $aDbTables)) {
|
||||
return array('result' => true, 'errors' => array());
|
||||
}
|
||||
}
|
||||
/**
|
||||
* Если среди таблиц БД уже есть нужная таблица, то выполнять SQL-дамп не нужно
|
||||
* Проверка на существование поля
|
||||
*/
|
||||
if (in_array($aParams['prefix'] . $aParams['check_table'], $aDbTables)) {
|
||||
return array('result' => true, 'errors' => array());
|
||||
if (isset($aParams['check_table_field'])) {
|
||||
list($sCheckTable, $sCheckField) = $aParams['check_table_field'];
|
||||
$sCheckTable = str_replace('prefix_', $aParams['prefix'], $sCheckTable);
|
||||
$aResult = @mysqli_query($oDb, "SHOW FIELDS FROM `{$sCheckTable}`");
|
||||
if (!$aResult) {
|
||||
return array(
|
||||
'result' => false,
|
||||
'errors' => array($this->addError(InstallCore::getLang('db.errors.db_query')))
|
||||
);
|
||||
}
|
||||
while ($aRow = mysqli_fetch_assoc($aResult)) {
|
||||
if ($aRow['Field'] == $sCheckField) {
|
||||
return array('result' => true, 'errors' => array());
|
||||
}
|
||||
}
|
||||
}
|
||||
/**
|
||||
* Выполняем запросы по очереди
|
||||
|
|
|
@ -79,6 +79,21 @@ class InstallStepUpdateVersion extends InstallStep
|
|||
'check_table' => 'cron_task'
|
||||
)));
|
||||
if ($bResult) {
|
||||
/**
|
||||
* Проверяем необходимость конвертировать таблицу плагина Page
|
||||
*/
|
||||
if ($this->dbCheckTable("prefix_page")) {
|
||||
$sFile = 'sql' . DIRECTORY_SEPARATOR . 'patch_page_1.3_to_2.0.sql';
|
||||
list($bResult, $aErrors) = array_values($this->importDumpDB($oDb, InstallCore::getDataFilePath($sFile),
|
||||
array(
|
||||
'engine' => InstallConfig::get('db.tables.engine'),
|
||||
'prefix' => InstallConfig::get('db.table.prefix'),
|
||||
'check_table_field' => array('prefix_page', 'id')
|
||||
)));
|
||||
if (!$bResult) {
|
||||
return $this->addError(join('<br/>', $aErrors));
|
||||
}
|
||||
}
|
||||
/**
|
||||
* Конвертируем опросы
|
||||
* Сначала проверяем необходимость конвертации опросов
|
||||
|
@ -603,7 +618,7 @@ class InstallStepUpdateVersion extends InstallStep
|
|||
*/
|
||||
$aFields = array(
|
||||
'user_id' => $aUser['user_id'],
|
||||
'role_id' => 2,
|
||||
'role_id' => 2,
|
||||
'date_create' => date("Y-m-d H:i:s"),
|
||||
);
|
||||
$this->dbInsertQuery('prefix_rbac_role_user', $aFields);
|
||||
|
|
14
application/install/data/sql/patch_page_1.3_to_2.0.sql
Normal file
14
application/install/data/sql/patch_page_1.3_to_2.0.sql
Normal file
|
@ -0,0 +1,14 @@
|
|||
ALTER TABLE `prefix_page` CHANGE `page_id` `id` INT( 11 ) UNSIGNED NOT NULL AUTO_INCREMENT ;
|
||||
ALTER TABLE `prefix_page` CHANGE `page_pid` `pid` INT( 11 ) UNSIGNED NULL DEFAULT NULL ;
|
||||
ALTER TABLE `prefix_page` CHANGE `page_url` `url` VARCHAR( 50 ) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL ;
|
||||
ALTER TABLE `prefix_page` CHANGE `page_url_full` `url_full` VARCHAR( 254 ) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL ;
|
||||
ALTER TABLE `prefix_page` CHANGE `page_title` `title` VARCHAR( 200 ) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL ;
|
||||
ALTER TABLE `prefix_page` CHANGE `page_text` `text` TEXT CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL ;
|
||||
ALTER TABLE `prefix_page` CHANGE `page_date_add` `date_add` DATETIME NOT NULL ;
|
||||
ALTER TABLE `prefix_page` CHANGE `page_date_edit` `date_edit` DATETIME NULL DEFAULT NULL ;
|
||||
ALTER TABLE `prefix_page` CHANGE `page_seo_keywords` `seo_keywords` VARCHAR( 250 ) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL ;
|
||||
ALTER TABLE `prefix_page` CHANGE `page_seo_description` `seo_description` VARCHAR( 250 ) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL ;
|
||||
ALTER TABLE `prefix_page` CHANGE `page_active` `active` TINYINT( 1 ) UNSIGNED NOT NULL DEFAULT '1';
|
||||
ALTER TABLE `prefix_page` CHANGE `page_main` `main` TINYINT( 1 ) UNSIGNED NOT NULL DEFAULT '0';
|
||||
ALTER TABLE `prefix_page` CHANGE `page_sort` `sort` INT( 11 ) NOT NULL ;
|
||||
ALTER TABLE `prefix_page` CHANGE `page_auto_br` `auto_br` TINYINT( 1 ) NOT NULL DEFAULT '1';
|
Loading…
Reference in a new issue