source: branches/gettext/admin.php @ 16308

Last change on this file since 16308 was 5143, checked in by plg, 15 years ago

feature 1507: ability to install themes directly from piwigo.org/ext.

The theme manager backend for installation is the plugin manager backend,
because they are very close.

thanks to feature:1502, installing a theme and installing a plugin are very
similare operations. The only differences are the installation directory and
the main file to find in the archive.

This is only the very first step, the "add new theme" screen needs many
improvements, to begin with display style.

File size: 7.5 KB
Line 
1<?php
2// +-----------------------------------------------------------------------+
3// | Piwigo - a PHP based picture gallery                                  |
4// +-----------------------------------------------------------------------+
5// | Copyright(C) 2008-2009 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
24//----------------------------------------------------------- include
25define('PHPWG_ROOT_PATH','./');
26define('IN_ADMIN', true);
27include_once( PHPWG_ROOT_PATH.'include/common.inc.php' );
28
29include_once(PHPWG_ROOT_PATH.'admin/include/functions.php');
30include_once(PHPWG_ROOT_PATH.'admin/include/functions_plugins.inc.php');
31
32// +-----------------------------------------------------------------------+
33// | Check Access and exit when user status is not ok                      |
34// +-----------------------------------------------------------------------+
35check_status(ACCESS_ADMINISTRATOR);
36
37// tags
38if (isset($_GET['fckb_tags']))
39{
40  $query = '
41SELECT
42    id,
43    name
44  FROM '.TAGS_TABLE.'
45;';
46  $result = pwg_query($query);
47  $taglist = array();
48  while ($row = pwg_db_fetch_assoc($result))
49  {
50    array_push(
51      $taglist,
52      array(
53        'caption' => $row['name'],
54        'value' => '~~'.$row['id'].'~~',
55        )
56      );
57  }
58  echo json_encode($taglist);
59  exit();
60}
61
62// theme changer
63if (isset($_GET['change_theme']))
64{
65  $admin_themes = array('roma', 'clear');
66
67  $new_admin_theme = array_pop(
68    array_diff(
69      $admin_themes,
70      array($conf['admin_theme'])
71      )
72    );
73
74  conf_update_param('admin_theme', $new_admin_theme);
75
76  redirect('admin.php');
77}
78
79// +-----------------------------------------------------------------------+
80// |                    synchronize user informations                      |
81// +-----------------------------------------------------------------------+
82
83sync_users();
84
85// +-----------------------------------------------------------------------+
86// |                            variables init                             |
87// +-----------------------------------------------------------------------+
88
89if (isset($_GET['page'])
90    and preg_match('/^[a-z_]*$/', $_GET['page'])
91    and is_file(PHPWG_ROOT_PATH.'admin/'.$_GET['page'].'.php'))
92{
93  $page['page'] = $_GET['page'];
94}
95else
96{
97  $page['page'] = 'intro';
98}
99
100$page['errors'] = array();
101$page['infos']  = array();
102
103$link_start = PHPWG_ROOT_PATH.'admin.php?page=';
104$conf_link = $link_start.'configuration&amp;section=';
105//----------------------------------------------------- template initialization
106$title = l10n('Piwigo Administration'); // for include/page_header.php
107$page['page_banner'] = '<h1>'.l10n('Piwigo Administration').'</h1>';
108$page['body_id'] = 'theAdminPage';
109
110$template->set_filenames(array('admin' => 'admin.tpl'));
111
112$template->assign(
113  array(
114    'USERNAME' => $user['username'],
115    'U_SITE_MANAGER'=> $link_start.'site_manager',
116    'U_HISTORY_STAT'=> $link_start.'stats',
117    'U_FAQ'=> $link_start.'help',
118    'U_SITES'=> $link_start.'remote_site',
119    'U_MAINTENANCE'=> $link_start.'maintenance',
120    'U_NOTIFICATION_BY_MAIL'=> $link_start.'notification_by_mail',
121    'U_ADVANCED_FEATURE'=> $link_start.'advanced_feature',
122    'U_CONFIG_GENERAL'=> $link_start.'configuration',
123    'U_CONFIG_DISPLAY'=> $conf_link.'default',
124    'U_CONFIG_EXTENTS'=> $link_start.'extend_for_templates',
125    'U_CONFIG_MENUBAR'=> $link_start.'menubar',
126    'U_CONFIG_THEMES'=> $link_start.'themes_new',
127    'U_CATEGORIES'=> $link_start.'cat_list',
128    'U_MOVE'=> $link_start.'cat_move',
129    'U_CAT_OPTIONS'=> $link_start.'cat_options',
130    'U_CAT_UPDATE'=> $link_start.'site_update&amp;site=1',
131    'U_WAITING'=> $link_start.'comments',
132    'U_RATING'=> $link_start.'rating',
133    'U_CADDIE'=> $link_start.'element_set&amp;cat=caddie',
134    'U_RECENT_SET'=> $link_start.'element_set&amp;cat=recent',
135    'U_TAGS'=> $link_start.'tags',
136    'U_THUMBNAILS'=> $link_start.'thumbnail',
137    'U_USERS'=> $link_start.'user_list',
138    'U_GROUPS'=> $link_start.'group_list',
139    'U_PERMALINKS'=> $link_start.'permalinks',
140    'U_RETURN'=> make_index_url(),
141    'U_ADMIN'=> PHPWG_ROOT_PATH.'admin.php',
142    'U_LOGOUT'=> PHPWG_ROOT_PATH.'index.php?act=logout',
143    'U_PLUGINS'=> $link_start.'plugins_list',
144    'U_ADD_PHOTOS' => $link_start.'photos_add',
145    'U_CHANGE_THEME' => PHPWG_ROOT_PATH.'admin.php?change_theme=1',
146    )
147  );
148
149//---------------------------------------------------------------- plugin menus
150$plugin_menu_links = trigger_event('get_admin_plugin_menu_links', array() );
151
152function UC_name_compare($a, $b)
153{
154  return strcmp(strtolower($a['NAME']), strtolower($b['NAME']));
155}
156usort($plugin_menu_links, 'UC_name_compare');
157$template->assign('plugin_menu_items', $plugin_menu_links);
158
159include(PHPWG_ROOT_PATH.'admin/'.$page['page'].'.php');
160
161//------------------------------------------------------------- content display
162
163// +-----------------------------------------------------------------------+
164// |                            errors & infos                             |
165// +-----------------------------------------------------------------------+
166
167if (count($page['errors']) != 0)
168{
169  $template->assign('errors', $page['errors']);
170}
171
172if (count($page['infos']) != 0)
173{
174  $template->assign('infos', $page['infos']);
175}
176
177// Add the Piwigo Official menu
178  $template->assign( 'pwgmenu', pwg_URL() );
179
180include(PHPWG_ROOT_PATH.'include/page_header.php');
181$template->pparse('admin');
182
183// +-----------------------------------------------------------------------+
184// |                     order permission refreshment                      |
185// +-----------------------------------------------------------------------+
186// Only for pages witch change permissions
187if (
188    in_array($page['page'],
189      array(
190        'site_manager', // delete site
191        'site_update',  // ?only POST
192        'cat_list',     // delete cat
193        'cat_modify',   // delete cat; public/private; lock/unlock
194        'cat_move',     // ?only POST
195        'cat_options',  // ?only POST; public/private; lock/unlock
196        'cat_perm',     // ?only POST
197        'element_set',  // ?only POST; associate/dissociate
198        'picture_modify', // ?only POST; associate/dissociate
199        'user_list',    // ?only POST; group assoc
200        'user_perm',
201        'group_perm',
202        'group_list',   // delete group
203      )
204    )
205  )
206{
207  invalidate_user_cache();
208}
209
210include(PHPWG_ROOT_PATH.'include/page_tail.php');
211?>
Note: See TracBrowser for help on using the repository browser.