feature 1514: make the "deactivate" action inactive if there is no active

theme left.

bug fixed: when setting the default theme, make sure at least one user will
be updated.

git-svn-id: http://piwigo.org/svn/trunk@5382 68402e56-0260-453c-a942-63ccdbb3a9ee
This commit is contained in:
plegall
2010-03-26 14:16:54 +00:00
parent 6d00630332
commit b8a9773caf
5 changed files with 34 additions and 1 deletions
+18 -1
View File
@@ -117,6 +117,16 @@ INSERT INTO ".THEMES_TABLE."
break;
}
// you can't deactivate the last theme
if (count($this->db_themes_by_id) <= 1)
{
array_push(
$errors,
l10n('Impossible to deactivate this theme, you need at least one theme.')
);
break;
}
if ($theme_id == get_default_theme())
{
// find a random theme to replace
@@ -227,6 +237,8 @@ DELETE
function set_default_theme($theme_id)
{
global $conf;
// first we need to know which users are using the current default theme
$default_theme = get_default_theme();
@@ -236,7 +248,12 @@ SELECT
FROM '.USER_INFOS_TABLE.'
WHERE theme = "'.$default_theme.'"
;';
$user_ids = array_from_query($query, 'user_id');
$user_ids = array_unique(
array_merge(
array_from_query($query, 'user_id'),
array($conf['guest_id'], $conf['default_user_id'])
)
);
// $user_ids can't be empty, at least the default user has the default
// theme