source: branches/2.5/admin/batch_manager_unit.php @ 21187

Last change on this file since 21187 was 19703, checked in by plg, 12 years ago

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

File size: 8.6 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
24/**
25 * Management of elements set. Elements can belong to a category or to the
26 * user caddie.
27 *
28 */
29
30if (!defined('PHPWG_ROOT_PATH'))
31{
32  die('Hacking attempt!');
33}
34
35include_once(PHPWG_ROOT_PATH.'admin/include/functions.php');
36
37// +-----------------------------------------------------------------------+
38// | Check Access and exit when user status is not ok                      |
39// +-----------------------------------------------------------------------+
40check_status(ACCESS_ADMINISTRATOR);
41
42trigger_action('loc_begin_element_set_unit');
43
44// +-----------------------------------------------------------------------+
45// |                        unit mode form submission                      |
46// +-----------------------------------------------------------------------+
47
48if (isset($_POST['submit']))
49{
50  $collection = explode(',', $_POST['element_ids']);
51
52  $datas = array();
53
54  $query = '
55SELECT id, date_creation
56  FROM '.IMAGES_TABLE.'
57  WHERE id IN ('.implode(',', $collection).')
58;';
59  $result = pwg_query($query);
60
61  while ($row = pwg_db_fetch_assoc($result))
62  {
63    $data = array();
64
65    $data['id'] = $row['id'];
66    $data['name'] = $_POST['name-'.$row['id']];
67    $data['author'] = $_POST['author-'.$row['id']];
68    $data['level'] = $_POST['level-'.$row['id']];
69
70    foreach (array('name', 'level') as $field)
71    {
72      if (!empty($_POST[$field.'-'.$row['id']]))
73      {
74        $data[$field] = strip_tags($_POST[$field.'-'.$row['id']]);
75      }
76    }
77
78    if ($conf['allow_html_descriptions'])
79    {
80      $data['comment'] = @$_POST['description-'.$row['id']];
81    }
82    else
83    {
84      $data['comment'] = strip_tags(@$_POST['description-'.$row['id']]);
85    }
86
87    if (isset($_POST['date_creation_action-'.$row['id']]))
88    {
89      if ('set' == $_POST['date_creation_action-'.$row['id']])
90      {
91        $data['date_creation'] =
92          $_POST['date_creation_year-'.$row['id']]
93            .'-'.$_POST['date_creation_month-'.$row['id']]
94            .'-'.$_POST['date_creation_day-'.$row['id']];
95      }
96      else if ('unset' == $_POST['date_creation_action-'.$row['id']])
97      {
98        $data['date_creation'] = '';
99      }
100    }
101    else
102    {
103      $data['date_creation'] = $row['date_creation'];
104    }
105
106    array_push($datas, $data);
107
108    // tags management
109    $tag_ids = array();
110    if (!empty($_POST[ 'tags-'.$row['id'] ]))
111    {
112      $tag_ids = get_tag_ids($_POST[ 'tags-'.$row['id'] ]);
113    }
114    set_tags($tag_ids, $row['id']);
115  }
116
117  mass_updates(
118    IMAGES_TABLE,
119    array(
120      'primary' => array('id'),
121      'update' => array('name','author','level','comment','date_creation')
122      ),
123    $datas
124    );
125
126  array_push($page['infos'], l10n('Photo informations updated'));
127}
128
129// +-----------------------------------------------------------------------+
130// |                             template init                             |
131// +-----------------------------------------------------------------------+
132
133$template->set_filenames(
134  array('batch_manager_unit' => 'batch_manager_unit.tpl'));
135
136$base_url = PHPWG_ROOT_PATH.'admin.php';
137
138$month_list = $lang['month'];
139$month_list[0]='------------';
140ksort($month_list);
141
142$template->assign(
143  array(
144    'U_ELEMENTS_PAGE' => $base_url.get_query_string_diff(array('display','start')),
145    'F_ACTION'=>$base_url.get_query_string_diff(array()),   
146    'month_list' => $month_list,
147    'level_options' => get_privacy_level_options(),
148    )
149  );
150
151// +-----------------------------------------------------------------------+
152// |                        global mode thumbnails                         |
153// +-----------------------------------------------------------------------+
154
155// how many items to display on this page
156if (!empty($_GET['display']))
157{
158  if ('all' == $_GET['display'])
159  {
160    $page['nb_images'] = count($page['cat_elements_id']);
161  }
162  else
163  {
164    $page['nb_images'] = intval($_GET['display']);
165  }
166}
167else
168{
169  $page['nb_images'] = 5;
170}
171
172
173
174if (count($page['cat_elements_id']) > 0)
175{
176  $nav_bar = create_navigation_bar(
177    $base_url.get_query_string_diff(array('start')),
178    count($page['cat_elements_id']),
179    $page['start'],
180    $page['nb_images']
181    );
182  $template->assign(array('navbar' => $nav_bar));
183
184  $element_ids = array();
185
186  $is_category = false;
187  if (isset($_SESSION['bulk_manager_filter']['category'])
188      and !isset($_SESSION['bulk_manager_filter']['category_recursive']))
189  {
190    $is_category = true;
191  }
192
193  if (isset($_SESSION['bulk_manager_filter']['prefilter'])
194      and 'duplicates' == $_SESSION['bulk_manager_filter']['prefilter'])
195  {
196    $conf['order_by'] = ' ORDER BY file, id';
197  }
198
199
200  $query = '
201SELECT *
202  FROM '.IMAGES_TABLE;
203 
204  if ($is_category)
205  {
206    $category_info = get_cat_info($_SESSION['bulk_manager_filter']['category']);
207   
208    $conf['order_by'] = $conf['order_by_inside_category'];
209    if (!empty($category_info['image_order']))
210    {
211      $conf['order_by'] = ' ORDER BY '.$category_info['image_order'];
212    }
213
214    $query.= '
215    JOIN '.IMAGE_CATEGORY_TABLE.' ON id = image_id';
216  }
217
218  $query.= '
219  WHERE id IN ('.implode(',', $page['cat_elements_id']).')';
220
221  if ($is_category)
222  {
223    $query.= '
224    AND category_id = '.$_SESSION['bulk_manager_filter']['category'];
225  }
226
227  $query.= '
228  '.$conf['order_by'].'
229  LIMIT '.$page['nb_images'].' OFFSET '.$page['start'].'
230;';
231  $result = pwg_query($query);
232
233  while ($row = pwg_db_fetch_assoc($result))
234  {
235    array_push($element_ids, $row['id']);
236
237    $src_image = new SrcImage($row);
238
239    // creation date
240    if (!empty($row['date_creation']))
241    {
242      list($year,$month,$day) = explode('-', $row['date_creation']);
243    }
244    else
245    {
246      list($year,$month,$day) = array('',0,0);
247    }
248
249    $query = '
250SELECT
251    id,
252    name
253  FROM '.IMAGE_TAG_TABLE.' AS it
254    JOIN '.TAGS_TABLE.' AS t ON t.id = it.tag_id
255  WHERE image_id = '.$row['id'].'
256;';
257    $tag_selection = get_taglist($query);
258
259    $legend = render_element_name($row);
260    if ($legend != get_name_from_file($row['file']))
261    {
262      $legend.= ' ('.$row['file'].')';
263    }
264
265    $template->append(
266      'elements', array_merge($row,
267      array(
268        'ID' => $row['id'],
269        'TN_SRC' => DerivativeImage::url(IMG_THUMB, $src_image),
270        'FILE_SRC' => DerivativeImage::url(IMG_LARGE, $src_image),
271        'LEGEND' => $legend,
272        'U_EDIT' => get_root_url().'admin.php?page=photo-'.$row['id'],
273        'NAME' => htmlspecialchars(@$row['name']),
274        'AUTHOR' => htmlspecialchars(@$row['author']),
275        'LEVEL' => !empty($row['level'])?$row['level']:'0',
276        'DESCRIPTION' => htmlspecialchars(@$row['comment']),
277        'DATE_CREATION_YEAR' => $year,
278        'DATE_CREATION_MONTH' => (int)$month,
279        'DATE_CREATION_DAY' => (int)$day,
280        'TAGS' => $tag_selection,
281        )
282      ));
283  }
284
285  $template->assign('ELEMENT_IDS', implode(',', $element_ids));
286}
287
288trigger_action('loc_end_element_set_unit');
289
290// +-----------------------------------------------------------------------+
291// |                           sending html code                           |
292// +-----------------------------------------------------------------------+
293
294$template->assign_var_from_handle('ADMIN_CONTENT', 'batch_manager_unit');
295?>
Note: See TracBrowser for help on using the repository browser.