start($baseDir.'/cms.zip');
if ($download->getErrors()) {
$fileExists = false;
$errors .= $download->getErrors().' '.$constants[$_REQUEST['lang']]['tryagain'].''.' '; } } if ((float) phpversion() < 7.4) { print $errors = ''.$constants[$_REQUEST['lang']]['phpversion'].' ';
}
elseif (!function_exists('mysqli_connect'))
{
print $errors = ''.$constants[$_REQUEST['lang']]['mysqli'].' ';
}
$_REQUEST['DB_NAME'] = trim($_REQUEST['DB_NAME']);
$_REQUEST['DB_USER'] = trim($_REQUEST['DB_USER']);
$_REQUEST['DB_PASS'] = trim($_REQUEST['DB_PASS']);
$_REQUEST['EMAIL'] = trim($_REQUEST['EMAIL']);
mysqli_report(MYSQLI_REPORT_OFF);
$connection = new mysqli($_REQUEST['DB_HOST'], $_REQUEST['DB_USER'], $_REQUEST['DB_PASS'], $_REQUEST['DB_NAME']);
if (mysqli_connect_errno()) {
print $errors = ''.$constants[$_REQUEST['lang']]['connect_error'].' '.mysqli_connect_error().' ';
}
$oldSite = 0;
if(empty($errors)) {
if (!is_writable($baseDir.'/')) {
print $errors = ''.$constants[$_REQUEST['lang']]['baseDir'].' ';
} elseif (file_exists($baseDir.'/cms.zip')) {
$arc = new PclZip($baseDir.'/cms.zip');
if ($arc->extract(PCLZIP_OPT_REPLACE_NEWER) == 0) {
print $errors = ''.$constants[$_REQUEST['lang']]['error'].$arc->errorInfo(true).' ';
if (file_exists($baseDir.'/cms.zip')) @unlink($baseDir.'/cms.zip');
} else {
if (empty($_REQUEST['DB_HOST'])) $_REQUEST['DB_HOST'] = 'localhost';
$data = file_get_contents($baseDir.'/config/index.php');
$search = array(
"/define\(\'BASE_DIR\'\, \'.*\'\)\;/iUu",
"/define\(\'siteProtocol\'\, \'.*\'\)\;/iUu",
"/define\(\'DEFAULT_LANG\'\, \'.+\'\)\;/iUu",
"/define\(\'DEFAULT_LANG_ID\'\,\ .+\)\;/iUu",
"/ini_set\(\'display_errors\'\,\ 1\)\;/iUu"
);
$replace = array(
"define('BASE_DIR', '".preg_escape_back($BASE_DIR, "'", "\\'")."');",
"define('siteProtocol', '".getProtocol()."');",
"define('DEFAULT_LANG', '".preg_escape_back($_REQUEST['lang'])."');",
"define('DEFAULT_LANG_ID', ".(int)$langIds[$_REQUEST['lang']].");",
"ini_set('display_errors', 0);"
);
if(file_exists($baseDir.'/sitemap.php')) {
$oldSite = 1;
$search[] = "/define\(\'DOMAIN\'\, \'.*\'\)\;/iUu";
$replace[] = "define('DOMAIN', '".preg_escape_back($dom_encoded, "'", "\\'")."');";
}
$data = preg_replace($search, $replace, $data);
$fp = fopen($baseDir.'/config/index.php', 'w');
fwrite($fp, $data);
fclose($fp);
$data = " 'mysql',
'connections' => [
'mysql' => [
'host' => '".str_replace(['\\', "'"], ['\\\\', "\\'"], $_REQUEST['DB_HOST'])."',
'port' => '3306',
'database' => '".str_replace(['\\', "'"], ['\\\\', "\\'"], $_REQUEST['DB_NAME'])."',
'username' => '".str_replace(['\\', "'"], ['\\\\', "\\'"], $_REQUEST['DB_USER'])."',
'password' => '".str_replace(['\\', "'"], ['\\\\', "\\'"], $_REQUEST['DB_PASS'])."',
'charset' => 'utf8mb4',
'prefix' => 'cp_',
'socket' => ''
]
]
];";
$fp = fopen($baseDir.'/config/database.php', 'w');
fwrite($fp, $data);
fclose($fp);
if ($oldSite) {
$data = file_get_contents($baseDir.'/robots.txt');
$data = preg_replace(array('/Sitemap\:.+\/sitemap\.xml/iUu',
'/Disallow\: \/admin\//iUu',
"/^Host\:.+$/iUum"),
array('Sitemap: '.getProtocol().'://'.preg_escape_back($dom_encoded.$BASE_DIR.'/sitemap.xml'),
'Disallow: '.preg_escape_back($BASE_DIR.'/admin/'),
preg_escape_back('Host: '.(getProtocol()=='https'?'https://':'').$dom_encoded)),
$data);
$fp = fopen($baseDir.'/robots.txt', 'w');
fwrite($fp, $data);
fclose($fp);
}
$data = file_get_contents($baseDir.'/.htaccess');
$data = preg_replace("/RewriteBase \//iUu",
'RewriteBase '.preg_escape_back($BASE_DIR).'/',
$data);
$fp = fopen($baseDir.'/.htaccess', 'w');
fwrite($fp, $data);
fclose($fp);
}
} else {
print $errors = ''.$constants[$_REQUEST['lang']]['CMSZIP'].' ';
}
}
if (empty($errors)) {
if(file_exists($baseDir.'/cms.sql')) {
$connection->set_charset('utf8mb4');
$connection->query('SET NAMES utf8mb4');
$sq=file($baseDir.'/cms.sql');
$sss = $ss = '';
foreach ($sq as $sql) {
$sql=trim($sql);
if (empty($sql)){unset($sql);continue;}
elseif ($sql[0]=="-"){unset($sql);continue;}
elseif ($sql[0]=="/"){unset($sql);continue;}
elseif ($sql[0]=="#"){unset($sql);continue;}
if (substr($sql, -1, 1) == ';') {
$ss.= $sss.$sql."\n";
$connection->query($ss);
$ss = $sss = '';
} else $sss.=$sql;
}
$connection->query('UPDATE cp_acl_user
SET userEmail = "'.$connection->real_escape_string($_REQUEST['EMAIL']).'",
hPassword = "'.$connection->real_escape_string(md5('6499'.$npassword)).'",
uPassword = "'.$connection->real_escape_string($npassword).'"
WHERE id = 6');
$connection->query('UPDATE cp_page SET langId = '.(int)$langIds[$_REQUEST['lang']]);
$connection->query('UPDATE cp_acl_user SET langId = '.(int)$langIds[$_REQUEST['lang']]);
if (isset($constants[$_REQUEST['lang']]['Authorization'])) {
$connection->query('UPDATE cp_page SET baseName = "'.$connection->real_escape_string($constants[$_REQUEST['lang']]['Authorization']).'" WHERE id = 4');
}
if (isset($constants[$_REQUEST['lang']]['forgetpassword'])) {
$connection->query('UPDATE cp_page SET baseName = "'.$connection->real_escape_string($constants[$_REQUEST['lang']]['forgetpassword']).'" WHERE id = 15');
$connection->query('UPDATE cp_block SET baseName = "'.$connection->real_escape_string($constants[$_REQUEST['lang']]['forgetpassword']).'" WHERE id = 142');
}
if (isset($constants[$_REQUEST['lang']]['Home'])) {
$connection->query('UPDATE cp_page SET baseName = "'.$connection->real_escape_string($constants[$_REQUEST['lang']]['Home']).'" WHERE id = 1');
}
if (isset($constants[$_REQUEST['lang']]['Enter'])) {
$connection->query('UPDATE cp_block SET baseName = "'.$connection->real_escape_string($constants[$_REQUEST['lang']]['Enter']).'" WHERE id = 20');
}
if (isset($constants[$_REQUEST['lang']]['Enter2'])) {
$connection->query('UPDATE cp_block SET baseName = "'.$connection->real_escape_string($constants[$_REQUEST['lang']]['Enter2']).'" WHERE id in (117,149)');
}
if (isset($constants[$_REQUEST['lang']]['Password2'])) {
$connection->query('UPDATE cp_block SET baseName = "'.$connection->real_escape_string($constants[$_REQUEST['lang']]['Password2']).'" WHERE id = 19');
}
if (isset($constants[$_REQUEST['lang']]['Whatisyourname'])) {
$connection->query('UPDATE cp_block SET baseName = "'.$connection->real_escape_string($constants[$_REQUEST['lang']]['Whatisyourname']).'" WHERE id in (145,113)');
}
if (isset($constants[$_REQUEST['lang']]['E-mailcommunicate'])) {
$connection->query('UPDATE cp_block SET baseName = "'.$connection->real_escape_string($constants[$_REQUEST['lang']]['E-mailcommunicate']).'" WHERE id in (146,114)');
}
if (isset($constants[$_REQUEST['lang']]['Phone'])) {
$connection->query('UPDATE cp_block SET baseName = "'.$connection->real_escape_string($constants[$_REQUEST['lang']]['Phone']).'" WHERE id = 150');
}
if (isset($constants[$_REQUEST['lang']]['Contacts'])) {
$connection->query('UPDATE cp_block SET baseName = "'.$connection->real_escape_string($constants[$_REQUEST['lang']]['Contacts']).'" WHERE id in (29,104)');
}
if (isset($constants[$_REQUEST['lang']]['Other'])) {
$connection->query('UPDATE cp_storage SET baseName = "'.$connection->real_escape_string($constants[$_REQUEST['lang']]['Other']).'" WHERE id = 4');
}
if (isset($constants[$_REQUEST['lang']]['Documents'])) {
$connection->query('UPDATE cp_storage SET baseName = "'.$connection->real_escape_string($constants[$_REQUEST['lang']]['Documents']).'" WHERE id = 2');
}
if (isset($constants[$_REQUEST['lang']]['Images'])) {
$connection->query('UPDATE cp_storage SET baseName = "'.$connection->real_escape_string($constants[$_REQUEST['lang']]['Images']).'" WHERE id = 3');
}
$r = $connection->query('SELECT id, settings FROM cp_block WHERE service = "link_core"');
while ($result = $r->fetch_assoc()) {
$result['settings'] = $result['settings'] ? unserialize($result['settings']) : array();
if (isset($result['settings']['path'])) {
if (trim($result['settings']['path'], '/') == 'admin' || trim($result['settings']['path'], '/') == 'exit') {
$result['settings']['path'] = $BASE_DIR.$result['settings']['path'];
$connection->query('UPDATE cp_block
SET settings = "'.$connection->real_escape_string(serialize($result['settings'])).'"
WHERE id = '.(int)$result['id']);
}
}
}
$connection->close();
unlink($baseDir.'/cms.sql');
} else {
print $errors = ''.$constants[$_REQUEST['lang']]['CMSsql'].' ';
}
if (empty($errors)) {
$startEx = $cmsEx = 0;
if (file_exists($baseDir.'/cms.zip')) @unlink($baseDir.'/cms.zip');
if (basename(__FILE__) != 'index.php' && file_exists($baseDir.'/'.basename(__FILE__))) @unlink($baseDir.'/'.basename(__FILE__));
if (file_exists($baseDir.'/index.htm')) @unlink($baseDir.'/index.htm');
if (file_exists($baseDir.'/index.html')) @unlink($baseDir.'/index.html');
if (function_exists('opcache_reset')) @opcache_reset();
print ''; print 'Admin panel >> '.$constants[$_REQUEST['lang']]['phpversion'].' ';
}
}
}
} elseif (isset($_REQUEST['lang'])) {
$fileExists = true;
$errors = '';
if (!is_writable($baseDir.'/')) {
$errors .= ''.$constants[$_REQUEST['lang']]['baseDir'].' '; } if (!file_exists($baseDir.'/cms.zip')) { $download = new download(); $download->start($baseDir.'/cms.zip'); if ($download->getErrors()) { $fileExists = false; $errors .= $download->getErrors().''; } } if ($fileExists && empty($errors)) {?> '.$errors.''; } } else {?> |