From 9802ddaa10156ff65e85d37817d51e10b59e902f Mon Sep 17 00:00:00 2001 From: patdenice Date: Wed, 2 Mar 2011 09:33:58 +0000 Subject: Add themes autmatic update functionality. git-svn-id: http://piwigo.org/svn/trunk@9472 68402e56-0260-453c-a942-63ccdbb3a9ee --- admin/themes_update.php | 157 ++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 157 insertions(+) create mode 100644 admin/themes_update.php (limited to 'admin/themes_update.php') diff --git a/admin/themes_update.php b/admin/themes_update.php new file mode 100644 index 000000000..c68068737 --- /dev/null +++ b/admin/themes_update.php @@ -0,0 +1,157 @@ +set_tabsheet($page['page']); + +//-----------------------------------------------------------automatic upgrade +if (isset($_GET['theme']) and isset($_GET['revision'])) +{ + if (!is_webmaster()) + { + array_push($page['errors'], l10n('Webmaster status is required.')); + } + else + { + check_pwg_token(); + + $theme_id = $_GET['theme']; + $revision = $_GET['revision']; + + $upgrade_status = $themes->extract_theme_files('upgrade', $revision, $theme_id); + + switch ($upgrade_status) + { + case 'ok': + array_push($page['infos'], + sprintf( + l10n('%s has been successfully upgraded.'), + $themes->fs_themes[$_GET['theme']]['name'])); + break; + + case 'temp_path_error': + array_push($page['errors'], l10n('Can\'t create temporary file.')); + break; + + case 'dl_archive_error': + array_push($page['errors'], l10n('Can\'t download archive.')); + break; + + case 'archive_error': + array_push($page['errors'], l10n('Can\'t read or extract archive.')); + break; + + default: + array_push($page['errors'], + sprintf(l10n('An error occured during extraction (%s).'), $_GET['upgradestatus']) + ); + } + + $themes->themes(); + $template->delete_compiled_templates(); + } +} + +// +-----------------------------------------------------------------------+ +// | start template output | +// +-----------------------------------------------------------------------+ +$template->set_filenames(array('themes' => 'themes_update.tpl')); + +if ($themes->get_server_themes()) +{ + 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']]; + + list($date, ) = explode(' ', $theme_info['revision_date']); + + $ext_desc = ''.l10n('Downloads').': '.$theme_info['extension_nb_downloads']."\r\n" + ."\r\n" + .$theme_info['extension_description']; + + $rev_desc = ''.l10n('Version').': '.$theme_info['revision_name']."\r\n" + .''.l10n('Released on').': '.$date."\r\n" + .''.l10n('Downloads').': '.$theme_info['revision_nb_downloads']."\r\n" + ."\r\n" + .$theme_info['revision_description']; + + if ($themes->theme_version_compare($fs_theme['version'], $theme_info['revision_name'])) + { + // Plugin is up to date + $template->append('themes_uptodate', array( + 'URL' => PEM_URL.'/extension_view.php?eid='.$theme_info['extension_id'], + 'NAME' => $fs_theme['name'], + 'EXT_DESC' => $ext_desc, + 'VERSION' => $fs_theme['version'], + 'VER_DESC' => $rev_desc)); + } + else + { + // Plugin need upgrade + $url_auto_update = $base_url + . '&revision=' . $theme_info['revision_id'] + . '&theme=' . $theme_id + . '&pwg_token='.get_pwg_token() + ; + + $template->append('themes_not_uptodate', array( + 'EXT_NAME' => $fs_theme['name'], + 'EXT_URL' => PEM_URL.'/extension_view.php?eid='.$theme_info['extension_id'], + 'EXT_DESC' => $ext_desc, + 'VERSION' => $fs_theme['version'], + 'NEW_VERSION' => $theme_info['revision_name'], + 'NEW_VER_DESC' => $rev_desc, + 'URL_UPDATE' => $url_auto_update, + 'URL_DOWNLOAD' => $theme_info['download_url'] . '&origin=piwigo_download')); + } + } + else + { + // Can't check theme + $template->append('themes_cant_check', array( + 'NAME' => $fs_theme['name'], + 'VERSION' => $fs_theme['version'])); + } + } +} +else +{ + array_push($page['errors'], l10n('Can\'t connect to server.')); +} + +$template->assign_var_from_handle('ADMIN_CONTENT', 'themes'); +?> \ No newline at end of file -- cgit v1.2.3