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:
parent
6d00630332
commit
b8a9773caf
5 changed files with 34 additions and 1 deletions
|
@ -117,6 +117,16 @@ INSERT INTO ".THEMES_TABLE."
|
||||||
break;
|
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())
|
if ($theme_id == get_default_theme())
|
||||||
{
|
{
|
||||||
// find a random theme to replace
|
// find a random theme to replace
|
||||||
|
@ -227,6 +237,8 @@ DELETE
|
||||||
|
|
||||||
function set_default_theme($theme_id)
|
function set_default_theme($theme_id)
|
||||||
{
|
{
|
||||||
|
global $conf;
|
||||||
|
|
||||||
// first we need to know which users are using the current default theme
|
// first we need to know which users are using the current default theme
|
||||||
$default_theme = get_default_theme();
|
$default_theme = get_default_theme();
|
||||||
|
|
||||||
|
@ -236,7 +248,12 @@ SELECT
|
||||||
FROM '.USER_INFOS_TABLE.'
|
FROM '.USER_INFOS_TABLE.'
|
||||||
WHERE theme = "'.$default_theme.'"
|
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
|
// $user_ids can't be empty, at least the default user has the default
|
||||||
// theme
|
// theme
|
||||||
|
|
|
@ -13,7 +13,13 @@
|
||||||
<div class="themeName">{$theme.name}{if $theme.is_default} <em>({'default'|@translate})</em>{/if}</div>
|
<div class="themeName">{$theme.name}{if $theme.is_default} <em>({'default'|@translate})</em>{/if}</div>
|
||||||
<div class="themeShot"><img src="{$theme.screenshot}"></div>
|
<div class="themeShot"><img src="{$theme.screenshot}"></div>
|
||||||
<div class="themeActions">
|
<div class="themeActions">
|
||||||
|
|
||||||
|
{if $theme.deactivable}
|
||||||
<a href="{$deactivate_baseurl}{$theme.id}" title="{'Forbid this theme to users'|@translate}">{'Deactivate'|@translate}</a>
|
<a href="{$deactivate_baseurl}{$theme.id}" title="{'Forbid this theme to users'|@translate}">{'Deactivate'|@translate}</a>
|
||||||
|
{else}
|
||||||
|
<span title="{$theme.deactivate_tooltip}">{'Deactivate'|@translate}</span>
|
||||||
|
{/if}
|
||||||
|
|
||||||
{if not $theme.is_default}
|
{if not $theme.is_default}
|
||||||
| <a href="{$set_default_baseurl}{$theme.id}" title="{'Set as default theme for unregistered and new users'|@translate}">{'Default'|@translate}</a>
|
| <a href="{$set_default_baseurl}{$theme.id}" title="{'Set as default theme for unregistered and new users'|@translate}">{'Default'|@translate}</a>
|
||||||
{/if}
|
{/if}
|
||||||
|
|
|
@ -77,6 +77,14 @@ foreach ($themes->fs_themes as $theme_id => $fs_theme)
|
||||||
|
|
||||||
if (in_array($theme_id, $db_theme_ids))
|
if (in_array($theme_id, $db_theme_ids))
|
||||||
{
|
{
|
||||||
|
$fs_theme['deactivable'] = true;
|
||||||
|
|
||||||
|
if (count($db_theme_ids) <= 1)
|
||||||
|
{
|
||||||
|
$fs_theme['deactivable'] = false;
|
||||||
|
$fs_theme['deactivate_tooltip'] = l10n('Impossible to deactivate this theme, you need at least one theme.');
|
||||||
|
}
|
||||||
|
|
||||||
if ($theme_id == $default_theme)
|
if ($theme_id == $default_theme)
|
||||||
{
|
{
|
||||||
$fs_theme['is_default'] = true;
|
$fs_theme['is_default'] = true;
|
||||||
|
|
|
@ -758,4 +758,5 @@ $lang['Language has been successfully installed'] = 'Language has been successfu
|
||||||
$lang['Select:'] = 'Select:';
|
$lang['Select:'] = 'Select:';
|
||||||
$lang['None'] = 'None';
|
$lang['None'] = 'None';
|
||||||
$lang['Invert'] = 'Invert';
|
$lang['Invert'] = 'Invert';
|
||||||
|
$lang['Impossible to deactivate this theme, you need at least one theme.'] = 'Impossible to deactivate this theme, you need at least one theme.';
|
||||||
?>
|
?>
|
||||||
|
|
|
@ -763,4 +763,5 @@ $lang['Allow user customization'] = "Permettre la personnalisation de l'affichag
|
||||||
$lang['Select:'] = 'Sélectionner:';
|
$lang['Select:'] = 'Sélectionner:';
|
||||||
$lang['None'] = 'Rien';
|
$lang['None'] = 'Rien';
|
||||||
$lang['Invert'] = 'Inverser';
|
$lang['Invert'] = 'Inverser';
|
||||||
|
$lang['Impossible to deactivate this theme, you need at least one theme.'] = 'Impossible de désactiver ce thème, il doit rester au moins un thème activé.';
|
||||||
?>
|
?>
|
||||||
|
|
Loading…
Add table
Reference in a new issue