source: trunk/admin.php @ 5120

Last change on this file since 5120 was 5098, checked in by plg, 15 years ago

feature 1491: administration panel header/footer. Graphicaly outside the
administration theme. The header includes the gallery title with a link to
gallery, a theme changer, an explicit "visit gallery" link, a logout link.
The footer includes links to piwigo.org (homepage, documentation, forum) and
the contact webmaster link.

Due to new header/footer, I've removed the "Links" section in the menubar.

The new footer sticks to the bottom of the browser window.

I've slightly "rounded" grum tabs to look like the menubar borders.

Graphical illustration (top left and bottom left leaves) were removed to
improve readability. They make things beautiful on gallery side, they
decrease usability on admin side.

Piwigo logo was removed to save space on administration footer. It would be
nice to have a small logo to place bottom left in the footer next to
"Powered by Piwigo".

Links>Administration link was replaced by a big link box just above the
menubar.

The H2 was outside the #content box, nearly invisible on top right corner.
Now it is 1) easy to read 2) inside #content.

feature 1490: ability to switch from goto/roma to goto/clear with a single
click in administration header.

The global organisation of the page is quite heavily changed. The global
layout is:

body#theAdminPage
body#theAdminPage > #the_page
body#theAdminPage > #the_page > #pwgHead
body#theAdminPage > #the_page > #pwgMain
body#theAdminPage > #the_page > #pwgMain > #menubar
body#theAdminPage > #the_page > #pwgMain > #content
body#theAdminPage > #the_page > #footer

File size: 7.7 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('goto/roma', 'goto/clear');
66
67  $new_admin_theme = array_pop(
68    array_diff(
69      $admin_themes,
70      array($conf['admin_layout'])
71      )
72    );
73
74  $query = '
75DELETE
76  FROM '.CONFIG_TABLE.'
77  WHERE param = "admin_layout"
78;';
79  pwg_query($query);
80
81  $query = '
82INSERT
83  INTO '.CONFIG_TABLE.'
84  SET param = "admin_layout"
85    , value = "'.$new_admin_theme.'"
86;';
87  pwg_query($query);
88
89  redirect('admin.php');
90}
91
92// +-----------------------------------------------------------------------+
93// |                    synchronize user informations                      |
94// +-----------------------------------------------------------------------+
95
96sync_users();
97
98// +-----------------------------------------------------------------------+
99// |                            variables init                             |
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
116$link_start = PHPWG_ROOT_PATH.'admin.php?page=';
117$conf_link = $link_start.'configuration&amp;section=';
118//----------------------------------------------------- template initialization
119$title = l10n('Piwigo Administration'); // for include/page_header.php
120$page['page_banner'] = '<h1>'.l10n('Piwigo Administration').'</h1>';
121$page['body_id'] = 'theAdminPage';
122
123$template->set_filenames(array('admin' => 'admin.tpl'));
124
125$template->assign(
126  array(
127    'USERNAME' => $user['username'],
128    'U_SITE_MANAGER'=> $link_start.'site_manager',
129    'U_HISTORY_STAT'=> $link_start.'stats',
130    'U_FAQ'=> $link_start.'help',
131    'U_SITES'=> $link_start.'remote_site',
132    'U_MAINTENANCE'=> $link_start.'maintenance',
133    'U_NOTIFICATION_BY_MAIL'=> $link_start.'notification_by_mail',
134    'U_ADVANCED_FEATURE'=> $link_start.'advanced_feature',
135    'U_CONFIG_GENERAL'=> $link_start.'configuration',
136    'U_CONFIG_DISPLAY'=> $conf_link.'default',
137    'U_CONFIG_EXTENTS'=> $link_start.'extend_for_templates',
138    'U_CONFIG_MENUBAR'=> $link_start.'menubar',
139    'U_CATEGORIES'=> $link_start.'cat_list',
140    'U_MOVE'=> $link_start.'cat_move',
141    'U_CAT_OPTIONS'=> $link_start.'cat_options',
142    'U_CAT_UPDATE'=> $link_start.'site_update&amp;site=1',
143    'U_WAITING'=> $link_start.'comments',
144    'U_RATING'=> $link_start.'rating',
145    'U_CADDIE'=> $link_start.'element_set&amp;cat=caddie',
146    'U_RECENT_SET'=> $link_start.'element_set&amp;cat=recent',
147    'U_TAGS'=> $link_start.'tags',
148    'U_THUMBNAILS'=> $link_start.'thumbnail',
149    'U_USERS'=> $link_start.'user_list',
150    'U_GROUPS'=> $link_start.'group_list',
151    'U_PERMALINKS'=> $link_start.'permalinks',
152    'U_RETURN'=> make_index_url(),
153    'U_ADMIN'=> PHPWG_ROOT_PATH.'admin.php',
154    'U_LOGOUT'=> PHPWG_ROOT_PATH.'index.php?act=logout',
155    'U_PLUGINS'=> $link_start.'plugins_list',
156    'U_ADD_PHOTOS' => $link_start.'photos_add',
157    'U_CHANGE_THEME' => PHPWG_ROOT_PATH.'admin.php?change_theme=1',
158    )
159  );
160
161//---------------------------------------------------------------- plugin menus
162$plugin_menu_links = trigger_event('get_admin_plugin_menu_links', array() );
163
164function UC_name_compare($a, $b)
165{
166  return strcmp(strtolower($a['NAME']), strtolower($b['NAME']));
167}
168usort($plugin_menu_links, 'UC_name_compare');
169$template->assign('plugin_menu_items', $plugin_menu_links);
170
171include(PHPWG_ROOT_PATH.'admin/'.$page['page'].'.php');
172
173//------------------------------------------------------------- content display
174
175// +-----------------------------------------------------------------------+
176// |                            errors & infos                             |
177// +-----------------------------------------------------------------------+
178
179if (count($page['errors']) != 0)
180{
181  $template->assign('errors', $page['errors']);
182}
183
184if (count($page['infos']) != 0)
185{
186  $template->assign('infos', $page['infos']);
187}
188
189// Add the Piwigo Official menu
190  $template->assign( 'pwgmenu', pwg_URL() );
191
192include(PHPWG_ROOT_PATH.'include/page_header.php');
193$template->pparse('admin');
194
195// +-----------------------------------------------------------------------+
196// |                     order permission refreshment                      |
197// +-----------------------------------------------------------------------+
198// Only for pages witch change permissions
199if (
200    in_array($page['page'],
201      array(
202        'site_manager', // delete site
203        'site_update',  // ?only POST
204        'cat_list',     // delete cat
205        'cat_modify',   // delete cat; public/private; lock/unlock
206        'cat_move',     // ?only POST
207        'cat_options',  // ?only POST; public/private; lock/unlock
208        'cat_perm',     // ?only POST
209        'element_set',  // ?only POST; associate/dissociate
210        'picture_modify', // ?only POST; associate/dissociate
211        'user_list',    // ?only POST; group assoc
212        'user_perm',
213        'group_perm',
214        'group_list',   // delete group
215      )
216    )
217  )
218{
219  invalidate_user_cache();
220}
221
222include(PHPWG_ROOT_PATH.'include/page_tail.php');
223?>
Note: See TracBrowser for help on using the repository browser.