From aca06a08aa8d2148ba6198811907fbb61a4e8f57 Mon Sep 17 00:00:00 2001 From: rvelices Date: Wed, 26 Jul 2006 00:51:08 +0000 Subject: feature 169: each category can have its own image order git-svn-id: http://piwigo.org/svn/trunk@1500 68402e56-0260-453c-a942-63ccdbb3a9ee --- admin/cat_modify.php | 100 +++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 100 insertions(+) (limited to 'admin/cat_modify.php') diff --git a/admin/cat_modify.php b/admin/cat_modify.php index 3d7ed8cb7..a543d0d77 100644 --- a/admin/cat_modify.php +++ b/admin/cat_modify.php @@ -80,6 +80,39 @@ if (isset($_POST['submit'])) ); } + $image_order = ''; + if ( !isset($_POST['image_order_default']) ) + { + for ($i=1; $i<=3; $i++) + { + if ( !empty($_POST['order_field_'.$i]) ) + { + if (! empty($image_order) ) + { + $image_order .= ','; + } + $image_order .= $_POST['order_field_'.$i]; + if ($_POST['order_direction_'.$i]=='DESC') + { + $image_order .= ' DESC'; + } + } + } + } + $image_order = empty($image_order) ? 'null' : "'$image_order'"; + $query = ' +UPDATE '.CATEGORIES_TABLE.' SET image_order='.$image_order.' +WHERE '; + if (isset($_POST['image_order_subcats'])) + { + $query .= 'uppercats REGEXP \'(^|,)'.$_GET['cat_id'].'(,|$)\''; + } + else + { + $query .= 'id='.$_GET['cat_id'].';'; + } + pwg_query($query); + array_push($page['infos'], $lang['editcat_confirm']); } else if (isset($_POST['set_random_representant'])) @@ -226,6 +259,9 @@ $template->assign_vars( $commentable => 'checked="checked"', $uploadable => 'checked="checked"', + 'IMG_ORDER_DEFAULT' => empty($category['image_order']) ? + 'checked="checked"' : '', + 'L_EDIT_NAME' => $lang['name'], 'L_STORAGE' => $lang['storage'], 'L_REMOTE_SITE' => $lang['remote_site'], @@ -277,6 +313,70 @@ if ($category['nb_images'] > 0) ); } +// image order management +$matches = array(); +if ( !empty( $category['image_order'] ) ) +{ + preg_match_all('/([a-z_]+) *(?:(asc|desc)(?:ending)?)? *(?:, *|$)/i', + $category['image_order'], $matches); +} + +$sort_fields = array( + '' => '', + 'date_creation' => l10n('Creation date'), + 'date_available' => l10n('Post date'), + 'average_rate' => l10n('Average rate'), + 'hit' => l10n('most_visited_cat'), + 'file' => l10n('File name'), + 'id' => 'Id', + ); + +for ($i=0; $i<3; $i++) // 3 fields +{ + $template->assign_block_vars('image_order', array('NUMBER'=>$i+1) ); + foreach ($sort_fields as $sort_field => $name) + { + $selected=''; + if ( isset($matches[1][$i]) and $matches[1][$i]==$sort_field ) + { + $selected='selected="selected"'; + } + elseif ( empty($sort_field) ) + { + $selected='selected="selected"'; + } + + $template->assign_block_vars('image_order.field', + array( + 'SELECTED' => $selected, + 'VALUE' => $sort_field, + 'OPTION' => $name + ) + ); + } + + $template->assign_block_vars('image_order.order', + array( + 'SELECTED' => + ( empty($matches[2][$i]) or strcasecmp($matches[2][$i],'ASC')==0 ) + ? 'selected="selected"' : '', + 'VALUE' => 'ASC', + 'OPTION' => 'Ascending' + ) + ); + + $template->assign_block_vars('image_order.order', + array( + 'SELECTED' => + ( isset($matches[2][$i]) and strcasecmp($matches[2][$i],'DESC')==0 ) + ? 'selected="selected"' : '', + 'VALUE' => 'DESC', + 'OPTION' => 'Descending' + ) + ); +} + + // representant management if ($category['nb_images'] > 0 or !empty($category['representative_picture_id'])) -- cgit v1.2.3