mirror of
https://github.com/kleeja-official/kleeja.git
synced 2025-12-14 20:19:43 +01:00
158 lines
3.8 KiB
PHP
Executable File
158 lines
3.8 KiB
PHP
Executable File
<?php
|
|
/**
|
|
*
|
|
* @package install
|
|
* @copyright (c) 2007 Kleeja.net
|
|
* @license ./docs/license.txt
|
|
*
|
|
*/
|
|
|
|
|
|
// Report all errors, except notices
|
|
@error_reporting(E_ALL ^ E_NOTICE);
|
|
|
|
|
|
/**
|
|
* include important files
|
|
*/
|
|
define('IN_COMMON', true);
|
|
define('STOP_PLUGINS', true);
|
|
define('PATH', '../');
|
|
|
|
if (file_exists(PATH . 'config.php'))
|
|
{
|
|
include_once PATH . 'config.php';
|
|
}
|
|
|
|
include_once PATH . 'includes/plugins.php';
|
|
include_once PATH . 'includes/functions.php';
|
|
include_once PATH . 'includes/functions_alternative.php';
|
|
|
|
if (isset($dbtype) && $dbtype == 'sqlite')
|
|
{
|
|
include PATH . 'includes/sqlite.php';
|
|
}
|
|
else
|
|
{
|
|
include PATH . 'includes/mysqli.php';
|
|
}
|
|
|
|
include_once 'includes/functions_install.php';
|
|
include_once 'includes/update_schema.php';
|
|
|
|
|
|
$SQL = new KleejaDatabase($dbserver, $dbuser, $dbpass, $dbname, $dbprefix);
|
|
|
|
//
|
|
// fix missing db_version
|
|
//
|
|
$config['db_version'] = inst_get_config('db_version');
|
|
|
|
if ($config['db_version'] == false)
|
|
{
|
|
$SQL->query("INSERT INTO `{$dbprefix}config` (`name` ,`value`) VALUES ('db_version', '')");
|
|
}
|
|
|
|
|
|
|
|
$IN_UPDATE = true;
|
|
|
|
/**
|
|
* print header
|
|
*/
|
|
if (! ip('action_file_do'))
|
|
{
|
|
echo gettpl('header.html');
|
|
}
|
|
|
|
|
|
/**
|
|
* Navigation ..
|
|
*/
|
|
switch (g('step', 'str', 'action_file'))
|
|
{
|
|
default:
|
|
case 'update_now':
|
|
|
|
$complete_update = true;
|
|
$update_msgs_arr = [];
|
|
$current_db_version = $config['db_version'];
|
|
|
|
$all_db_updates = array_keys($update_schema);
|
|
|
|
$available_db_updates = array_filter($all_db_updates, function ($v) use ($current_db_version) {
|
|
return $v > $current_db_version;
|
|
});
|
|
|
|
sort($available_db_updates);
|
|
|
|
if (! sizeof($available_db_updates))
|
|
{
|
|
$update_msgs_arr[] = '<span style="color:green;">' . $lang['INST_UPDATE_CUR_VER_IS_UP'] . '</span>';
|
|
$complete_update = false;
|
|
}
|
|
|
|
//
|
|
//is there any sqls
|
|
//
|
|
if ($complete_update)
|
|
{
|
|
//loop through available updates
|
|
foreach ($available_db_updates as $db_update_version)
|
|
{
|
|
$SQL->hideErrors();
|
|
|
|
//sqls
|
|
if (isset($update_schema[$db_update_version]['sql'])
|
|
&& sizeof($update_schema[$db_update_version]['sql']) > 0)
|
|
{
|
|
$err = '';
|
|
|
|
$complete_update = true;
|
|
|
|
foreach ($update_schema[$db_update_version]['sql'] as $name=>$sql_content)
|
|
{
|
|
$err = '';
|
|
$SQL->query($sql_content);
|
|
$err = $SQL->get_error();
|
|
|
|
if (strpos($err[1], 'Duplicate') !== false || $err[0] == '1062' || $err[0] == '1060')
|
|
{
|
|
$complete_update = false;
|
|
}
|
|
}
|
|
}
|
|
|
|
//functions
|
|
if ($complete_update)
|
|
{
|
|
if (isset($update_schema[$db_update_version]['functions']) && sizeof($update_schema[$db_update_version]['functions']) > 0)
|
|
{
|
|
foreach ($update_schema[$db_update_version]['functions'] as $n)
|
|
{
|
|
if (is_callable($n))
|
|
{
|
|
$n();
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
$sql = "UPDATE `{$dbprefix}config` SET `value` = '" . KLEEJA_DB_VERSION . "' WHERE `name` = 'db_version'";
|
|
$SQL->query($sql);
|
|
$update_msgs_arr[] = '<span style="color:green;">' . $lang['INST_UPDATE_IS_FINISH'] . '</span>';
|
|
}
|
|
}
|
|
|
|
|
|
delete_cache('', true);
|
|
echo gettpl('update_end.html');
|
|
|
|
break;
|
|
}
|
|
|
|
/**
|
|
* print footer
|
|
*/
|
|
echo gettpl('footer.html');
|