Changeset 9729 for extensions/autoupdate/trunk/ajax/check_updates.php
- Timestamp:
- Mar 16, 2011, 7:27:11 PM (13 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
extensions/autoupdate/trunk/ajax/check_updates.php
r9712 r9729 5 5 include_once( PHPWG_ROOT_PATH.'include/common.inc.php' ); 6 6 include_once(PHPWG_ROOT_PATH.'admin/include/functions.php'); 7 include_once(AUTOUPDATE_PATH.'include/autoupdate.class.php'); 8 $autoupdate = new autoupdate(); 7 9 8 10 check_status(ACCESS_ADMINISTRATOR); … … 12 14 header('Content-Type: text/html; charset=UTF-8'); 13 15 16 function autoupdate_error() 17 { 18 unset($_SESSION['extensions_need_update']); 19 echo 'error'; 20 exit; 21 } 22 14 23 if (!isset($_SESSION['need_update'])) 15 24 { 16 $_SESSION['need_update'] = null; 17 18 if (preg_match('/(\d+\.\d+)\.(\d+)/', PHPWG_VERSION, $matches) 19 and @fetchRemote(PHPWG_URL.'/download/all_versions.php', $result)) 20 { 21 $all_versions = @explode("\n", $result); 22 $new_version = trim($all_versions[0]); 23 $_SESSION['need_update'] = version_compare(PHPWG_VERSION, $new_version, '<'); 24 } 25 $autoupdate->check_piwigo_upgrade(); 25 26 } 26 27 … … 31 32 else 32 33 { 33 // Gallery is up to date 34 // Check plugins upgrade 35 include_once(PHPWG_ROOT_PATH.'admin/include/plugins.class.php'); 36 include_once(PHPWG_ROOT_PATH.'admin/include/themes.class.php'); 37 include_once(PHPWG_ROOT_PATH.'admin/include/languages.class.php'); 38 $plugins = new plugins(); 39 $themes = new themes(); 40 $languages = new languages(); 41 34 // Gallery is up to date -> check extensions 42 35 if (!isset($_SESSION['extensions_need_update'])) 43 36 { 44 $_SESSION['extensions_need_update'] = array(); 45 autoupdate_check_plugins_upgrade($plugins); 46 autoupdate_check_themes_upgrade($themes); 47 autoupdate_check_languages_upgrade($languages); 37 $autoupdate->check_extensions(); 48 38 } 49 39 else 50 40 { 51 if (!empty($_SESSION['extensions_need_update']['plugins'])) 52 { 53 // Check if plugins have been upgraded since last check 54 foreach($plugins->fs_plugins as $plugin_id => $fs_plugin) 55 { 56 if (isset($_SESSION['extensions_need_update']['plugins'][$plugin_id]) 57 and $plugins->plugin_version_compare($fs_plugin['version'], $_SESSION['extensions_need_update']['plugins'][$plugin_id])) 58 { 59 // Plugin have been updated 60 autoupdate_check_plugins_upgrade($plugins); 61 } 62 } 63 } 64 if (!empty($_SESSION['extensions_need_update']['themes'])) 65 { 66 // Check if themes have been upgraded since last check 67 foreach($themes->fs_themes as $theme_id => $fs_theme) 68 { 69 if (isset($_SESSION['extensions_need_update']['themes'][$theme_id]) 70 and $themes->theme_version_compare($fs_theme['version'], $_SESSION['extensions_need_update']['themes'][$theme_id])) 71 { 72 // theme have been updated 73 autoupdate_check_themes_upgrade($themes); 74 } 75 } 76 } 77 if (!empty($_SESSION['extensions_need_update']['languages'])) 78 { 79 // Check if languages have been upgraded since last check 80 foreach($languages->fs_languages as $language_id => $fs_language) 81 { 82 if (isset($_SESSION['extensions_need_update']['languages'][$language_id]) 83 and $languages->language_version_compare($fs_language['version'], $_SESSION['extensions_need_update']['languages'][$language_id])) 84 { 85 // language have been updated 86 autoupdate_check_languages_upgrade($languages); 87 } 88 } 89 } 90 } 91 92 if (!empty($_SESSION['extensions_need_update'])) 93 { 94 echo 'ext_upgrade'; exit; 41 $autoupdate->check_updated_extensions(); 95 42 } 96 43 } 97 44 98 if ($_SESSION['need_update'] === false and $_SESSION['extensions_need_update'] === array()) 45 if (!empty($_SESSION['extensions_need_update'])) 46 { 47 echo 'ext_upgrade'; exit; 48 } 49 elseif ($_SESSION['need_update'] === false and $_SESSION['extensions_need_update'] === array()) 99 50 { 100 51 echo 'up_to_date'; exit; … … 105 56 } 106 57 107 function autoupdate_check_plugins_upgrade($plugins)108 {109 global $conf;110 111 if (!$plugins->get_server_plugins())112 {113 autoupdate_error();114 }115 116 $plugins_ignore_list = array();117 $need_upgrade = array();118 119 foreach($plugins->fs_plugins as $plugin_id => $fs_plugin)120 {121 if (isset($fs_plugin['extension']) and isset($plugins->server_plugins[$fs_plugin['extension']]))122 {123 $plugin_info = $plugins->server_plugins[$fs_plugin['extension']];124 125 if (!$plugins->plugin_version_compare($fs_plugin['version'], $plugin_info['revision_name']))126 {127 if (in_array($plugin_id, $conf['AU_ignore']['plugins']))128 {129 array_push($plugins_ignore_list, $plugin_id);130 }131 else132 {133 $_SESSION['extensions_need_update']['plugins'][$plugin_id] = $plugin_info['revision_name'];134 }135 }136 }137 }138 139 $conf['AU_ignore']['plugins'] = $plugins_ignore_list;140 conf_update_param('autoupdate_ignore_list', pwg_db_real_escape_string(serialize($conf['AU_ignore'])));141 }142 143 function autoupdate_check_themes_upgrade($themes)144 {145 global $conf;146 147 if (!$themes->get_server_themes())148 {149 autoupdate_error();150 }151 152 $themes_ignore_list = array();153 $need_upgrade = array();154 155 foreach($themes->fs_themes as $theme_id => $fs_theme)156 {157 if (isset($fs_theme['extension']) and isset($themes->server_themes[$fs_theme['extension']]))158 {159 $theme_info = $themes->server_themes[$fs_theme['extension']];160 161 if (!$themes->theme_version_compare($fs_theme['version'], $theme_info['revision_name']))162 {163 if (in_array($theme_id, $conf['AU_ignore']['theme']))164 {165 array_push($themes_ignore_list, $theme_id);166 }167 else168 {169 $_SESSION['extensions_need_update']['themes'][$theme_id] = $theme_info['revision_name'];170 }171 }172 }173 }174 175 $conf['AU_ignore']['themes'] = $themes_ignore_list;176 conf_update_param('autoupdate_ignore_list', pwg_db_real_escape_string(serialize($conf['AU_ignore'])));177 }178 179 function autoupdate_check_languages_upgrade($languages)180 {181 global $conf;182 183 if (!$languages->get_server_languages())184 {185 autoupdate_error();186 }187 188 $languages_ignore_list = array();189 $need_upgrade = array();190 191 foreach($languages->fs_languages as $language_id => $fs_language)192 {193 if (isset($fs_language['extension']) and isset($languages->server_languages[$fs_language['extension']]))194 {195 $language_info = $languages->server_languages[$fs_language['extension']];196 197 if (!$languages->language_version_compare($fs_language['version'], $language_info['revision_name']))198 {199 if (in_array($language_id, $conf['AU_ignore']['languages']))200 {201 array_push($languages_ignore_list, $language_id);202 }203 else204 {205 $_SESSION['extensions_need_update']['languages'][$language_id] = $language_info['revision_name'];206 }207 }208 }209 }210 211 $conf['AU_ignore']['languages'] = $languages_ignore_list;212 conf_update_param('autoupdate_ignore_list', pwg_db_real_escape_string(serialize($conf['AU_ignore'])));213 }214 215 function autoupdate_error()216 {217 $_SESSION['extensions_need_update'] = null;218 219 echo 'error'; exit;220 }221 222 58 ?>
Note: See TracChangeset
for help on using the changeset viewer.