source: trunk/admin/batch_manager_unit.php @ 13018

Last change on this file since 13018 was 12922, checked in by mistic100, 12 years ago

update Piwigo headers to 2012, last change before the expected (or not) apocalypse

File size: 8.7 KB
Line 
1<?php
2// +-----------------------------------------------------------------------+
3// | Piwigo - a PHP based photo gallery                                    |
4// +-----------------------------------------------------------------------+
5// | Copyright(C) 2008-2012 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  // tags
185  $all_tags = get_all_tags();
186
187  $element_ids = array();
188
189  $is_category = false;
190  if (isset($_SESSION['bulk_manager_filter']['category'])
191      and !isset($_SESSION['bulk_manager_filter']['category_recursive']))
192  {
193    $is_category = true;
194  }
195
196  if (isset($_SESSION['bulk_manager_filter']['prefilter'])
197      and 'duplicates' == $_SESSION['bulk_manager_filter']['prefilter'])
198  {
199    $conf['order_by'] = ' ORDER BY file, id';
200  }
201
202
203  $query = '
204SELECT id,path,representative_ext,name,date_creation,comment,author,level,file
205  FROM '.IMAGES_TABLE;
206 
207  if ($is_category)
208  {
209    $category_info = get_cat_info($_SESSION['bulk_manager_filter']['category']);
210   
211    $conf['order_by'] = $conf['order_by_inside_category'];
212    if (!empty($category_info['image_order']))
213    {
214      $conf['order_by'] = ' ORDER BY '.$category_info['image_order'];
215    }
216
217    $query.= '
218    JOIN '.IMAGE_CATEGORY_TABLE.' ON id = image_id';
219  }
220
221  $query.= '
222  WHERE id IN ('.implode(',', $page['cat_elements_id']).')';
223
224  if ($is_category)
225  {
226    $query.= '
227    AND category_id = '.$_SESSION['bulk_manager_filter']['category'];
228  }
229
230  $query.= '
231  '.$conf['order_by'].'
232  LIMIT '.$page['nb_images'].' OFFSET '.$page['start'].'
233;';
234  $result = pwg_query($query);
235
236  while ($row = pwg_db_fetch_assoc($result))
237  {
238    array_push($element_ids, $row['id']);
239
240    $src = DerivativeImage::thumb_url($row);
241
242    // creation date
243    if (!empty($row['date_creation']))
244    {
245      list($year,$month,$day) = explode('-', $row['date_creation']);
246    }
247    else
248    {
249      list($year,$month,$day) = array('',0,0);
250    }
251
252    $query = '
253SELECT
254    id,
255    name
256  FROM '.IMAGE_TAG_TABLE.' AS it
257    JOIN '.TAGS_TABLE.' AS t ON t.id = it.tag_id
258  WHERE image_id = '.$row['id'].'
259;';
260    $tag_selection = get_taglist($query);
261
262    $template->append(
263      'elements',
264      array(
265        'ID' => $row['id'],
266        'TN_SRC' => $src,
267        'FILE_SRC' => $row['path'],
268        'LEGEND' => !empty($row['name']) ?
269            $row['name'] : get_name_from_file($row['file']),
270        'U_EDIT' =>
271            PHPWG_ROOT_PATH.'admin.php?page=picture_modify'.
272            '&amp;image_id='.$row['id'],
273        'NAME' => !empty($row['name'])?$row['name']:'',
274        'AUTHOR' => !empty($row['author'])?htmlspecialchars($row['author']):'',
275        'LEVEL' => !empty($row['level'])?$row['level']:'0',
276        'DESCRIPTION' => !empty($row['comment'])?$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.