mirror of
https://github.com/Piwigo/Piwigo.git
synced 2026-08-08 09:43:01 +02:00
ture 1514: improvement, impossible to activate a theme is a parent is missing
(a parent includes grand father and his own father, and his own father, and so on... until the root theme is "default" or has no parent declared) git-svn-id: http://piwigo.org/svn/trunk@5259 68402e56-0260-453c-a942-63ccdbb3a9ee
This commit is contained in:
@@ -80,6 +80,20 @@ class themes
|
||||
// the theme is already active
|
||||
break;
|
||||
}
|
||||
|
||||
$missing_parent = $this->missing_parent_theme($theme_id);
|
||||
if (isset($missing_parent))
|
||||
{
|
||||
array_push(
|
||||
$errors,
|
||||
sprintf(
|
||||
l10n('Impossible to activate this theme, the parent theme is missing: %s'),
|
||||
$missing_parent
|
||||
)
|
||||
);
|
||||
|
||||
break;
|
||||
}
|
||||
|
||||
$query = "
|
||||
INSERT INTO ".THEMES_TABLE."
|
||||
@@ -168,6 +182,28 @@ DELETE
|
||||
return $errors;
|
||||
}
|
||||
|
||||
function missing_parent_theme($theme_id)
|
||||
{
|
||||
if (!isset($this->fs_themes[$theme_id]['parent']))
|
||||
{
|
||||
return null;
|
||||
}
|
||||
|
||||
$parent = $this->fs_themes[$theme_id]['parent'];
|
||||
|
||||
if ('default' == $parent)
|
||||
{
|
||||
return null;
|
||||
}
|
||||
|
||||
if (!isset($this->fs_themes[$parent]))
|
||||
{
|
||||
return $parent;
|
||||
}
|
||||
|
||||
return $this->missing_parent_theme($parent);
|
||||
}
|
||||
|
||||
function get_children_themes($theme_id)
|
||||
{
|
||||
$children = array();
|
||||
|
||||
@@ -33,13 +33,21 @@
|
||||
<div class="themeName">{$theme.name}</div>
|
||||
<div class="themeShot"><img src="{$theme.screenshot}"></div>
|
||||
<div class="themeActions">
|
||||
|
||||
{if $theme.activable}
|
||||
<a href="{$activate_baseurl}{$theme.id}" title="{'Make this theme available to users'|@translate}">{'Activate'|@translate}</a>
|
||||
{else}
|
||||
<span title="{$theme.activate_tooltip}">{'Activate'|@translate}</span>
|
||||
{/if}
|
||||
|
||||
|
|
||||
|
||||
{if $theme.deletable}
|
||||
<a href="{$delete_baseurl}{$theme.id}" onclick="return confirm('{'Are you sure?'|@translate|@escape:javascript}');" title="{'Delete this theme'|@translate}">{'Delete'|@translate}</a>
|
||||
{else}
|
||||
<span title="{$theme.delete_tooltip}">{'Delete'|@translate}</span>
|
||||
{/if}
|
||||
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
@@ -89,7 +89,24 @@ foreach ($themes->fs_themes as $theme_id => $fs_theme)
|
||||
}
|
||||
else
|
||||
{
|
||||
// is the theme "activable" ?
|
||||
$fs_theme['activable'] = true;
|
||||
|
||||
$missing_parent = $themes->missing_parent_theme($theme_id);
|
||||
if (isset($missing_parent))
|
||||
{
|
||||
$fs_theme['activable'] = false;
|
||||
|
||||
$fs_theme['activate_tooltip'] = sprintf(
|
||||
l10n('Impossible to activate this theme, the parent theme is missing: %s'),
|
||||
$missing_parent
|
||||
);
|
||||
}
|
||||
|
||||
// is the theme "deletable" ?
|
||||
$children = $themes->get_children_themes($theme_id);
|
||||
|
||||
$fs_theme['deletable'] = true;
|
||||
|
||||
if (count($children) > 0)
|
||||
{
|
||||
@@ -100,10 +117,6 @@ foreach ($themes->fs_themes as $theme_id => $fs_theme)
|
||||
implode(', ', $children)
|
||||
);
|
||||
}
|
||||
else
|
||||
{
|
||||
$fs_theme['deletable'] = true;
|
||||
}
|
||||
|
||||
array_push($inactive_themes, $fs_theme);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user