source: trunk/admin/permalinks.php @ 13980

Last change on this file since 13980 was 13282, checked in by plg, 13 years ago

feature 2581: new design on albums list management.

icons removed, replaced by text links visible on :hover

better ergonomy for automatic order: the "save manual order" submit button
only appears when a change is detected in the album ordering. The "automatic
sort order" becomes a dedicated fieldset, hidden by default, displayed "on
user demand".

new virtual album form displayed only "on user demand"

cat_list, cat_move and permalinks are 3 tabs for the "Albums > Manage" link
in the menubar.

permalinks admin page slightly redesign: fieldsets instead of centered h3,
"on user demand" form to add/modify permalinks.

  • Property svn:eol-style set to LF
File size: 6.0 KB
RevLine 
[1866]1<?php
2// +-----------------------------------------------------------------------+
[8728]3// | Piwigo - a PHP based photo gallery                                    |
[2297]4// +-----------------------------------------------------------------------+
[12922]5// | Copyright(C) 2008-2012 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// +-----------------------------------------------------------------------+
[1866]23
[1873]24function parse_sort_variables(
25    $sortable_by, $default_field,
26    $get_param, $get_rejects,
[1975]27    $template_var,
28    $anchor = '' )
[1873]29{
30  global $template;
[2119]31
[1873]32  $url_components = parse_url( $_SERVER['REQUEST_URI'] );
33
34  $base_url = $url_components['path'];
[2119]35
[1873]36  parse_str($url_components['query'], $vars);
37  $is_first = true;
38  foreach ($vars as $key => $value)
39  {
40    if (!in_array($key, $get_rejects) and $key!=$get_param)
41    {
42      $base_url .= $is_first ? '?' : '&amp;';
43      $is_first = false;
44      $base_url .= $key.'='.urlencode($value);
45    }
46  }
47
48  $ret = array();
49  foreach( $sortable_by as $field)
50  {
51    $url = $base_url;
[13282]52    $disp = '↓'; // TODO: an small image is better
[2119]53
[1873]54    if ( $field !== @$_GET[$get_param] )
55    {
56      if ( !isset($default_field) or $default_field!=$field )
57      { // the first should be the default
58        $url = add_url_params($url, array($get_param=>$field) );
59      }
[2119]60      elseif (isset($default_field) and !isset($_GET[$get_param]) )
61      {
62        array_push($ret, $field);
63        $disp = '<em>'.$disp.'</em>';
64      }
[1873]65    }
66    else
67    {
68      array_push($ret, $field);
[2119]69      $disp = '<em>'.$disp.'</em>';
[1873]70    }
71    if ( isset($template_var) )
72    {
[2223]73      $template->assign( $template_var.strtoupper($field),
[1975]74            '<a href="'.$url.$anchor.'" title="'.l10n('Sort order').'">'.$disp.'</a>'
[1873]75         );
76    }
77  }
78  return $ret;
79}
80
[1866]81if (!defined('PHPWG_ROOT_PATH')) die('Hacking attempt!');
82
83include_once(PHPWG_ROOT_PATH.'admin/include/functions_permalinks.php');
84
85$selected_cat = array();
[8126]86if ( isset($_POST['set_permalink']) and $_POST['cat_id']>0 )
[1866]87{
88  $permalink = $_POST['permalink'];
89  if ( empty($permalink) )
90    delete_cat_permalink($_POST['cat_id'], isset($_POST['save']) );
91  else
92    set_cat_permalink($_POST['cat_id'], $permalink, isset($_POST['save']) );
93  $selected_cat = array( $_POST['cat_id'] );
94}
[8126]95elseif ( isset($_GET['delete_permanent']) )
[1866]96{
97  $query = '
98DELETE FROM '.OLD_PERMALINKS_TABLE.'
[6550]99  WHERE permalink=\''.$_GET['delete_permanent'].'\'
[1866]100  LIMIT 1';
[5192]101  $result = pwg_query($query);
102  if (pwg_db_changes($result)==0)
[5075]103    array_push($page['errors'], l10n('Cannot delete the old permalink !'));
[1866]104}
105
[1873]106
[2530]107$template->set_filename('permalinks', 'permalinks.tpl' );
[1866]108
[13282]109// +-----------------------------------------------------------------------+
110// | tabs                                                                  |
111// +-----------------------------------------------------------------------+
112
113$page['tab'] = 'permalinks';
114include(PHPWG_ROOT_PATH.'admin/include/albums_tab.inc.php');
115
116
[1866]117$query = '
[2119]118SELECT
[5192]119  id, permalink,
120  '.pwg_db_concat(array('id', '\' - \'', 'name')).' AS name,
[2119]121  uppercats, global_rank
[1866]122FROM '.CATEGORIES_TABLE;
123
124display_select_cat_wrapper( $query, $selected_cat, 'categories', false );
125
[1873]126
127// --- generate display of active permalinks -----------------------------------
128$sort_by = parse_sort_variables(
129    array('id', 'name', 'permalink'), 'name',
130    'psf',
131    array('delete_permanent'),
132    'SORT_' );
133
[1866]134$query = '
[1873]135SELECT id, permalink, uppercats, global_rank
[1866]136  FROM '.CATEGORIES_TABLE.'
[1873]137  WHERE permalink IS NOT NULL
138';
[2119]139if ( $sort_by[0]=='id' or $sort_by[0]=='permalink' )
[1873]140{
141  $query .= ' ORDER BY '.$sort_by[0];
142}
143$categories=array();
[1866]144$result=pwg_query($query);
[4325]145while ( $row = pwg_db_fetch_assoc($result) )
[1866]146{
[1873]147  $row['name'] = get_cat_display_name_cache( $row['uppercats'] );
148  $categories[] = $row;
[1866]149}
150
[2119]151if ( $sort_by[0]=='name')
[1873]152{
153  usort($categories, 'global_rank_compare');
154}
[2223]155$template->assign( 'permalinks', $categories );
[1873]156
157// --- generate display of old permalinks --------------------------------------
158
159$sort_by = parse_sort_variables(
160    array('cat_id','permalink','date_deleted','last_hit','hit'), null,
161    'dpsf',
162    array('delete_permanent'),
[1975]163    'SORT_OLD_', '#old_permalinks' );
[1873]164
[1866]165$url_del_base = get_root_url().'admin.php?page=permalinks';
166$query = 'SELECT * FROM '.OLD_PERMALINKS_TABLE;
[1873]167if ( count($sort_by) )
168{
169  $query .= ' ORDER BY '.$sort_by[0];
170}
[1866]171$result = pwg_query($query);
[2223]172$deleted_permalinks=array();
[4325]173while ( $row = pwg_db_fetch_assoc($result) )
[1866]174{
[1873]175  $row['name'] = get_cat_display_name_cache($row['cat_id']);
[1866]176  $row['U_DELETE'] =
177      add_url_params(
178        $url_del_base,
179        array( 'delete_permanent'=> $row['permalink'] )
180      );
[2223]181  $deleted_permalinks[] = $row;
[1866]182}
[2223]183$template->assign('deleted_permalinks', $deleted_permalinks);
[5920]184$template->assign('U_HELP', get_root_url().'admin/popuphelp.php?page=permalinks');
[1866]185
186$template->assign_var_from_handle('ADMIN_CONTENT', 'permalinks');
187?>
Note: See TracBrowser for help on using the repository browser.