feature 1514: improvement, impossible to delete a theme that is required

by another installed theme.

git-svn-id: http://piwigo.org/svn/trunk@5258 68402e56-0260-453c-a942-63ccdbb3a9ee
This commit is contained in:
plegall 2010-03-22 14:11:10 +00:00
commit 15499d5dc1
4 changed files with 62 additions and 5 deletions

View file

@ -140,6 +140,19 @@ DELETE
// nothing to do here
break;
}
$children = $this->get_children_themes($theme_id);
if (count($children) > 0)
{
array_push(
$errors,
sprintf(
l10n('Impossible to delete this theme. Other themes depends on it: %s'),
implode(', ', $children)
)
);
break;
}
if (!$this->deltree(PHPWG_THEMES_PATH.$theme_id))
{
@ -155,6 +168,21 @@ DELETE
return $errors;
}
function get_children_themes($theme_id)
{
$children = array();
foreach ($this->fs_themes as $test_child)
{
if (isset($test_child['parent']) and $test_child['parent'] == $theme_id)
{
array_push($children, $test_child['name']);
}
}
return $children;
}
function set_default_theme($theme_id)
{
// first we need to know which users are using the current default theme
@ -267,6 +295,10 @@ SELECT
list( , $extension) = explode('extension_view.php?eid=', $theme['uri']);
if (is_numeric($extension)) $theme['extension'] = $extension;
}
if (preg_match('/["\']parent["\'][^"\']+["\']([^"\']+)["\']/', $theme_data, $val))
{
$theme['parent'] = $val[1];
}
// screenshot
$screenshot_path = $path.'/screenshot.png';