diff --git a/admin/include/updates.class.php b/admin/include/updates.class.php index ae2adf6fb..57530e2a7 100644 --- a/admin/include/updates.class.php +++ b/admin/include/updates.class.php @@ -77,6 +77,7 @@ class updates $url = PHPWG_URL.'/download/all_versions.php'; $url.= '?rand='.md5(uniqid(rand(), true)); // Avoid server cache + $url.= '&show_requirements'; if (@fetchRemote($url, $result) and $all_versions = @explode("\n", $result) @@ -84,29 +85,34 @@ class updates { $new_versions['piwigo.org-checked'] = true; $last_version = trim($all_versions[0]); + list($last_version_number, $last_version_php) = explode('/', trim($all_versions[0])); - if (version_compare(PHPWG_VERSION, $last_version, '<')) + if (version_compare(PHPWG_VERSION, $last_version_number, '<')) { - $last_branch = get_branch_from_version($last_version); + $last_branch = get_branch_from_version($last_version_number); if ($last_branch == $actual_branch) { - $new_versions['minor'] = $last_version; + $new_versions['minor'] = $last_version_number; + $new_versions['minor_php'] = $last_version_php; } else { - $new_versions['major'] = $last_version; + $new_versions['major'] = $last_version_number; + $new_versions['major_php'] = $last_version_php; // Check if new version exists in same branch foreach ($all_versions as $version) { - $branch = get_branch_from_version($version); + list($version_number, $version_php) = explode('/', trim($version)); + $branch = get_branch_from_version($version_number); if ($branch == $actual_branch) { - if (version_compare(PHPWG_VERSION, $version, '<')) + if (version_compare(PHPWG_VERSION, $version_number, '<')) { - $new_versions['minor'] = $version; + $new_versions['minor'] = $version_number; + $new_versions['minor_php'] = $version_php; } break; } diff --git a/admin/themes/default/template/updates_pwg.tpl b/admin/themes/default/template/updates_pwg.tpl index 89756f2ac..b62f9b271 100644 --- a/admin/themes/default/template/updates_pwg.tpl +++ b/admin/themes/default/template/updates_pwg.tpl @@ -19,10 +19,44 @@ form { width: 750px; } fieldset { padding-bottom: 30px; } p, form p { text-align: left; margin-left:20px; } li { margin: 5px; } + +.badge-release { + padding:5px 10px; + border-radius: 5px; +} + +a.badge-release:hover { + text-decoration:none; + color: currentColor; +} + +.goto-update-page { + padding:5px 10px; + font-weight:bold; +} + +.goto-update-page:hover { + text-decoration:none; +} + +.update-recommendation { + margin-top:30px; +} + +p.release .errors {margin:0} {/literal} {/html_head} +{if isset($MINOR_RELEASE_PHP_REQUIRED) and isset($MAJOR_RELEASE_PHP_REQUIRED)} +
+ + +
+{/if} +

{'Updates'|@translate}

@@ -38,29 +72,59 @@ li { margin: 5px; } {/if} {if $STEP == 1} -

{'Two updates are available'|@translate}:

-

-

+
+ {'Two updates are available'|@translate} +

+ {$MINOR_VERSION} + {'This is a minor update, with only bug corrections.'|@translate} +{if isset($MINOR_RELEASE_PHP_REQUIRED)} + {'Requires PHP %s'|translate:$MINOR_RELEASE_PHP_REQUIRED} +{else} + {'Update to Piwigo %s'|@translate:$MINOR_VERSION} +{/if}

-

{'You can update to Piwigo %s directly, without upgrading to Piwigo %s (recommended).'|@translate:$MAJOR_VERSION:$MINOR_VERSION}

+ +

+ {$MAJOR_VERSION} + {'This is a major update, with new exciting features.'|translate:$MAJOR_RELEASE_URL} + {'Some themes and plugins may be not available yet.'|translate} +{if isset($MAJOR_RELEASE_PHP_REQUIRED)} + {'Requires PHP %s'|translate:$MAJOR_RELEASE_PHP_REQUIRED} +{else} + {'Update to Piwigo %s'|@translate:$MAJOR_VERSION} +{/if} +

+

+ + {'You can update to Piwigo %s directly, without upgrading to Piwigo %s (recommended).'|@translate:$MAJOR_VERSION:$MINOR_VERSION} +

+
{/if} {if $STEP == 2} +

+ {$MINOR_VERSION} +

{'A new version of Piwigo is available.'|@translate}
{'This is a minor update, with only bug corrections.'|@translate}

-

+

+ +{if isset($MINOR_RELEASE_PHP_REQUIRED)} + {'Requires PHP %s'|translate:$MINOR_RELEASE_PHP_REQUIRED} +{/if} +

{/if} {if $STEP == 3} +

+ {$MAJOR_VERSION} +

{'A new version of Piwigo is available.'|@translate}
{'This is a major update, with new exciting features.'|@translate:$RELEASE_URL} {'Some themes and plugins may be not available yet.'|@translate} @@ -69,7 +133,7 @@ li { margin: 5px; } {counter assign=i}

- {'Backup'|@translate} + {'Backup'|@translate}

{'Always have a backup of your database and files.'|translate} {'The best is to have them made automatically on a regular basis.'|translate} @@ -79,7 +143,7 @@ li { margin: 5px; } {counter assign=i}

- {'Update to Piwigo %s'|@translate:$UPGRADE_TO} + {'Update to Piwigo %s'|@translate:$UPGRADE_TO} {if !empty($missing.plugins)}

{'Following plugins may not be compatible with the new version of Piwigo:'|@translate}


@@ -92,7 +156,10 @@ li { margin: 5px; } {if !empty($missing.plugins) or !empty($missing.themes)}

{/if} -

+

+{if isset($MAJOR_RELEASE_PHP_REQUIRED)} + {'Requires PHP %s'|translate:$MAJOR_RELEASE_PHP_REQUIRED} +{/if}

diff --git a/admin/updates_pwg.php b/admin/updates_pwg.php index e6e5267fe..247d6020b 100644 --- a/admin/updates_pwg.php +++ b/admin/updates_pwg.php @@ -27,25 +27,17 @@ check_input_parameter('to', $_GET, false, '/^\d+\.\d+\.\d+$/'); $upgrade_to = isset($_GET['to']) ? $_GET['to'] : ''; $updates = new updates(); +$new_versions = $updates->get_piwigo_new_versions(); // +-----------------------------------------------------------------------+ // | Step 0 | // +-----------------------------------------------------------------------+ if ($step == 0) { - $new_versions = $updates->get_piwigo_new_versions(); - if (isset($new_versions['minor']) and isset($new_versions['major'])) { $step = 1; $upgrade_to = $new_versions['major']; - - $template->assign( - array( - 'MINOR_VERSION' => $new_versions['minor'], - 'MAJOR_VERSION' => $new_versions['major'], - ) - ); } elseif (isset($new_versions['minor'])) { @@ -96,6 +88,20 @@ if ($step == 3 and is_webmaster()) $template->assign('missing', $updates->missing); } +// +-----------------------------------------------------------------------+ +// | Check for requirements | +// +-----------------------------------------------------------------------+ + +if (isset($new_versions['minor_php']) and version_compare(phpversion(), $new_versions['minor_php'], '<')) +{ + $template->assign('MINOR_RELEASE_PHP_REQUIRED', $new_versions['minor_php']); +} + +if (isset($new_versions['major_php']) and version_compare(phpversion(), $new_versions['major_php'], '<')) +{ + $template->assign('MAJOR_RELEASE_PHP_REQUIRED', $new_versions['major_php']); +} + // +-----------------------------------------------------------------------+ // | Process template | // +-----------------------------------------------------------------------+ @@ -109,10 +115,29 @@ $template->assign(array( 'STEP' => $step, 'PHPWG_VERSION' => PHPWG_VERSION, 'UPGRADE_TO' => $upgrade_to, - 'RELEASE_URL' => PHPWG_URL.'/releases/'.$upgrade_to, ) ); +if (isset($new_versions['minor'])) +{ + $template->assign( + array( + 'MINOR_VERSION' => $new_versions['minor'], + 'MINOR_RELEASE_URL' => PHPWG_URL.'/releases/'.$new_versions['minor'], + ) + ); +} + +if (isset($new_versions['major'])) +{ + $template->assign( + array( + 'MAJOR_VERSION' => $new_versions['major'], + 'MAJOR_RELEASE_URL' => PHPWG_URL.'/releases/'.$new_versions['major'], + ) + ); +} + $template->set_filename('plugin_admin_content', 'updates_pwg.tpl'); $template->assign_var_from_handle('ADMIN_CONTENT', 'plugin_admin_content'); diff --git a/language/en_UK/admin.lang.php b/language/en_UK/admin.lang.php index f77a31a23..072eeae82 100644 --- a/language/en_UK/admin.lang.php +++ b/language/en_UK/admin.lang.php @@ -1072,3 +1072,5 @@ $lang['Are you sure you want to delete the language "%s"?'] = 'Are you sure you $lang['Are you sure you want to delete the theme "%s"?'] = 'Are you sure you want to delete the theme "%s"?'; $lang['Are you sure you want to update all extensions?'] = 'Are you sure you want to update all extensions?'; $lang['Are you sure you want to delete the user "%s"?'] = 'Are you sure you want to delete the user "%s"?'; +$lang['Please upgrade your PHP version before any update.'] = 'Please upgrade your PHP version before any update.'; +$lang['Requires PHP %s'] = 'Requires PHP %s'; diff --git a/language/fr_FR/admin.lang.php b/language/fr_FR/admin.lang.php index e2a7de64b..6c02d9326 100644 --- a/language/fr_FR/admin.lang.php +++ b/language/fr_FR/admin.lang.php @@ -1074,3 +1074,6 @@ $lang['Are you sure you want to delete the language "%s"?'] = 'Êtes-vous sûr d $lang['Are you sure you want to delete the theme "%s"?'] = 'Êtes-vous sûr de vouloir supprimer le thème "%s" ?'; $lang['Are you sure you want to update all extensions?'] = 'Êtes-vous sûr de vouloir mettre à jour toutes les extensions ?'; $lang['Are you sure you want to delete the user "%s"?'] = 'Êtes-vous sûr de vouloir supprimer l\'utilisateur "%s" ?'; +$lang['Please upgrade your PHP version before any update.'] = 'Il faudra mettre à jour votre PHP avant de pouvoir mettre à jour Piwigo.'; +$lang['Requires PHP %s'] = 'Requiert PHP %s'; +