source: trunk/admin/themes_installed.php @ 5642

Last change on this file since 5642 was 5642, checked in by grum, 15 years ago

initialize the 'is_default' key to false when the item (theme, language) is not the default item

File size: 4.8 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    $fs_theme['deactivable'] = true;
81
82    if (count($db_theme_ids) <= 1)
83    {
84      $fs_theme['deactivable'] = false;
85      $fs_theme['deactivate_tooltip'] = l10n('Impossible to deactivate this theme, you need at least one theme.');
86    }
87
88    if ($theme_id == $default_theme)
89    {
90      $fs_theme['is_default'] = true;
91      array_unshift($active_themes, $fs_theme);
92    }
93    else
94    {
95      $fs_theme['is_default'] = false;
96      array_push($active_themes, $fs_theme);
97    }
98  }
99  else
100  {
101    // is the theme "activable" ?
102    $fs_theme['activable'] = true;
103
104    $missing_parent = $themes->missing_parent_theme($theme_id);
105    if (isset($missing_parent))
106    {
107      $fs_theme['activable'] = false;
108
109      $fs_theme['activate_tooltip'] = sprintf(
110        l10n('Impossible to activate this theme, the parent theme is missing: %s'),
111        $missing_parent
112        );
113    }
114
115    // is the theme "deletable" ?
116    $children = $themes->get_children_themes($theme_id);
117
118    $fs_theme['deletable'] = true;
119
120    if (count($children) > 0)
121    {
122      $fs_theme['deletable'] = false;
123
124      $fs_theme['delete_tooltip'] = sprintf(
125        l10n('Impossible to delete this theme. Other themes depends on it: %s'),
126        implode(', ', $children)
127        );
128    }
129
130    array_push($inactive_themes, $fs_theme);
131  }
132}
133
134$template->assign(
135    array(
136      'activate_baseurl' => $base_url.'&action=activate&theme=',
137      'deactivate_baseurl' => $base_url.'&action=deactivate&theme=',
138      'set_default_baseurl' => $base_url.'&action=set_default&theme=',
139      'delete_baseurl' => $base_url.'&action=delete&theme=',
140
141      'active_themes' => $active_themes,
142      'inactive_themes' => $inactive_themes,
143    )
144  );
145
146
147$themes->set_tabsheet($page['page']);
148$template->set_filenames(array('themes' => 'themes_installed.tpl'));
149$template->assign_var_from_handle('ADMIN_CONTENT', 'themes');
150?>
Note: See TracBrowser for help on using the repository browser.