source: trunk/admin.php @ 10594

Last change on this file since 10594 was 10594, checked in by patdenice, 13 years ago

Change tabsheet place for plugins, themes and languages.
Plugins, themes and languages use same update page.

  • Property svn:eol-style set to LF
File size: 9.4 KB
Line 
1<?php
2// +-----------------------------------------------------------------------+
3// | Piwigo - a PHP based photo gallery                                    |
4// +-----------------------------------------------------------------------+
5// | Copyright(C) 2008-2011 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// +-----------------------------------------------------------------------+
25// | Basic constants and includes                                          |
26// +-----------------------------------------------------------------------+
27
28define('PHPWG_ROOT_PATH','./');
29define('IN_ADMIN', true);
30
31include_once(PHPWG_ROOT_PATH.'include/common.inc.php');
32include_once(PHPWG_ROOT_PATH.'admin/include/functions.php');
33include_once(PHPWG_ROOT_PATH.'admin/include/functions_plugins.inc.php');
34
35trigger_action('loc_begin_admin');
36
37// +-----------------------------------------------------------------------+
38// | Check Access and exit when user status is not ok                      |
39// +-----------------------------------------------------------------------+
40
41check_status(ACCESS_ADMINISTRATOR);
42
43// +-----------------------------------------------------------------------+
44// | Direct actions                                                        |
45// +-----------------------------------------------------------------------+
46
47// tags
48if (isset($_GET['fckb_tags']))
49{
50  $query = '
51SELECT
52    id AS tag_id,
53    name AS tag_name
54  FROM '.TAGS_TABLE.'
55;';
56  echo json_encode(get_fckb_taglist($query));
57  exit();
58}
59
60// theme changer
61if (isset($_GET['change_theme']))
62{
63  $admin_themes = array('roma', 'clear');
64
65  $new_admin_theme = array_pop(
66    array_diff(
67      $admin_themes,
68      array($conf['admin_theme'])
69      )
70    );
71
72  conf_update_param('admin_theme', $new_admin_theme);
73
74  redirect('admin.php');
75}
76
77// +-----------------------------------------------------------------------+
78// | Synchronize user informations                                         |
79// +-----------------------------------------------------------------------+
80
81if (mt_rand(0,9)==0)
82{
83  sync_users();
84}
85
86// +-----------------------------------------------------------------------+
87// | Variables init                                                        |
88// +-----------------------------------------------------------------------+
89
90// ?page=plugin-community-pendings is an clean alias of
91// ?page=plugin&section=community/admin.php&tab=pendings
92if (isset($_GET['page']) and preg_match('/^plugin-([^-]*)(?:-(.*))?$/', $_GET['page'], $matches))
93{
94  $_GET['page'] = 'plugin';
95  $_GET['section'] = $matches[1].'/admin.php';
96  if (isset($matches[2]))
97  {
98    $_GET['tab'] = $matches[2];
99  }
100}
101
102if (isset($_GET['page'])
103    and preg_match('/^[a-z_]*$/', $_GET['page'])
104    and is_file(PHPWG_ROOT_PATH.'admin/'.$_GET['page'].'.php'))
105{
106  $page['page'] = $_GET['page'];
107}
108else
109{
110  $page['page'] = 'intro';
111}
112
113$page['errors'] = array();
114$page['infos']  = array();
115$page['warnings']  = array();
116
117if (isset($_SESSION['page_infos']))
118{
119  $page['infos'] = array_merge($page['infos'], $_SESSION['page_infos']);
120  unset($_SESSION['page_infos']);
121}
122
123$link_start = PHPWG_ROOT_PATH.'admin.php?page=';
124$conf_link = $link_start.'configuration&amp;section=';
125
126// +-----------------------------------------------------------------------+
127// | Template init                                                         |
128// +-----------------------------------------------------------------------+
129
130$title = l10n('Piwigo Administration'); // for include/page_header.php
131$page['page_banner'] = '<h1>'.l10n('Piwigo Administration').'</h1>';
132$page['body_id'] = 'theAdminPage';
133
134$template->set_filenames(array('admin' => 'admin.tpl'));
135
136$template->assign(
137  array(
138    'USERNAME' => $user['username'],
139    'ENABLE_SYNCHRONIZATION' => $conf['enable_synchronization'],
140    'U_SITE_MANAGER'=> $link_start.'site_manager',
141    'U_HISTORY_STAT'=> $link_start.'stats',
142    'U_FAQ'=> $link_start.'help',
143    'U_SITES'=> $link_start.'remote_site',
144    'U_MAINTENANCE'=> $link_start.'maintenance',
145    'U_NOTIFICATION_BY_MAIL'=> $link_start.'notification_by_mail',
146    'U_CONFIG_GENERAL'=> $link_start.'configuration',
147    'U_CONFIG_DISPLAY'=> $conf_link.'default',
148    'U_CONFIG_EXTENTS'=> $link_start.'extend_for_templates',
149    'U_CONFIG_MENUBAR'=> $link_start.'menubar',
150    'U_CONFIG_LANGUAGES' => $link_start.'languages',
151    'U_CONFIG_THEMES'=> $link_start.'themes',
152    'U_CATEGORIES'=> $link_start.'cat_list',
153    'U_MOVE'=> $link_start.'cat_move',
154    'U_CAT_OPTIONS'=> $link_start.'cat_options',
155    'U_CAT_UPDATE'=> $link_start.'site_update&amp;site=1',
156    'U_RATING'=> $link_start.'rating',
157    'U_RECENT_SET'=> $link_start.'batch_manager&amp;cat=recent',
158    'U_BATCH'=> $link_start.'batch_manager',
159    'U_TAGS'=> $link_start.'tags',
160    'U_THUMBNAILS'=> $link_start.'thumbnail',
161    'U_USERS'=> $link_start.'user_list',
162    'U_GROUPS'=> $link_start.'group_list',
163    'U_PERMALINKS'=> $link_start.'permalinks',
164    'U_RETURN'=> make_index_url(),
165    'U_ADMIN'=> PHPWG_ROOT_PATH.'admin.php',
166    'U_LOGOUT'=> PHPWG_ROOT_PATH.'index.php?act=logout',
167    'U_PLUGINS'=> $link_start.'plugins',
168    'U_ADD_PHOTOS' => $link_start.'photos_add',
169    'U_CHANGE_THEME' => PHPWG_ROOT_PATH.'admin.php?change_theme=1',
170    'U_PENDING_COMMENTS' => $link_start.'comments',
171    'U_UPDATES' => $link_start.'updates',
172    )
173  );
174
175// +-----------------------------------------------------------------------+
176// | Plugin menu                                                           |
177// +-----------------------------------------------------------------------+
178
179$plugin_menu_links = trigger_event('get_admin_plugin_menu_links', array() );
180
181function UC_name_compare($a, $b)
182{
183  return strcmp(strtolower($a['NAME']), strtolower($b['NAME']));
184}
185usort($plugin_menu_links, 'UC_name_compare');
186$template->assign('plugin_menu_items', $plugin_menu_links);
187
188// +-----------------------------------------------------------------------+
189// | Refresh permissions                                                   |
190// +-----------------------------------------------------------------------+
191
192// Only for pages witch change permissions
193if (
194    in_array($page['page'],
195      array(
196        'site_manager', // delete site
197        'site_update',  // ?only POST
198        'cat_list',     // delete cat
199        'cat_modify',   // delete cat; public/private; lock/unlock
200        'cat_move',     // ?only POST
201        'cat_options',  // ?only POST; public/private; lock/unlock
202        'cat_perm',     // ?only POST
203        'picture_modify', // ?only POST; associate/dissociate
204        'user_perm',
205        'group_perm',
206        'group_list',   // delete group
207      )
208    )
209    or ( !empty($_POST) and in_array($page['page'],
210        array(
211          'batch_manager',  // associate/dissociate; delete; set level
212          'user_list',    // group assoc; user level
213        )
214      )
215    )
216  )
217{
218  invalidate_user_cache();
219}
220
221// +-----------------------------------------------------------------------+
222// | Include specific page                                                 |
223// +-----------------------------------------------------------------------+
224
225include(PHPWG_ROOT_PATH.'admin/'.$page['page'].'.php');
226
227// +-----------------------------------------------------------------------+
228// | Errors, Infos & Warnings                                              |
229// +-----------------------------------------------------------------------+
230
231$template->assign('ACTIVE_MENU', get_active_menu($page['page']));
232
233if (count($page['errors']) != 0)
234{
235  $template->assign('errors', $page['errors']);
236}
237
238if (count($page['infos']) != 0)
239{
240  $template->assign('infos', $page['infos']);
241}
242
243if (count($page['warnings']) != 0)
244{
245  $template->assign('warnings', $page['warnings']);
246}
247
248// +-----------------------------------------------------------------------+
249// | Sending html code                                                     |
250// +-----------------------------------------------------------------------+
251
252// Add the Piwigo Official menu
253$template->assign( 'pwgmenu', pwg_URL() );
254
255include(PHPWG_ROOT_PATH.'include/page_header.php');
256
257trigger_action('loc_end_admin');
258
259$template->pparse('admin');
260
261include(PHPWG_ROOT_PATH.'include/page_tail.php');
262?>
Note: See TracBrowser for help on using the repository browser.