source: trunk/admin/themes_installed.php @ 5258

Last change on this file since 5258 was 5258, checked in by plg, 14 years ago

feature 1514: improvement, impossible to delete a theme that is required
by another installed theme.

File size: 4.2 KB
Line 
1<?php
2// +-----------------------------------------------------------------------+
3// | Piwigo - a PHP based picture gallery                                  |
4// +-----------------------------------------------------------------------+
5// | Copyright(C) 2008-2010 Piwigo Team                  http://piwigo.org |
6// | Copyright(C) 2003-2008 PhpWebGallery Team    http://phpwebgallery.net |
7// | Copyright(C) 2002-2003 Pierrick LE GALL   http://le-gall.net/pierrick |
8// +-----------------------------------------------------------------------+
9// | This program is free software; you can redistribute it and/or modify  |
10// | it under the terms of the GNU General Public License as published by  |
11// | the Free Software Foundation                                          |
12// |                                                                       |
13// | This program is distributed in the hope that it will be useful, but   |
14// | WITHOUT ANY WARRANTY; without even the implied warranty of            |
15// | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU      |
16// | General Public License for more details.                              |
17// |                                                                       |
18// | You should have received a copy of the GNU General Public License     |
19// | along with this program; if not, write to the Free Software           |
20// | Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, |
21// | USA.                                                                  |
22// +-----------------------------------------------------------------------+
23
24if( !defined("PHPWG_ROOT_PATH") )
25{
26  die ("Hacking attempt!");
27}
28
29include_once(PHPWG_ROOT_PATH.'admin/include/themes.class.php');
30
31$base_url = get_root_url().'admin.php?page='.$page['page'];
32
33$themes = new themes();
34
35// +-----------------------------------------------------------------------+
36// |                          perform actions                              |
37// +-----------------------------------------------------------------------+
38
39if (isset($_GET['action']) and isset($_GET['theme']) and !is_adviser())
40{
41  $page['errors'] = $themes->perform_action($_GET['action'], $_GET['theme']);
42
43  if (empty($page['errors']))
44  {
45    if ($_GET['action'] == 'activate' or $_GET['action'] == 'deactivate')
46    {
47      $template->delete_compiled_templates();
48    }
49    redirect($base_url);
50  }
51}
52
53// +-----------------------------------------------------------------------+
54// |                     start template output                             |
55// +-----------------------------------------------------------------------+
56
57$themes->sort_fs_themes();
58
59$default_theme = get_default_theme();
60
61$db_themes = $themes->get_db_themes();
62$db_theme_ids = array();
63foreach ($db_themes as $db_theme)
64{
65  array_push($db_theme_ids, $db_theme['id']);
66}
67
68$active_themes = array();
69$inactive_themes = array();
70
71foreach ($themes->fs_themes as $theme_id => $fs_theme)
72{
73  if ($theme_id == 'default')
74  {
75    continue;
76  }
77
78  if (in_array($theme_id, $db_theme_ids))
79  {
80    if ($theme_id == $default_theme)
81    {
82      $fs_theme['is_default'] = true;
83      array_unshift($active_themes, $fs_theme);
84    }
85    else
86    {
87      array_push($active_themes, $fs_theme);
88    }
89  }
90  else
91  {
92    $children = $themes->get_children_themes($theme_id);
93   
94    if (count($children) > 0)
95    {
96      $fs_theme['deletable'] = false;
97     
98      $fs_theme['delete_tooltip'] = sprintf(
99        l10n('Impossible to delete this theme. Other themes depends on it: %s'),
100        implode(', ', $children)
101        );
102    }
103    else
104    {
105      $fs_theme['deletable'] = true;
106    }
107   
108    array_push($inactive_themes, $fs_theme);
109  }
110}
111
112$template->assign(
113    array(
114      'activate_baseurl' => $base_url.'&action=activate&theme=',
115      'deactivate_baseurl' => $base_url.'&action=deactivate&theme=',
116      'set_default_baseurl' => $base_url.'&action=set_default&theme=',
117      'delete_baseurl' => $base_url.'&action=delete&theme=',
118
119      'active_themes' => $active_themes,
120      'inactive_themes' => $inactive_themes,
121    )
122  );
123
124
125$themes->set_tabsheet($page['page']);
126$template->set_filenames(array('themes' => 'themes_installed.tpl'));
127$template->assign_var_from_handle('ADMIN_CONTENT', 'themes');
128?>
Note: See TracBrowser for help on using the repository browser.