source: trunk/admin/cat_options.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: 7.8 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
24if (!defined('PHPWG_ROOT_PATH'))
25{
26  die ("Hacking attempt!");
27}
28
29include_once(PHPWG_ROOT_PATH.'admin/include/functions.php');
30include_once(PHPWG_ROOT_PATH.'admin/include/tabsheet.class.php');
31
32// +-----------------------------------------------------------------------+
33// | Check Access and exit when user status is not ok                      |
34// +-----------------------------------------------------------------------+
35check_status(ACCESS_ADMINISTRATOR);
36
37// +-----------------------------------------------------------------------+
38// |                       modification registration                       |
39// +-----------------------------------------------------------------------+
40
41// print '<pre>';
42// print_r($_POST);
43// print '</pre>';
44if (isset($_POST['falsify'])
45    and isset($_POST['cat_true'])
46    and count($_POST['cat_true']) > 0)
47{
48  switch ($_GET['section'])
49  {
50    case 'comments' :
51    {
52      $query = '
53UPDATE '.CATEGORIES_TABLE.'
54  SET commentable = \'false\'
55  WHERE id IN ('.implode(',', $_POST['cat_true']).')
56;';
57      pwg_query($query);
58      break;
59    }
60    case 'visible' :
61    {
62      set_cat_visible($_POST['cat_true'], 'false');
63      break;
64    }
65    case 'status' :
66    {
67      set_cat_status($_POST['cat_true'], 'private');
68      break;
69    }
70    case 'representative' :
71    {
72      $query = '
73UPDATE '.CATEGORIES_TABLE.'
74  SET representative_picture_id = NULL
75  WHERE id IN ('.implode(',', $_POST['cat_true']).')
76;';
77      pwg_query($query);
78      break;
79    }
80  }
81}
82else if (isset($_POST['trueify'])
83         and isset($_POST['cat_false'])
84         and count($_POST['cat_false']) > 0)
85{
86  switch ($_GET['section'])
87  {
88    case 'comments' :
89    {
90      $query = '
91UPDATE '.CATEGORIES_TABLE.'
92  SET commentable = \'true\'
93  WHERE id IN ('.implode(',', $_POST['cat_false']).')
94;';
95      pwg_query($query);
96      break;
97    }
98    case 'visible' :
99    {
100      set_cat_visible($_POST['cat_false'], 'true');
101      break;
102    }
103    case 'status' :
104    {
105      set_cat_status($_POST['cat_false'], 'public');
106      break;
107    }
108    case 'representative' :
109    {
110      // theoretically, all categories in $_POST['cat_false'] contain at
111      // least one element, so Piwigo can find a representant.
112      set_random_representant($_POST['cat_false']);
113      break;
114    }
115  }
116}
117
118// +-----------------------------------------------------------------------+
119// |                             template init                             |
120// +-----------------------------------------------------------------------+
121
122$template->set_filenames(
123  array(
124    'cat_options' => 'cat_options.tpl',
125    'double_select' => 'double_select.tpl'
126    )
127  );
128
129$page['section'] = isset($_GET['section']) ? $_GET['section'] : 'status';
130$base_url = PHPWG_ROOT_PATH.'admin.php?page=cat_options&amp;section=';
131
132$template->assign(
133  array(
134    'U_HELP' => get_root_url().'admin/popuphelp.php?page=cat_options',
135    'F_ACTION'=>$base_url.$page['section']
136   )
137 );
138
139// TabSheet
140$tabsheet = new tabsheet();
141$tabsheet->set_id('cat_options');
142$tabsheet->select($page['section']);
143$tabsheet->assign();
144
145// +-----------------------------------------------------------------------+
146// |                              form display                             |
147// +-----------------------------------------------------------------------+
148
149// for each section, categories in the multiselect field can be :
150//
151// - true : commentable for comment section
152// - false : un-commentable for comment section
153// - NA : (not applicable) for virtual categories
154//
155// for true and false status, we associates an array of category ids,
156// function display_select_categories will use the given CSS class for each
157// option
158$cats_true = array();
159$cats_false = array();
160switch ($page['section'])
161{
162  case 'comments' :
163  {
164    $query_true = '
165SELECT id,name,uppercats,global_rank
166  FROM '.CATEGORIES_TABLE.'
167  WHERE commentable = \'true\'
168;';
169    $query_false = '
170SELECT id,name,uppercats,global_rank
171  FROM '.CATEGORIES_TABLE.'
172  WHERE commentable = \'false\'
173;';
174    $template->assign(
175      array(
176        'L_SECTION' => l10n('Authorize users to add comments on selected albums'),
177        'L_CAT_OPTIONS_TRUE' => l10n('Authorized'),
178        'L_CAT_OPTIONS_FALSE' => l10n('Forbidden'),
179        )
180      );
181    break;
182  }
183  case 'visible' :
184  {
185    $query_true = '
186SELECT id,name,uppercats,global_rank
187  FROM '.CATEGORIES_TABLE.'
188  WHERE visible = \'true\'
189;';
190    $query_false = '
191SELECT id,name,uppercats,global_rank
192  FROM '.CATEGORIES_TABLE.'
193  WHERE visible = \'false\'
194;';
195    $template->assign(
196      array(
197        'L_SECTION' => l10n('Lock albums'),
198        'L_CAT_OPTIONS_TRUE' => l10n('Unlocked'),
199        'L_CAT_OPTIONS_FALSE' => l10n('Locked'),
200        )
201      );
202    break;
203  }
204  case 'status' :
205  {
206    $query_true = '
207SELECT id,name,uppercats,global_rank
208  FROM '.CATEGORIES_TABLE.'
209  WHERE status = \'public\'
210;';
211    $query_false = '
212SELECT id,name,uppercats,global_rank
213  FROM '.CATEGORIES_TABLE.'
214  WHERE status = \'private\'
215;';
216    $template->assign(
217      array(
218        'L_SECTION' => l10n('Manage authorizations for selected albums'),
219        'L_CAT_OPTIONS_TRUE' => l10n('Public'),
220        'L_CAT_OPTIONS_FALSE' => l10n('Private'),
221        )
222      );
223    break;
224  }
225  case 'representative' :
226  {
227    $query_true = '
228SELECT id,name,uppercats,global_rank
229  FROM '.CATEGORIES_TABLE.'
230  WHERE representative_picture_id IS NOT NULL
231;';
232    $query_false = '
233SELECT DISTINCT id,name,uppercats,global_rank
234  FROM '.CATEGORIES_TABLE.' INNER JOIN '.IMAGE_CATEGORY_TABLE.' ON id=category_id
235  WHERE representative_picture_id IS NULL
236;';
237    $template->assign(
238      array(
239        'L_SECTION' => l10n('Representative'),
240        'L_CAT_OPTIONS_TRUE' => l10n('singly represented'),
241        'L_CAT_OPTIONS_FALSE' => l10n('randomly represented')
242        )
243      );
244    break;
245  }
246}
247display_select_cat_wrapper($query_true,array(),'category_option_true');
248display_select_cat_wrapper($query_false,array(),'category_option_false');
249
250// +-----------------------------------------------------------------------+
251// |                           sending html code                           |
252// +-----------------------------------------------------------------------+
253
254$template->assign_var_from_handle('DOUBLE_SELECT', 'double_select');
255$template->assign_var_from_handle('ADMIN_CONTENT', 'cat_options');
256?>
Note: See TracBrowser for help on using the repository browser.