source: trunk/admin.php @ 20321

Last change on this file since 20321 was 19703, checked in by plg, 11 years ago

update Piwigo headers to 2013 (the end of the world didn't occur as expected on r12922)

  • Property svn:eol-style set to LF
File size: 10.3 KB
RevLine 
[217]1<?php
[354]2// +-----------------------------------------------------------------------+
[8728]3// | Piwigo - a PHP based photo gallery                                    |
[2297]4// +-----------------------------------------------------------------------+
[19703]5// | Copyright(C) 2008-2013 Piwigo Team                  http://piwigo.org |
[2297]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// +-----------------------------------------------------------------------+
[217]23
[9368]24// +-----------------------------------------------------------------------+
25// | Basic constants and includes                                          |
26// +-----------------------------------------------------------------------+
27
[364]28define('PHPWG_ROOT_PATH','./');
[393]29define('IN_ADMIN', true);
[808]30
[9368]31include_once(PHPWG_ROOT_PATH.'include/common.inc.php');
[1072]32include_once(PHPWG_ROOT_PATH.'admin/include/functions.php');
[1655]33include_once(PHPWG_ROOT_PATH.'admin/include/functions_plugins.inc.php');
[16928]34include_once(PHPWG_ROOT_PATH.'admin/include/add_core_tabs.inc.php');
[1072]35
[5933]36trigger_action('loc_begin_admin');
37
[808]38// +-----------------------------------------------------------------------+
[1072]39// | Check Access and exit when user status is not ok                      |
40// +-----------------------------------------------------------------------+
[9368]41
[1072]42check_status(ACCESS_ADMINISTRATOR);
43
[9368]44// +-----------------------------------------------------------------------+
45// | Direct actions                                                        |
46// +-----------------------------------------------------------------------+
47
[11222]48// save plugins_new display order (AJAX action)
49if (isset($_GET['plugins_new_order']))
50{
51  pwg_set_session_var('plugins_new_order', $_GET['plugins_new_order']);
52  exit;
53}
54
[5098]55// theme changer
56if (isset($_GET['change_theme']))
57{
[5123]58  $admin_themes = array('roma', 'clear');
[5098]59
60  $new_admin_theme = array_pop(
61    array_diff(
62      $admin_themes,
[5123]63      array($conf['admin_theme'])
[5098]64      )
65    );
66
[5139]67  conf_update_param('admin_theme', $new_admin_theme);
[5098]68
[12102]69  $url_params = array();
70  foreach (array('page', 'tab', 'section') as $url_param)
71  {
72    if (isset($_GET[$url_param]))
73    {
74      $url_params[] = $url_param.'='.$_GET[$url_param];
75    }
76  }
77 
78  $redirect_url = 'admin.php';
79  if (count($url_params) > 0)
80  {
81    $redirect_url.= '?'.implode('&amp;', $url_params);
82  }
83
84  redirect($redirect_url);
[5098]85}
86
[1072]87// +-----------------------------------------------------------------------+
[9368]88// | Synchronize user informations                                         |
[808]89// +-----------------------------------------------------------------------+
[9368]90
[11329]91// sync_user() is only useful when external authentication is activated
92if ($conf['external_authentification'])
[8756]93{
94  sync_users();
95}
[808]96
[817]97// +-----------------------------------------------------------------------+
[9368]98// | Variables init                                                        |
[817]99// +-----------------------------------------------------------------------+
[708]100
[12102]101$change_theme_url = PHPWG_ROOT_PATH.'admin.php?';
102$test_get = $_GET;
103unset($test_get['page']);
104unset($test_get['section']);
105unset($test_get['tag']);
106if (count($test_get) == 0)
107{
108  $change_theme_url.= str_replace('&', '&amp;', $_SERVER['QUERY_STRING']).'&amp;';
109}
110$change_theme_url.= 'change_theme=1';
111
[9357]112// ?page=plugin-community-pendings is an clean alias of
113// ?page=plugin&section=community/admin.php&tab=pendings
[9358]114if (isset($_GET['page']) and preg_match('/^plugin-([^-]*)(?:-(.*))?$/', $_GET['page'], $matches))
[9357]115{
116  $_GET['page'] = 'plugin';
117  $_GET['section'] = $matches[1].'/admin.php';
118  if (isset($matches[2]))
119  {
120    $_GET['tab'] = $matches[2];
121  }
122}
123
[13013]124// ?page=album-134-properties is an clean alias of
125// ?page=album&cat_id=134&tab=properties
126if (isset($_GET['page']) and preg_match('/^album-(\d+)(?:-(.*))?$/', $_GET['page'], $matches))
127{
128  $_GET['page'] = 'album';
129  $_GET['cat_id'] = $matches[1];
130  if (isset($matches[2]))
131  {
132    $_GET['tab'] = $matches[2];
133  }
134}
135
[13077]136// ?page=photo-1234-properties is an clean alias of
137// ?page=photo&image_id=1234&tab=properties
138if (isset($_GET['page']) and preg_match('/^photo-(\d+)(?:-(.*))?$/', $_GET['page'], $matches))
139{
140  $_GET['page'] = 'photo';
141  $_GET['image_id'] = $matches[1];
142  if (isset($matches[2]))
143  {
144    $_GET['tab'] = $matches[2];
145  }
146}
147
[1705]148if (isset($_GET['page'])
[817]149    and preg_match('/^[a-z_]*$/', $_GET['page'])
[1705]150    and is_file(PHPWG_ROOT_PATH.'admin/'.$_GET['page'].'.php'))
[217]151{
[1705]152  $page['page'] = $_GET['page'];
[217]153}
[1705]154else
[217]155{
[1705]156  $page['page'] = 'intro';
[217]157}
[393]158
159$link_start = PHPWG_ROOT_PATH.'admin.php?page=';
[602]160$conf_link = $link_start.'configuration&amp;section=';
[9368]161
162// +-----------------------------------------------------------------------+
163// | Template init                                                         |
164// +-----------------------------------------------------------------------+
165
[2342]166$title = l10n('Piwigo Administration'); // for include/page_header.php
167$page['page_banner'] = '<h1>'.l10n('Piwigo Administration').'</h1>';
[850]168$page['body_id'] = 'theAdminPage';
[393]169
[817]170$template->set_filenames(array('admin' => 'admin.tpl'));
[614]171
[2216]172$template->assign(
[817]173  array(
[5098]174    'USERNAME' => $user['username'],
[6365]175    'ENABLE_SYNCHRONIZATION' => $conf['enable_synchronization'],
[1029]176    'U_SITE_MANAGER'=> $link_start.'site_manager',
[1727]177    'U_HISTORY_STAT'=> $link_start.'stats',
[1004]178    'U_FAQ'=> $link_start.'help',
179    'U_SITES'=> $link_start.'remote_site',
180    'U_MAINTENANCE'=> $link_start.'maintenance',
[1091]181    'U_NOTIFICATION_BY_MAIL'=> $link_start.'notification_by_mail',
[1894]182    'U_CONFIG_GENERAL'=> $link_start.'configuration',
[1004]183    'U_CONFIG_DISPLAY'=> $conf_link.'default',
[2434]184    'U_CONFIG_EXTENTS'=> $link_start.'extend_for_templates',
[2488]185    'U_CONFIG_MENUBAR'=> $link_start.'menubar',
[10594]186    'U_CONFIG_LANGUAGES' => $link_start.'languages',
187    'U_CONFIG_THEMES'=> $link_start.'themes',
[1004]188    'U_CATEGORIES'=> $link_start.'cat_list',
189    'U_CAT_OPTIONS'=> $link_start.'cat_options',
[1058]190    'U_CAT_UPDATE'=> $link_start.'site_update&amp;site=1',
[1042]191    'U_RATING'=> $link_start.'rating',
[8423]192    'U_RECENT_SET'=> $link_start.'batch_manager&amp;cat=recent',
[8394]193    'U_BATCH'=> $link_start.'batch_manager',
[1119]194    'U_TAGS'=> $link_start.'tags',
[1004]195    'U_USERS'=> $link_start.'user_list',
196    'U_GROUPS'=> $link_start.'group_list',
[11368]197    'U_RETURN'=> get_gallery_home_url(),
[2574]198    'U_ADMIN'=> PHPWG_ROOT_PATH.'admin.php',
[3522]199    'U_LOGOUT'=> PHPWG_ROOT_PATH.'index.php?act=logout',
[10594]200    'U_PLUGINS'=> $link_start.'plugins',
[5089]201    'U_ADD_PHOTOS' => $link_start.'photos_add',
[12102]202    'U_CHANGE_THEME' => $change_theme_url,
[10511]203    'U_UPDATES' => $link_start.'updates',
[817]204    )
205  );
[12887]206 
207if ($conf['activate_comments'])
208{
209  $template->assign('U_PENDING_COMMENTS', $link_start.'comments');
210}
[1058]211
[17009]212// any photo in the caddie?
213$query = '
214SELECT COUNT(*)
215  FROM '.CADDIE_TABLE.'
216  WHERE user_id = '.$user['id'].'
217;';
218list($nb_photos_in_caddie) = pwg_db_fetch_row(pwg_query($query));
219
220if ($nb_photos_in_caddie > 0)
221{
222  $template->assign(
223    array(
224      'NB_PHOTOS_IN_CADDIE' => $nb_photos_in_caddie,
225      'U_CADDIE' => $link_start.'batch_manager&amp;cat=caddie',
226      )
227    );
228}
229
[9368]230// +-----------------------------------------------------------------------+
231// | Plugin menu                                                           |
232// +-----------------------------------------------------------------------+
233
[2144]234$plugin_menu_links = trigger_event('get_admin_plugin_menu_links', array() );
235
236function UC_name_compare($a, $b)
237{
238  return strcmp(strtolower($a['NAME']), strtolower($b['NAME']));
239}
240usort($plugin_menu_links, 'UC_name_compare');
[2216]241$template->assign('plugin_menu_items', $plugin_menu_links);
[1655]242
[792]243// +-----------------------------------------------------------------------+
[9368]244// | Refresh permissions                                                   |
[792]245// +-----------------------------------------------------------------------+
[817]246
[1945]247// Only for pages witch change permissions
[1952]248if (
249    in_array($page['page'],
250      array(
251        'site_manager', // delete site
252        'site_update',  // ?only POST
253        'cat_list',     // delete cat
254        'cat_move',     // ?only POST
255        'cat_options',  // ?only POST; public/private; lock/unlock
256        'user_perm',
257        'group_perm',
258        'group_list',   // delete group
259      )
260    )
[9127]261    or ( !empty($_POST) and in_array($page['page'],
[8756]262        array(
[13258]263          'photo',
264          'album',        // public/private; lock/unlock, permissions
[8756]265          'batch_manager',  // associate/dissociate; delete; set level
[9127]266          'user_list',    // group assoc; user level
[8756]267        )
268      )
269    )
[1952]270  )
[1945]271{
[1978]272  invalidate_user_cache();
[1945]273}
274
[9368]275// +-----------------------------------------------------------------------+
276// | Include specific page                                                 |
277// +-----------------------------------------------------------------------+
278
[10849]279trigger_action('loc_begin_admin_page');
[9368]280include(PHPWG_ROOT_PATH.'admin/'.$page['page'].'.php');
281
282$template->assign('ACTIVE_MENU', get_active_menu($page['page']));
283
284// +-----------------------------------------------------------------------+
285// | Sending html code                                                     |
286// +-----------------------------------------------------------------------+
287
288// Add the Piwigo Official menu
289$template->assign( 'pwgmenu', pwg_URL() );
290
291include(PHPWG_ROOT_PATH.'include/page_header.php');
292
293trigger_action('loc_end_admin');
294
[18463]295include(PHPWG_ROOT_PATH.'include/page_messages.php');
296
[9368]297$template->pparse('admin');
298
[1978]299include(PHPWG_ROOT_PATH.'include/page_tail.php');
[362]300?>
Note: See TracBrowser for help on using the repository browser.