From d55107e3e3511e4b2c52b56aaa1d6f7c6fd46b27 Mon Sep 17 00:00:00 2001 From: plegall Date: Fri, 19 Sep 2008 22:59:41 +0000 Subject: improvement: instead of sending the images_max_rank of each category in pwg.categories.getList so that you can correctly set the rank in pwg.images.add, the rank is calculated automatically in pwg.images.add so that the image is added at the end of the category. git-svn-id: http://piwigo.org/svn/trunk@2553 68402e56-0260-453c-a942-63ccdbb3a9ee --- include/ws_functions.inc.php | 40 +++++++++++++++++++--------------------- tools/piwigo_remote.pl | 4 ++-- 2 files changed, 21 insertions(+), 23 deletions(-) diff --git a/include/ws_functions.inc.php b/include/ws_functions.inc.php index 5d12bd5f2..4440b15ac 100644 --- a/include/ws_functions.inc.php +++ b/include/ws_functions.inc.php @@ -364,20 +364,6 @@ function ws_categories_getList($params, &$service) { global $user,$conf; - $query = ' -SELECT - category_id, - MAX(rank) AS max_rank - FROM '.IMAGE_CATEGORY_TABLE.' - WHERE rank IS NOT NULL - GROUP BY category_id -;'; - $max_image_rank_of = simple_hash_from_query( - $query, - 'category_id', - 'max_rank' - ); - $where = array(); if (!$params['recursive']) @@ -429,11 +415,6 @@ SELECT id, name, permalink, uppercats, global_rank, { $row[$key] = (int)$row[$key]; } - - if (isset($max_image_rank_of[ $row['id'] ])) - { - $row['images_max_rank'] = $max_image_rank_of[ $row['id'] ]; - } array_push($cats, $row); } @@ -450,7 +431,6 @@ SELECT id, name, permalink, uppercats, global_rank, 'nb_categories', 'date_last', 'max_date_last', - 'images_max_rank', ) ) ); @@ -862,6 +842,7 @@ function ws_images_add($params, &$service) // $fh_log = fopen('/tmp/php.log', 'w'); // fwrite($fh_log, time()."\n"); + // fwrite($fh_log, 'input rank :'.$params['rank']."\n"); // fwrite($fh_log, 'input: '.$params['file_sum']."\n"); // fwrite($fh_log, 'input: '.$params['thumbnail_sum']."\n"); @@ -958,8 +939,25 @@ function ws_images_add($params, &$service) $insert = array( 'category_id' => $params['category_id'], 'image_id' => $image_id, - 'rank' => $params['rank'], ); + + if ('auto' == $params['rank']) + { + $query = ' +SELECT + MAX(rank) AS max_rank + FROM '.IMAGE_CATEGORY_TABLE.' + WHERE rank IS NOT NULL + AND category_id = '.$params['category_id'].' +;'; + $row = mysql_fetch_assoc(pwg_query($query)); + $insert['rank'] = isset($row['max_rank']) ? $row['max_rank']+1 : 1; + } + else if (is_numeric($params['rank'])) + { + $insert['rank'] = (int)$params['rank']; + } + mass_inserts( IMAGE_CATEGORY_TABLE, array_keys($insert), diff --git a/tools/piwigo_remote.pl b/tools/piwigo_remote.pl index 582aca294..dcc6ba2cd 100644 --- a/tools/piwigo_remote.pl +++ b/tools/piwigo_remote.pl @@ -10,7 +10,7 @@ use Getopt::Long; my %opt = (); GetOptions( \%opt, - qw/action=s file=s thumbnail=s category_id=i name=s rank=i/ + qw/action=s file=s thumbnail=s category_id=i name=s rank=s/ ); our $ua = LWP::UserAgent->new; @@ -61,7 +61,7 @@ if ($opt{action} eq 'pwg.images.add') { thumbnail_content => $thumbnail_content, category_id => $opt{category_id}, name => $opt{name}, - rank => defined($opt{rank}) ? $opt{rank} : 1, + rank => defined($opt{rank}) ? $opt{rank} : 'auto', }; my $response = $ua->post( -- cgit v1.2.3