Skip to content

Commit

Permalink
merge r3453 from branch 2.0 to trunk
Browse files Browse the repository at this point in the history
feature 1033 added: new API method pwg.categories.setInfo makes possible to
change the name and comment of a given category.


git-svn-id: http://piwigo.org/svn/trunk@3454 68402e56-0260-453c-a942-63ccdbb3a9ee
  • Loading branch information
plegall committed Jun 24, 2009
1 parent ed7f7a5 commit 9b16d67
Show file tree
Hide file tree
Showing 3 changed files with 89 additions and 6 deletions.
53 changes: 53 additions & 0 deletions include/ws_functions.inc.php
Expand Up @@ -1733,6 +1733,59 @@ function ws_add_image_category_relations($image_id, $categories_string)
}
}

function ws_categories_setInfo($params, &$service)
{
global $conf;
if (!is_admin() || is_adviser() )
{
return new PwgError(401, 'Access denied');
}

// category_id
// name
// comment

$params['category_id'] = (int)$params['category_id'];
if ($params['category_id'] <= 0)
{
return new PwgError(WS_ERR_INVALID_PARAM, "Invalid category_id");
}

// database registration
$update = array(
'id' => $params['category_id'],
);

$info_columns = array(
'name',
'comment',
);

$perform_update = false;
foreach ($info_columns as $key)
{
if (isset($params[$key]))
{
$perform_update = true;
$update[$key] = $params[$key];
}
}

if ($perform_update)
{
include_once(PHPWG_ROOT_PATH.'admin/include/functions.php');
mass_updates(
CATEGORIES_TABLE,
array(
'primary' => array('id'),
'update' => array_diff(array_keys($update), array('id'))
),
array($update)
);
}

}

function ws_logfile($string)
{
return true;
Expand Down
30 changes: 24 additions & 6 deletions tools/piwigo_remote.pl
Expand Up @@ -24,19 +24,37 @@
my %opt = ();
GetOptions(
\%opt,
qw/action=s file=s thumbnail=s high=s original=s categories=s chunk_size=i define=s%/
qw/
action=s
file=s
thumbnail=s
high=s
original=s
categories=s
chunk_size=i
base_url=s
username=s
password=s
define=s%
/
);

our $ua = LWP::UserAgent->new;
$ua->cookie_jar({});

my %conf;
$conf{base_url} = 'http://localhost/piwigo/2.0';
$conf{response_format} = 'json';
$conf{username} = 'plg';
$conf{password} = 'plg';
$conf{limit} = 10;
$conf{chunk_size} = defined $opt{chunk_size} ? $opt{chunk_size} : 500_000;

my %conf_default = (
base_url => 'http://localhost/piwigo/2.0',
username => 'plg',
password => 'plg',
chunk_size => 500_000,
);
foreach my $conf_key (keys %conf_default) {
$conf{$conf_key} = defined $opt{$conf_key} ? $opt{$conf_key} : $conf_default{$conf_key}
}

my $result = undef;
my $query = undef;
Expand Down Expand Up @@ -216,7 +234,7 @@
# print Dumper($response);
}

if ($opt{action} eq 'pwg.images.setInfo') {
if ($opt{action} eq 'pwg.images.setInfo' or $opt{action} eq 'pwg.categories.setInfo') {
$form = {
method => $opt{action},
};
Expand Down
12 changes: 12 additions & 0 deletions ws.php
Expand Up @@ -270,6 +270,18 @@ function ws_addDefaultMethods( $arr )
'POST method only. Admin only
<br><b>categories</b> is a string list "category_id[,rank];category_id[,rank]" The rank is optional and is equivalent to "auto" if not given.'
);

$service->addMethod(
'pwg.categories.setInfo',
'ws_categories_setInfo',
array(
'category_id' => array(),

'name' => array('default' => null),
'comment' => array('default' => null),
),
'POST method only.'
);
}

add_event_handler('ws_add_methods', 'ws_addDefaultMethods');
Expand Down

0 comments on commit 9b16d67

Please sign in to comment.