root/updates/index.php

Revision 298, 2.1 kB (checked in by Nafania, 2 years ago)

Внимание! Начиная с версии svn 297 апдейты для базы данных буду выходить отдельно для каждой версии и будут лежать в папке updates.
Не будет нужды вычленять апдейты из db_updater.php. Если вы обновляетесь нерегулярно, то посмотрите апдейты с вашей последней версии обновления по svn 297 файлаhttp://svn.tbdevsz.ru/browser/db_updater.php и обновитесь оттуда, а после запускайте апдейтер из папки updates, иначе же обновляйтесь, заходя в папку updates.

Line 
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             //filename is a version to update
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 ?>
Note: See TracBrowser for help on using the browser.