Changeset 9729
- Timestamp:
- Mar 16, 2011, 7:27:11 PM (14 years ago)
- Location:
- extensions/autoupdate/trunk
- Files:
-
- 1 added
- 3 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 ?> -
extensions/autoupdate/trunk/template/update_ext.tpl
r9723 r9729 46 46 <legend>{'Plugins which need upgrade'|@translate}</legend> 47 47 {foreach from=$update_plugins item=plugin name=plugins_loop} 48 <div class="pluginBox" id="plugin_{$plugin. PLUGIN_ID}" {if $plugin.IGNORED}style="display:none;"{/if}>48 <div class="pluginBox" id="plugin_{$plugin.EXT_ID}" {if $plugin.IGNORED}style="display:none;"{/if}> 49 49 <table> 50 50 <tr> … … 53 53 </td> 54 54 <td> 55 <a href="#" onClick="upgradeExtension('plugin', '{$plugin. PLUGIN_ID}', {$plugin.REVISION_ID});" class="updateExtension">{'Install'|@translate}</a>55 <a href="#" onClick="upgradeExtension('plugin', '{$plugin.EXT_ID}', {$plugin.REVISION_ID});" class="updateExtension">{'Install'|@translate}</a> 56 56 | <a href="{$plugin.URL_DOWNLOAD}">{'Download'|@translate}</a> 57 | <a href="#" onClick="ignoreExtension('plugin', '{$plugin. PLUGIN_ID}');">{'autoupdate_ignore'|@translate}</a>57 | <a href="#" onClick="ignoreExtension('plugin', '{$plugin.EXT_ID}');">{'autoupdate_ignore'|@translate}</a> 58 58 </td> 59 59 </tr> … … 88 88 <legend>{'Themes which need upgrade'|@translate}</legend> 89 89 {foreach from=$update_themes item=theme name=themes_loop} 90 <div class="pluginBox" id="theme_{$theme. THEME_ID}" {if $theme.IGNORED}style="display:none;"{/if}>90 <div class="pluginBox" id="theme_{$theme.EXT_ID}" {if $theme.IGNORED}style="display:none;"{/if}> 91 91 <table> 92 92 <tr> … … 95 95 </td> 96 96 <td> 97 <a href="#" onClick="upgradeExtension('theme', '{$theme. THEME_ID}', {$theme.REVISION_ID});" class="updateExtension">{'Install'|@translate}</a>97 <a href="#" onClick="upgradeExtension('theme', '{$theme.EXT_ID}', {$theme.REVISION_ID});" class="updateExtension">{'Install'|@translate}</a> 98 98 | <a href="{$theme.URL_DOWNLOAD}">{'Download'|@translate}</a> 99 | <a href="#" onClick="ignoreExtension('theme', '{$theme. THEME_ID}');">{'autoupdate_ignore'|@translate}</a>99 | <a href="#" onClick="ignoreExtension('theme', '{$theme.EXT_ID}');">{'autoupdate_ignore'|@translate}</a> 100 100 </td> 101 101 </tr> … … 130 130 <legend>{'Languages which need upgrade'|@translate}</legend> 131 131 {foreach from=$update_languages item=language name=languages_loop} 132 <div class="pluginBox" id="language_{$language. LANGUAGE_ID}" {if $language.IGNORED}style="display:none;"{/if}>132 <div class="pluginBox" id="language_{$language.EXT_ID}" {if $language.IGNORED}style="display:none;"{/if}> 133 133 <table> 134 134 <tr> … … 137 137 </td> 138 138 <td> 139 <a href="#" onClick="upgradeExtension('language', '{$language. LANGUAGE_ID}', {$language.REVISION_ID});" class="updateExtension">{'Install'|@translate}</a>139 <a href="#" onClick="upgradeExtension('language', '{$language.EXT_ID}', {$language.REVISION_ID});" class="updateExtension">{'Install'|@translate}</a> 140 140 | <a href="{$language.URL_DOWNLOAD}">{'Download'|@translate}</a> 141 | <a href="#" onClick="ignoreExtension('language', '{$language. LANGUAGE_ID}');">{'autoupdate_ignore'|@translate}</a>141 | <a href="#" onClick="ignoreExtension('language', '{$language.EXT_ID}');">{'autoupdate_ignore'|@translate}</a> 142 142 </td> 143 143 </tr> -
extensions/autoupdate/trunk/update_ext.inc.php
r9723 r9729 3 3 if (!defined('PHPWG_ROOT_PATH')) die('Hacking attempt!'); 4 4 5 // Plugins 6 include_once(PHPWG_ROOT_PATH.'admin/include/plugins.class.php'); 7 $plugins = new plugins(); 8 $update_plugins = array(); 9 if ($plugins->get_server_plugins()) 5 include_once(AUTOUPDATE_PATH.'include/autoupdate.class.php'); 6 $autoupdate = new autoupdate(); 7 8 if (!$autoupdate->get_server_extensions()) 10 9 { 11 foreach($plugins->fs_plugins as $plugin_id => $fs_plugin) 10 array_push($page['errors'], l10n('Can\'t connect to server.')); 11 return; 12 } 13 14 foreach ($autoupdate->types as $type) 15 { 16 $fs = 'fs_'.$type; 17 $server = 'server_'.$type; 18 $server_ext = $autoupdate->$type->$server; 19 $fs_ext = $autoupdate->$type->$fs; 20 21 if (!empty($server_ext)) 12 22 { 13 if (isset($fs_plugin['extension']) 14 and isset($plugins->server_plugins[$fs_plugin['extension']])) 23 foreach($fs_ext as $ext_id => $fs_ext) 15 24 { 16 $plugin_info = $plugins->server_plugins[$fs_plugin['extension']]; 25 if (isset($fs_ext['extension']) and isset($server_ext[$fs_ext['extension']])) 26 { 27 $ext_info = $server_ext[$fs_ext['extension']]; 17 28 18 if (!$plugins->plugin_version_compare($fs_plugin['version'], $plugin_info['revision_name'])) 19 { 20 $update_plugins[] = array( 21 'ID' => $plugin_info['extension_id'], 22 'PLUGIN_ID' => $plugin_id, 23 'REVISION_ID' => $plugin_info['revision_id'], 24 'EXT_NAME' => $fs_plugin['name'], 25 'EXT_URL' => PEM_URL.'/extension_view.php?eid='.$plugin_info['extension_id'], 26 'EXT_DESC' => trim($plugin_info['extension_description'], " \n\r"), 27 'REV_DESC' => trim($plugin_info['revision_description'], " \n\r"), 28 'CURRENT_VERSION' => $fs_plugin['version'], 29 'NEW_VERSION' => $plugin_info['revision_name'], 30 'AUTHOR' => $plugin_info['author_name'], 31 'DOWNLOADS' => $plugin_info['extension_nb_downloads'], 32 'URL_DOWNLOAD' => $plugin_info['download_url'] . '&origin=piwigo_download', 33 'IGNORED' => in_array($plugin_id, $conf['AU_ignore']['plugins']), 34 ); 29 if (!$autoupdate->version_compare($fs_ext['version'], $ext_info['revision_name'], $type)) 30 { 31 $template->append('update_'.$type, array( 32 'ID' => $ext_info['extension_id'], 33 'REVISION_ID' => $ext_info['revision_id'], 34 'EXT_ID' => $ext_id, 35 'EXT_NAME' => $fs_ext['name'], 36 'EXT_URL' => PEM_URL.'/extension_view.php?eid='.$ext_info['extension_id'], 37 'EXT_DESC' => trim($ext_info['extension_description'], " \n\r"), 38 'REV_DESC' => trim($ext_info['revision_description'], " \n\r"), 39 'CURRENT_VERSION' => $fs_ext['version'], 40 'NEW_VERSION' => $ext_info['revision_name'], 41 'AUTHOR' => $ext_info['author_name'], 42 'DOWNLOADS' => $ext_info['extension_nb_downloads'], 43 'URL_DOWNLOAD' => $ext_info['download_url'] . '&origin=piwigo_download', 44 'IGNORED' => in_array($ext_id, $conf['AU_ignore']['plugins']), 45 ) 46 ); 47 } 35 48 } 36 49 } … … 38 51 } 39 52 40 // Themes41 include_once(PHPWG_ROOT_PATH.'admin/include/themes.class.php');42 $themes = new themes();43 $update_themes = array();44 if ($themes->get_server_themes())45 {46 foreach($themes->fs_themes as $theme_id => $fs_theme)47 {48 if (isset($fs_theme['extension'])49 and isset($themes->server_themes[$fs_theme['extension']]))50 {51 $theme_info = $themes->server_themes[$fs_theme['extension']];52 53 if (!$themes->theme_version_compare($fs_theme['version'], $theme_info['revision_name']))54 {55 $update_themes[] = array(56 'ID' => $theme_info['extension_id'],57 'THEME_ID' => $theme_id,58 'REVISION_ID' => $theme_info['revision_id'],59 'EXT_NAME' => $fs_theme['name'],60 'EXT_URL' => PEM_URL.'/extension_view.php?eid='.$theme_info['extension_id'],61 'EXT_DESC' => trim($theme_info['extension_description'], " \n\r"),62 'REV_DESC' => trim($theme_info['revision_description'], " \n\r"),63 'CURRENT_VERSION' => $fs_theme['version'],64 'NEW_VERSION' => $theme_info['revision_name'],65 'AUTHOR' => $theme_info['author_name'],66 'DOWNLOADS' => $theme_info['extension_nb_downloads'],67 'URL_DOWNLOAD' => $theme_info['download_url'] . '&origin=piwigo_download',68 'IGNORED' => in_array($theme_id, $conf['AU_ignore']['themes']),69 );70 }71 }72 }73 }74 75 // Languages76 include_once(PHPWG_ROOT_PATH.'admin/include/languages.class.php');77 $languages = new languages();78 $update_languages = array();79 if ($languages->get_server_languages())80 {81 foreach($languages->fs_languages as $language_id => $fs_language)82 {83 if (isset($fs_language['extension'])84 and isset($languages->server_languages[$fs_language['extension']]))85 {86 $language_info = $languages->server_languages[$fs_language['extension']];87 88 if (!$languages->language_version_compare($fs_language['version'], $language_info['revision_name']))89 {90 $update_languages[] = array(91 'ID' => $language_info['extension_id'],92 'LANGUAGE_ID' => $language_id,93 'REVISION_ID' => $language_info['revision_id'],94 'EXT_NAME' => $fs_language['name'],95 'EXT_URL' => PEM_URL.'/extension_view.php?eid='.$language_info['extension_id'],96 'EXT_DESC' => trim($language_info['extension_description'], " \n\r"),97 'REV_DESC' => trim($language_info['revision_description'], " \n\r"),98 'CURRENT_VERSION' => $fs_language['version'],99 'NEW_VERSION' => $language_info['revision_name'],100 'AUTHOR' => $language_info['author_name'],101 'DOWNLOADS' => $language_info['extension_nb_downloads'],102 'URL_DOWNLOAD' => $language_info['download_url'] . '&origin=piwigo_download',103 'IGNORED' => in_array($language_id, $conf['AU_ignore']['languages']),104 );105 }106 }107 }108 }109 110 $template->assign('update_plugins', $update_plugins);111 $template->assign('update_themes', $update_themes);112 $template->assign('update_languages', $update_languages);113 53 $template->assign('SHOW_RESET', (!empty($conf['AU_ignore']['plugins']) or !empty($conf['AU_ignore']['themes']) or !empty($conf['AU_ignore']['languages']))); 114 54 $template->assign('PWG_TOKEN', get_pwg_token());
Note: See TracChangeset
for help on using the changeset viewer.