fs_plugins as $plugin_id => $fs_plugin) { if (isset($_SESSION['extensions_need_update']['plugins'][$plugin_id]) and $plugins->plugin_version_compare($fs_plugin['version'], $_SESSION['extensions_need_update']['plugins'][$plugin_id])) { // Plugin have been updated autoupdate_check_plugins_upgrade($plugins); } } } if (!empty($_SESSION['extensions_need_update']['themes'])) { // Check if themes have been upgraded since last check foreach($themes->fs_themes as $theme_id => $fs_theme) { if (isset($_SESSION['extensions_need_update']['themes'][$theme_id]) and $themes->theme_version_compare($fs_theme['version'], $_SESSION['extensions_need_update']['themes'][$theme_id])) { // theme have been updated autoupdate_check_themes_upgrade($themes); } } } if (!empty($_SESSION['extensions_need_update']['languages'])) { // Check if languages have been upgraded since last check foreach($languages->fs_languages as $language_id => $fs_language) { if (isset($_SESSION['extensions_need_update']['languages'][$language_id]) and $languages->language_version_compare($fs_language['version'], $_SESSION['extensions_need_update']['languages'][$language_id])) { // language have been updated autoupdate_check_languages_upgrade($languages); } } } } if (!empty($_SESSION['extensions_need_update'])) { echo 'ext_upgrade'; exit; } } if ($_SESSION['need_update'] === false and $_SESSION['extensions_need_update'] === array()) { echo 'up_to_date'; exit; } else { autoupdate_error(); } function autoupdate_check_plugins_upgrade($plugins) { global $conf; if (!$plugins->get_server_plugins()) { autoupdate_error(); } $plugins_ignore_list = array(); $need_upgrade = array(); foreach($plugins->fs_plugins as $plugin_id => $fs_plugin) { if (isset($fs_plugin['extension']) and isset($plugins->server_plugins[$fs_plugin['extension']])) { $plugin_info = $plugins->server_plugins[$fs_plugin['extension']]; if (!$plugins->plugin_version_compare($fs_plugin['version'], $plugin_info['revision_name'])) { if (in_array($plugin_id, $conf['AU_ignore']['plugins'])) { array_push($plugins_ignore_list, $plugin_id); } else { $_SESSION['extensions_need_update']['plugins'][$plugin_id] = $plugin_info['revision_name']; } } } } $conf['AU_ignore']['plugins'] = $plugins_ignore_list; conf_update_param('autoupdate_ignore_list', pwg_db_real_escape_string(serialize($conf['AU_ignore']))); } function autoupdate_check_themes_upgrade($themes) { global $conf; if (!$themes->get_server_themes()) { autoupdate_error(); } $themes_ignore_list = array(); $need_upgrade = array(); foreach($themes->fs_themes as $theme_id => $fs_theme) { if (isset($fs_theme['extension']) and isset($themes->server_themes[$fs_theme['extension']])) { $theme_info = $themes->server_themes[$fs_theme['extension']]; if (!$themes->theme_version_compare($fs_theme['version'], $theme_info['revision_name'])) { if (in_array($theme_id, $conf['AU_ignore']['theme'])) { array_push($themes_ignore_list, $theme_id); } else { $_SESSION['extensions_need_update']['themes'][$theme_id] = $theme_info['revision_name']; } } } } $conf['AU_ignore']['themes'] = $themes_ignore_list; conf_update_param('autoupdate_ignore_list', pwg_db_real_escape_string(serialize($conf['AU_ignore']))); } function autoupdate_check_languages_upgrade($languages) { global $conf; if (!$languages->get_server_languages()) { autoupdate_error(); } $languages_ignore_list = array(); $need_upgrade = array(); foreach($languages->fs_languages as $language_id => $fs_language) { if (isset($fs_language['extension']) and isset($languages->server_languages[$fs_language['extension']])) { $language_info = $languages->server_languages[$fs_language['extension']]; if (!$languages->language_version_compare($fs_language['version'], $language_info['revision_name'])) { if (in_array($language_id, $conf['AU_ignore']['languages'])) { array_push($languages_ignore_list, $language_id); } else { $_SESSION['extensions_need_update']['languages'][$language_id] = $language_info['revision_name']; } } } } $conf['AU_ignore']['languages'] = $languages_ignore_list; conf_update_param('autoupdate_ignore_list', pwg_db_real_escape_string(serialize($conf['AU_ignore']))); } function autoupdate_error() { $_SESSION['extensions_need_update'] = null; echo 'error'; exit; } ?>