source: trunk/admin/permalinks.php @ 20384

Last change on this file since 20384 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: 6.0 KB
Line 
1<?php
2// +-----------------------------------------------------------------------+
3// | Piwigo - a PHP based photo gallery                                    |
4// +-----------------------------------------------------------------------+
5// | Copyright(C) 2008-2013 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
24function parse_sort_variables(
25    $sortable_by, $default_field,
26    $get_param, $get_rejects,
27    $template_var,
28    $anchor = '' )
29{
30  global $template;
31
32  $url_components = parse_url( $_SERVER['REQUEST_URI'] );
33
34  $base_url = $url_components['path'];
35
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;
52    $disp = '↓'; // TODO: an small image is better
53
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      }
60      elseif (isset($default_field) and !isset($_GET[$get_param]) )
61      {
62        array_push($ret, $field);
63        $disp = '<em>'.$disp.'</em>';
64      }
65    }
66    else
67    {
68      array_push($ret, $field);
69      $disp = '<em>'.$disp.'</em>';
70    }
71    if ( isset($template_var) )
72    {
73      $template->assign( $template_var.strtoupper($field),
74            '<a href="'.$url.$anchor.'" title="'.l10n('Sort order').'">'.$disp.'</a>'
75         );
76    }
77  }
78  return $ret;
79}
80
81if (!defined('PHPWG_ROOT_PATH')) die('Hacking attempt!');
82
83include_once(PHPWG_ROOT_PATH.'admin/include/functions_permalinks.php');
84
85$selected_cat = array();
86if ( isset($_POST['set_permalink']) and $_POST['cat_id']>0 )
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}
95elseif ( isset($_GET['delete_permanent']) )
96{
97  $query = '
98DELETE FROM '.OLD_PERMALINKS_TABLE.'
99  WHERE permalink=\''.$_GET['delete_permanent'].'\'
100  LIMIT 1';
101  $result = pwg_query($query);
102  if (pwg_db_changes($result)==0)
103    array_push($page['errors'], l10n('Cannot delete the old permalink !'));
104}
105
106
107$template->set_filename('permalinks', 'permalinks.tpl' );
108
109// +-----------------------------------------------------------------------+
110// | tabs                                                                  |
111// +-----------------------------------------------------------------------+
112
113$page['tab'] = 'permalinks';
114include(PHPWG_ROOT_PATH.'admin/include/albums_tab.inc.php');
115
116
117$query = '
118SELECT
119  id, permalink,
120  CONCAT(id, " - ", name, IF(permalink IS NULL, "", " &radic;") ) AS name,
121  uppercats, global_rank
122FROM '.CATEGORIES_TABLE;
123
124display_select_cat_wrapper( $query, $selected_cat, 'categories', false );
125
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
134$query = '
135SELECT id, permalink, uppercats, global_rank
136  FROM '.CATEGORIES_TABLE.'
137  WHERE permalink IS NOT NULL
138';
139if ( $sort_by[0]=='id' or $sort_by[0]=='permalink' )
140{
141  $query .= ' ORDER BY '.$sort_by[0];
142}
143$categories=array();
144$result=pwg_query($query);
145while ( $row = pwg_db_fetch_assoc($result) )
146{
147  $row['name'] = get_cat_display_name_cache( $row['uppercats'] );
148  $categories[] = $row;
149}
150
151if ( $sort_by[0]=='name')
152{
153  usort($categories, 'global_rank_compare');
154}
155$template->assign( 'permalinks', $categories );
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'),
163    'SORT_OLD_', '#old_permalinks' );
164
165$url_del_base = get_root_url().'admin.php?page=permalinks';
166$query = 'SELECT * FROM '.OLD_PERMALINKS_TABLE;
167if ( count($sort_by) )
168{
169  $query .= ' ORDER BY '.$sort_by[0];
170}
171$result = pwg_query($query);
172$deleted_permalinks=array();
173while ( $row = pwg_db_fetch_assoc($result) )
174{
175  $row['name'] = get_cat_display_name_cache($row['cat_id']);
176  $row['U_DELETE'] =
177      add_url_params(
178        $url_del_base,
179        array( 'delete_permanent'=> $row['permalink'] )
180      );
181  $deleted_permalinks[] = $row;
182}
183$template->assign('deleted_permalinks', $deleted_permalinks);
184$template->assign('U_HELP', get_root_url().'admin/popuphelp.php?page=permalinks');
185
186$template->assign_var_from_handle('ADMIN_CONTENT', 'permalinks');
187?>
Note: See TracBrowser for help on using the repository browser.