| 1 |
<?php |
|---|
| 2 |
|
|---|
| 3 |
@set_time_limit(0); |
|---|
| 4 |
ignore_user_abort(true); |
|---|
| 5 |
|
|---|
| 6 |
$root_path = './../';</span> |
|---|
| 7 |
<span class="code-lang">require ($root_path . 'include/config.php'); |
|---|
| 8 |
|
|---|
| 9 |
$userdata = session_pagestart($user_ip); |
|---|
| 10 |
init_userprefs($userdata); |
|---|
| 11 |
|
|---|
| 12 |
loggedinorreturn();</span> |
|---|
| 13 |
<span class="code-lang"> |
|---|
| 14 |
if ($userdata['class'] < UC_ADMINISTRATOR) |
|---|
| 15 |
{ |
|---|
| 16 |
trigger_error($lang['not_admin']); |
|---|
| 17 |
return; |
|---|
| 18 |
} |
|---|
| 19 |
|
|---|
| 20 |
if (!isset($userdata['session_admin']) || !$userdata['session_admin'] || !$userdata['session_logged_in'] ) |
|---|
| 21 |
{ |
|---|
| 22 |
define('ADMIN_START', true); |
|---|
| 23 |
show_login_box('updates/index.php', true); |
|---|
| 24 |
} |
|---|
| 25 |
|
|---|
| 26 |
$message = ''; |
|---|
| 27 |
$updates_dir = $root_path . 'updates/';</span> |
|---|
| 28 |
<span class="code-lang"> |
|---|
| 29 |
function source_version ( $version = '' ) { |
|---|
| 30 |
global $config; |
|---|
| 31 |
|
|---|
| 32 |
if ( !$version ) { |
|---|
| 33 |
$version = $config['version']; |
|---|
| 34 |
} |
|---|
| 35 |
|
|---|
| 36 |
list($base_version, $rlz_version, $ext_version) = explode('.', $version); |
|---|
| 37 |
if ( strpos($ext_version, 'svn') ) { |
|---|
| 38 |
$ext_version = str_replace('svn', '.', $ext_version); |
|---|
| 39 |
} |
|---|
| 40 |
return $base_version . $rlz_version . $ext_version; |
|---|
| 41 |
|
|---|
| 42 |
} |
|---|
| 43 |
|
|---|
| 44 |
$source_version = source_version(); |
|---|
| 45 |
$updated = false; |
|---|
| 46 |
$updater_text = ''; |
|---|
| 47 |
$upd_ary = array();</span> |
|---|
| 48 |
<span class="code-lang"> |
|---|
| 49 |
if ( $dir_handle = opendir($updates_dir) ) { |
|---|
| 50 |
while ( ( $file = readdir($dir_handle) ) !== false ) { |
|---|
| 51 |
if ( $file != '.' && $file != '..' ) { |
|---|
| 52 |
|
|---|
| 53 |
$filename = str_replace('.php', '', $file); |
|---|
| 54 |
|
|---|
| 55 |
if ( (float) $filename > $source_version ) { |
|---|
| 56 |
$upd_ary[(float) $filename] = $file; |
|---|
| 57 |
} |
|---|
| 58 |
} |
|---|
| 59 |
} |
|---|
| 60 |
|
|---|
| 61 |
ksort($upd_ary); |
|---|
| 62 |
|
|---|
| 63 |
foreach ( $upd_ary AS $version => $file ) { |
|---|
| 64 |
ob_start(); |
|---|
| 65 |
require($updates_dir . $file); |
|---|
| 66 |
if ( isset($upd_version) ) { |
|---|
| 67 |
set_config('version', $upd_version); |
|---|
| 68 |
$source_version = source_version($upd_version); |
|---|
| 69 |
unset($upd_version); |
|---|
| 70 |
$updated = true; |
|---|
| 71 |
} |
|---|
| 72 |
$updater_text .= ob_get_contents(); |
|---|
| 73 |
ob_end_clean(); |
|---|
| 74 |
} |
|---|
| 75 |
} |
|---|
| 76 |
else { |
|---|
| 77 |
trigger_error('Cant open dir with updates'); |
|---|
| 78 |
} |
|---|
| 79 |
|
|---|
| 80 |
$cache->purge(); |
|---|
| 81 |
$message = ( $updated ? 'Database updated sucefully to version ' . $source_version . '. Now you must delete this file!' : 'No updates found' );</span> |
|---|
| 82 |
<span class="code-lang">if ( $updater_text ) { |
|---|
| 83 |
$message .= '<br />Some text from updates (can be errors about update proccess here - read it carefully)<br /><strong>' . $updater_text . '</strong>'; |
|---|
| 84 |
} |
|---|
| 85 |
trigger_error($message); |
|---|
| 86 |
?> |
|---|