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)}
+
+
+
+ {'Please upgrade your PHP version before any update.'|translate}
+
+
+{/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}
{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)}
{'I decide to update anyway'|@translate}
{/if}
-
+
+{if isset($MAJOR_RELEASE_PHP_REQUIRED)}
+ {'Requires PHP %s'|translate:$MAJOR_RELEASE_PHP_REQUIRED}
+{/if}
{'Update in progress...'|@translate}
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';
+