From 6df515a54ff63812076dfbf8dc6514fa9416b08a Mon Sep 17 00:00:00 2001 From: plegall Date: Wed, 24 Sep 2008 20:25:39 +0000 Subject: new: WebService method pwg.categories.add so that pLoader can create a virtual category. git-svn-id: http://piwigo.org/svn/trunk@2583 68402e56-0260-453c-a942-63ccdbb3a9ee --- include/ws_functions.inc.php | 22 ++++++++++++++++++++++ tools/piwigo_remote.pl | 16 ++++++++++++++++ ws.php | 10 ++++++++++ 3 files changed, 48 insertions(+) diff --git a/include/ws_functions.inc.php b/include/ws_functions.inc.php index 09f6440d4..203367356 100644 --- a/include/ws_functions.inc.php +++ b/include/ws_functions.inc.php @@ -1335,4 +1335,26 @@ LIMIT '.$params['per_page']*$params['page'].','.$params['per_page']; ) ); } + +function ws_categories_add($params, &$service) +{ + if (!is_admin()) + { + return new PwgError(401, 'Access denied'); + } + + include_once(PHPWG_ROOT_PATH.'admin/include/functions.php'); + + $creation_output = create_virtual_category( + $params['name'], + $params['parent'] + ); + + if (isset($creation_output['error'])) + { + return new PwgError(500, $creation_output['error']); + } + + return $creation_output; +} ?> diff --git a/tools/piwigo_remote.pl b/tools/piwigo_remote.pl index 30b8743b4..3c611fed0 100644 --- a/tools/piwigo_remote.pl +++ b/tools/piwigo_remote.pl @@ -116,6 +116,22 @@ if ($opt{action} eq 'pwg.tags.list') { print $t; } +if ($opt{action} eq 'pwg.categories.add') { + $form = { + method => 'pwg.categories.add', + name => $opt{define}{name}, + parent => $opt{define}{parent}, + }; + + my $response = $ua->post( + $conf{base_url}.'/ws.php?format=json', + $form + ); + + use Data::Dumper; + print Dumper(from_json($response->content)); +} + $query = pwg_ws_get_query( method => 'pwg.session.logout' ); diff --git a/ws.php b/ws.php index 6aa7b3f64..5fdccff3a 100644 --- a/ws.php +++ b/ws.php @@ -201,6 +201,16 @@ function ws_addDefaultMethods( $arr ) array(), 'administration method only' ); + + $service->addMethod( + 'pwg.categories.add', + 'ws_categories_add', + array( + 'name' => array(), + 'parent' => array('default' => null), + ), + 'administration method only' + ); } add_event_handler('ws_add_methods', 'ws_addDefaultMethods'); -- cgit v1.2.3