2007-01-06 11:13:08 +00:00
< ? php
// +-----------------------------------------------------------------------+
2011-01-18 00:02:52 +00:00
// | Piwigo - a PHP based photo gallery |
2008-04-04 22:57:23 +00:00
// +-----------------------------------------------------------------------+
2011-01-18 00:02:52 +00:00
// | Copyright(C) 2008-2011 Piwigo Team http://piwigo.org |
2008-04-04 22:57:23 +00:00
// | Copyright(C) 2003-2008 PhpWebGallery Team http://phpwebgallery.net |
// | Copyright(C) 2002-2003 Pierrick LE GALL http://le-gall.net/pierrick |
// +-----------------------------------------------------------------------+
// | This program is free software; you can redistribute it and/or modify |
// | it under the terms of the GNU General Public License as published by |
// | the Free Software Foundation |
2007-01-06 11:13:08 +00:00
// | |
// | This program is distributed in the hope that it will be useful, but |
// | WITHOUT ANY WARRANTY; without even the implied warranty of |
// | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU |
// | General Public License for more details. |
// | |
// | You should have received a copy of the GNU General Public License |
// | along with this program; if not, write to the Free Software |
// | Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, |
// | USA. |
// +-----------------------------------------------------------------------+
define ( 'PHPWG_ROOT_PATH' , './' );
include_once ( PHPWG_ROOT_PATH . 'include/common.inc.php' );
2008-05-02 21:56:21 +00:00
check_status ( ACCESS_FREE );
2007-01-06 11:13:08 +00:00
include_once ( PHPWG_ROOT_PATH . 'include/ws_core.inc.php' );
2007-02-06 01:02:06 +00:00
if ( ! $conf [ 'allow_web_services' ] )
{
page_forbidden ( 'Web services are disabled' );
}
2007-01-29 20:38:08 +00:00
/**
* event handler that registers standard methods with the web service
*/
2007-01-06 11:13:08 +00:00
function ws_addDefaultMethods ( $arr )
{
include_once ( PHPWG_ROOT_PATH . 'include/ws_functions.inc.php' );
2007-02-22 01:12:32 +00:00
global $conf , $user ;
2007-01-06 11:13:08 +00:00
$service = & $arr [ 0 ];
$service -> addMethod ( 'pwg.getVersion' , 'ws_getVersion' , null ,
'retrieves the PWG version' );
2011-04-03 12:36:32 +00:00
$service -> addMethod ( 'pwg.getInfos' , 'ws_getInfos' , null ,
'retrieves general informations' );
2007-01-06 11:13:08 +00:00
2008-07-15 01:29:23 +00:00
$service -> addMethod ( 'pwg.caddie.add' , 'ws_caddie_add' ,
2008-07-12 00:30:27 +00:00
array (
'image_id' => array ( 'flags' => WS_PARAM_FORCE_ARRAY ),
),
'adds the elements to the caddie' );
2007-01-06 11:13:08 +00:00
$service -> addMethod ( 'pwg.categories.getImages' , 'ws_categories_getImages' ,
array (
'cat_id' => array ( 'default' => 0 , 'flags' => WS_PARAM_FORCE_ARRAY ),
'recursive' => array ( 'default' => false ),
2007-02-06 01:02:06 +00:00
'per_page' => array ( 'default' => 100 , 'maxValue' => $conf [ 'ws_max_images_per_page' ]),
2007-01-06 11:13:08 +00:00
'page' => array ( 'default' => 0 ),
'order' => array ( 'default' => null ),
'f_min_rate' => array ( 'default' => null ),
'f_max_rate' => array ( 'default' => null ),
'f_min_hit' => array ( 'default' => null ),
'f_max_hit' => array ( 'default' => null ),
'f_min_date_available' => array ( 'default' => null ),
'f_max_date_available' => array ( 'default' => null ),
'f_min_date_created' => array ( 'default' => null ),
'f_max_date_created' => array ( 'default' => null ),
'f_min_ratio' => array ( 'default' => null ),
'f_max_ratio' => array ( 'default' => null ),
'f_with_thumbnail' => array ( 'default' => false ),
),
' Returns elements for the corresponding categories .
2009-03-09 19:41:45 +00:00
< br >< b > cat_id </ b > can be empty if < b > recursive </ b > is true . Can be sent as an array .
2011-08-02 19:20:50 +00:00
< br >< b > order </ b > comma separated fields for sorting ( file , id , rating_score , ... ) '
2007-01-06 11:13:08 +00:00
);
$service -> addMethod ( 'pwg.categories.getList' , 'ws_categories_getList' ,
array (
'cat_id' => array ( 'default' => 0 ),
'recursive' => array ( 'default' => false ),
'public' => array ( 'default' => false ),
2011-05-31 20:25:40 +00:00
'tree_output' => array ( 'default' => false ),
2007-01-06 11:13:08 +00:00
),
2011-05-31 20:25:40 +00:00
'retrieves a list of categories (tree_output option only compatible with json/php output format' );
2007-01-06 11:13:08 +00:00
2007-02-22 01:12:32 +00:00
$service -> addMethod ( 'pwg.images.addComment' , 'ws_images_addComment' ,
array (
'image_id' => array (),
2007-06-05 22:01:15 +00:00
'author' => array ( 'default' => is_a_guest () ? 'guest' : $user [ 'username' ]),
2007-02-22 01:12:32 +00:00
'content' => array (),
'key' => array (),
),
'add a comment to an image' );
2007-01-06 11:13:08 +00:00
$service -> addMethod ( 'pwg.images.getInfo' , 'ws_images_getInfo' ,
2007-02-22 01:12:32 +00:00
array (
'image_id' => array (),
'comments_page' => array ( 'default' => 0 ),
2008-07-15 01:29:23 +00:00
'comments_per_page' => array (
'default' => $conf [ 'nb_comment_page' ],
2007-02-22 01:12:32 +00:00
'maxValue' => 2 * $conf [ 'nb_comment_page' ],
),
),
2007-01-06 11:13:08 +00:00
'retrieves information about the given photo' );
2008-07-15 01:29:23 +00:00
$service -> addMethod ( 'pwg.images.rate' , 'ws_images_rate' ,
array (
'image_id' => array (),
'rate' => array (),
),
'rate the image' );
2007-02-19 16:25:47 +00:00
$service -> addMethod ( 'pwg.images.search' , 'ws_images_search' ,
array (
'query' => array (),
'per_page' => array ( 'default' => 100 , 'maxValue' => $conf [ 'ws_max_images_per_page' ]),
'page' => array ( 'default' => 0 ),
'order' => array ( 'default' => null ),
'f_min_rate' => array ( 'default' => null ),
'f_max_rate' => array ( 'default' => null ),
'f_min_hit' => array ( 'default' => null ),
'f_max_hit' => array ( 'default' => null ),
'f_min_date_available' => array ( 'default' => null ),
'f_max_date_available' => array ( 'default' => null ),
'f_min_date_created' => array ( 'default' => null ),
'f_max_date_created' => array ( 'default' => null ),
'f_min_ratio' => array ( 'default' => null ),
'f_max_ratio' => array ( 'default' => null ),
'f_with_thumbnail' => array ( 'default' => false ),
),
'Returns elements for the corresponding query search.'
);
2008-09-11 01:20:25 +00:00
2008-07-30 21:53:00 +00:00
$service -> addMethod (
'pwg.images.setPrivacyLevel' ,
'ws_images_setPrivacyLevel' ,
array (
'image_id' => array ( 'flags' => WS_PARAM_FORCE_ARRAY ),
'level' => array ( 'maxValue' => $conf [ 'available_permission_levels' ]),
2008-07-02 01:11:26 +00:00
),
2009-12-18 21:12:41 +00:00
'sets the privacy levels for the images (POST method only)'
2008-07-30 21:53:00 +00:00
);
2007-02-19 16:25:47 +00:00
2011-06-14 13:54:05 +00:00
$service -> addMethod (
'pwg.images.setRank' ,
'ws_images_setRank' ,
array (
'image_id' => array (),
'category_id' => array (),
'rank' => array (),
),
'sets the rank of a photo for a given album (POST method only, for admins)'
);
2007-01-06 11:13:08 +00:00
$service -> addMethod ( 'pwg.session.getStatus' , 'ws_session_getStatus' , null , '' );
$service -> addMethod ( 'pwg.session.login' , 'ws_session_login' ,
array ( 'username' , 'password' ),
'POST method only' );
$service -> addMethod ( 'pwg.session.logout' , 'ws_session_logout' , null , '' );
$service -> addMethod ( 'pwg.tags.getList' , 'ws_tags_getList' ,
array ( 'sort_by_counter' => array ( 'default' => false ) ),
'retrieves a list of available tags' );
$service -> addMethod ( 'pwg.tags.getImages' , 'ws_tags_getImages' ,
array (
'tag_id' => array ( 'default' => null , 'flags' => WS_PARAM_FORCE_ARRAY ),
'tag_url_name' => array ( 'default' => null , 'flags' => WS_PARAM_FORCE_ARRAY ),
'tag_name' => array ( 'default' => null , 'flags' => WS_PARAM_FORCE_ARRAY ),
'tag_mode_and' => array ( 'default' => false ),
2007-02-06 01:02:06 +00:00
'per_page' => array ( 'default' => 100 , 'maxValue' => $conf [ 'ws_max_images_per_page' ]),
2007-01-06 11:13:08 +00:00
'page' => array ( 'default' => 0 ),
'order' => array ( 'default' => null ),
'f_min_rate' => array ( 'default' => null ),
'f_max_rate' => array ( 'default' => null ),
'f_min_hit' => array ( 'default' => null ),
'f_max_hit' => array ( 'default' => null ),
'f_min_date_available' => array ( 'default' => null ),
'f_max_date_available' => array ( 'default' => null ),
'f_min_date_created' => array ( 'default' => null ),
'f_max_date_created' => array ( 'default' => null ),
'f_min_ratio' => array ( 'default' => null ),
'f_max_ratio' => array ( 'default' => null ),
'f_with_thumbnail' => array ( 'default' => false ),
),
'Returns elements for the corresponding tags. Note that tag_id, tag_url_name, tag_name an be arrays. Fill at least one of them. '
);
2008-07-30 21:53:00 +00:00
2009-03-12 23:14:50 +00:00
$service -> addMethod (
'pwg.images.addChunk' ,
'ws_images_add_chunk' ,
array (
'data' => array (),
'original_sum' => array (),
'type' => array (),
'position' => array (),
),
'POST method only. For admin only.'
);
2009-11-22 23:59:14 +00:00
$service -> addMethod (
'pwg.images.addFile' ,
'ws_images_addFile' ,
array (
'image_id' => array (),
'type' => array (),
'sum' => array (),
),
'Add or update a file for an existing photo. pwg.images.addChunk must have been called before (maybe several times)'
);
2009-03-12 23:14:50 +00:00
2008-07-30 21:53:00 +00:00
$service -> addMethod (
'pwg.images.add' ,
'ws_images_add' ,
array (
2008-09-22 21:47:03 +00:00
'file_sum' => array (),
'thumbnail_sum' => array (),
2008-10-05 21:22:57 +00:00
'high_sum' => array ( 'default' => null ),
2009-01-08 23:33:35 +00:00
'original_sum' => array (),
2010-02-19 09:20:11 +00:00
'original_filename' => array ( 'default' => null ),
2008-09-22 21:47:03 +00:00
'name' => array ( 'default' => null ),
'author' => array ( 'default' => null ),
'date_creation' => array ( 'default' => null ),
'comment' => array ( 'default' => null ),
'categories' => array ( 'default' => null ),
'tag_ids' => array ( 'default' => null ),
'level' => array (
'default' => 0 ,
'maxValue' => $conf [ 'available_permission_levels' ]
),
2008-07-30 21:53:00 +00:00
),
2008-09-22 21:47:03 +00:00
' POST method only .
2009-03-09 19:41:45 +00:00
< 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 . '
2008-07-30 21:53:00 +00:00
);
2008-09-21 20:42:17 +00:00
2010-12-23 10:22:51 +00:00
$service -> addMethod (
'pwg.images.addSimple' ,
'ws_images_addSimple' ,
array (
'category' => array ( 'default' => null ),
'name' => array ( 'default' => null ),
'author' => array ( 'default' => null ),
'comment' => array ( 'default' => null ),
'level' => array (
'default' => 0 ,
'maxValue' => $conf [ 'available_permission_levels' ]
),
'tags' => array ( 'default' => null ),
2011-02-11 22:57:23 +00:00
'image_id' => array ( 'default' => null ),
2010-12-23 10:22:51 +00:00
),
2011-02-11 22:57:23 +00:00
'POST method only.<br>Use the <b>image</b> field for uploading file.<br>Set the form encoding to "form-data"<br><b>category</b> is the numeric identifier of the destination category.<br>You can update an existing photo if you define an existing image_id.'
2010-12-23 10:22:51 +00:00
);
2010-12-23 20:51:33 +00:00
$service -> addMethod (
'pwg.images.delete' ,
'ws_images_delete' ,
array (
'image_id' => array ( 'default' => 0 ),
2011-04-19 20:06:39 +00:00
'pwg_token' => array (),
2010-12-23 20:51:33 +00:00
),
'Delete photos. You can give several image_ids, comma separated'
);
2008-09-21 20:42:17 +00:00
$service -> addMethod (
'pwg.categories.getAdminList' ,
'ws_categories_getAdminList' ,
array (),
'administration method only'
);
2008-09-24 20:25:39 +00:00
$service -> addMethod (
'pwg.categories.add' ,
'ws_categories_add' ,
array (
'name' => array (),
'parent' => array ( 'default' => null ),
),
'administration method only'
);
2008-09-24 21:30:33 +00:00
2010-12-23 20:51:33 +00:00
$service -> addMethod (
'pwg.categories.delete' ,
'ws_categories_delete' ,
array (
'category_id' => array ( 'default' => 0 ),
2011-04-19 20:06:39 +00:00
'pwg_token' => array (),
2010-12-23 20:51:33 +00:00
'photo_deletion_mode' => array ( 'default' => 'delete_orphans' ),
),
' Delete categories . You can give several category_ids , comma separated .
< br >< b > photo_deletion_mode </ b > can be " no_delete " ( may create orphan photos ), " delete_orphans " ( default mode , only deletes photos linked to no other album ) or " force_delete " ( delete all photos , even those linked to other albums ) '
);
2010-12-23 22:41:28 +00:00
$service -> addMethod (
'pwg.categories.move' ,
'ws_categories_move' ,
array (
'category_id' => array ( 'default' => 0 ),
'parent' => array ( 'default' => 0 ),
2011-04-19 20:06:39 +00:00
'pwg_token' => array (),
2010-12-23 22:41:28 +00:00
),
'Move categories. You can give several category_ids, comma separated. Set parent as 0 to move to gallery root. Only virtual categories can be moved.'
);
2011-07-14 21:44:14 +00:00
$service -> addMethod (
'pwg.categories.setRepresentative' ,
'ws_categories_setRepresentative' ,
array (
'category_id' => array ( 'default' => 0 ),
'image_id' => array ( 'default' => 0 ),
),
'Set the representative photo for an album. The photo doesn\'t have to belong to the album. POST method only. Administration method only.'
);
2008-09-24 21:30:33 +00:00
$service -> addMethod (
'pwg.tags.getAdminList' ,
'ws_tags_getAdminList' ,
array (),
'administration method only'
);
2008-10-01 21:08:51 +00:00
$service -> addMethod (
'pwg.tags.add' ,
'ws_tags_add' ,
array (
'name' => array (),
),
'administration method only'
);
2008-10-07 22:01:14 +00:00
$service -> addMethod (
'pwg.images.exist' ,
'ws_images_exist' ,
array (
2010-02-23 14:41:45 +00:00
'md5sum_list' => array ( 'default' => null ),
'filename_list' => array ( 'default' => null ),
2008-10-07 22:01:14 +00:00
),
'check existence of a photo list'
);
2008-12-03 22:55:17 +00:00
2009-11-22 23:58:44 +00:00
$service -> addMethod (
'pwg.images.checkFiles' ,
'ws_images_checkFiles' ,
array (
'image_id' => array (),
'thumbnail_sum' => array ( 'default' => null ),
'file_sum' => array ( 'default' => null ),
'high_sum' => array ( 'default' => null ),
),
'check if you have updated version of your files for a given photo, for each requested file type, the answer can be "missing", "equals" or "differs"'
);
2010-05-03 09:09:40 +00:00
$service -> addMethod (
'pwg.images.checkUpload' ,
'ws_images_checkUpload' ,
null ,
'check if Piwigo is ready for upload'
);
2008-12-03 22:55:17 +00:00
$service -> addMethod (
'pwg.images.setInfo' ,
'ws_images_setInfo' ,
array (
'image_id' => array (),
2009-12-18 21:12:41 +00:00
2008-12-03 22:55:17 +00:00
'name' => array ( 'default' => null ),
'author' => array ( 'default' => null ),
'date_creation' => array ( 'default' => null ),
'comment' => array ( 'default' => null ),
'categories' => array ( 'default' => null ),
'tag_ids' => array ( 'default' => null ),
'level' => array (
2011-06-14 12:07:32 +00:00
'default' => null ,
2008-12-03 22:55:17 +00:00
'maxValue' => $conf [ 'available_permission_levels' ]
),
2009-12-09 22:19:06 +00:00
'single_value_mode' => array ( 'default' => 'fill_if_empty' ),
'multiple_value_mode' => array ( 'default' => 'append' ),
2008-12-03 22:55:17 +00:00
),
' POST method only . Admin only
2009-12-09 22:19:06 +00:00
< 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 .
< br >< b > single_value_mode </ b > can be " fill_if_empty " ( only use the input value if the corresponding values is currently empty ) or " replace " ( overwrite any existing value ) and applies to single values properties like name / author / date_creation / comment
< br >< b > multiple_value_mode </ b > can be " append " ( no change on existing values , add the new values ) or " replace " and applies to multiple values properties like tag_ids / categories '
2008-12-03 22:55:17 +00:00
);
2009-12-18 21:12:41 +00:00
2009-06-24 23:01:35 +00:00
$service -> addMethod (
'pwg.categories.setInfo' ,
'ws_categories_setInfo' ,
array (
'category_id' => array (),
2009-12-18 21:12:41 +00:00
2009-06-24 23:01:35 +00:00
'name' => array ( 'default' => null ),
'comment' => array ( 'default' => null ),
),
'POST method only.'
);
2010-12-23 23:12:03 +00:00
$service -> addMethod (
'pwg.plugins.getList' ,
'ws_plugins_getList' ,
array (),
' get the list of plugin with id , name , version , state and description
< br > administration status required '
);
$service -> addMethod (
'pwg.plugins.performAction' ,
'ws_plugins_performAction' ,
array (
2011-04-19 20:06:39 +00:00
'action' => array (),
'plugin' => array (),
'pwg_token' => array (),
2010-12-23 23:12:03 +00:00
),
' install / activate / deactivate / uninstall / delete a plugin
< br > administration status required '
);
2010-12-26 22:52:35 +00:00
$service -> addMethod (
'pwg.themes.performAction' ,
'ws_themes_performAction' ,
array (
2011-04-19 20:06:39 +00:00
'action' => array (),
'theme' => array (),
'pwg_token' => array (),
2010-12-26 22:52:35 +00:00
),
'activate/deactivate/delete/set_default a theme<br>administration status required'
);
2011-04-10 08:59:02 +00:00
$service -> addMethod (
2011-04-29 17:38:59 +00:00
'pwg.images.resizeThumbnail' ,
'ws_images_resizethumbnail' ,
2011-04-10 08:59:02 +00:00
array (
2011-04-22 11:34:57 +00:00
'image_id' => array ( 'default' => null ),
'image_path' => array ( 'default' => null ),
2011-04-29 17:38:59 +00:00
'maxwidth' => array ( 'default' => $conf [ 'upload_form_thumb_maxwidth' ]),
'maxheight' => array ( 'default' => $conf [ 'upload_form_thumb_maxheight' ]),
'quality' => array ( 'default' => $conf [ 'upload_form_thumb_quality' ]),
'crop' => array ( 'default' => $conf [ 'upload_form_thumb_crop' ]),
'follow_orientation' => array ( 'default' => $conf [ 'upload_form_thumb_follow_orientation' ]),
'library' => array ( 'default' => $conf [ 'graphics_library' ]),
),
' Create / Regenerate thumbnails photo with given arguments .
< br > One of arguments " image_id " or " image_path " must be sent . '
);
$service -> addMethod (
'pwg.images.resizeWebsize' ,
'ws_images_resizewebsize' ,
array (
'image_id' => array (),
'maxwidth' => array ( 'default' => $conf [ 'upload_form_websize_maxwidth' ]),
'maxheight' => array ( 'default' => $conf [ 'upload_form_websize_maxheight' ]),
'quality' => array ( 'default' => $conf [ 'upload_form_websize_quality' ]),
2011-04-27 17:03:25 +00:00
'automatic_rotation' => array ( 'default' => $conf [ 'upload_form_automatic_rotation' ]),
2011-04-29 17:10:00 +00:00
'library' => array ( 'default' => $conf [ 'graphics_library' ]),
2011-04-10 08:59:02 +00:00
),
2011-04-29 17:38:59 +00:00
'Regenerate websize photo with given arguments.'
);
2011-04-20 14:52:52 +00:00
$service -> addMethod (
'pwg.extensions.update' ,
'ws_extensions_update' ,
array (
'type' => array (),
'id' => array (),
'revision' => array (),
'pwg_token' => array (),
),
' Update an extension . Webmaster only .
< br > Parameter type must be " plugins " , " languages " or " themes " . '
);
$service -> addMethod (
'pwg.extensions.ignoreUpdate' ,
'ws_extensions_ignoreupdate' ,
array (
'type' => array ( 'default' => null ),
'id' => array ( 'default' => null ),
'reset' => array ( 'default' => null ),
'pwg_token' => array (),
),
' Ignore an extension if it need update .
< br > Parameter type must be " plugins " , " languages " or " themes " .
< br > If reset parameter is true , all ignored extensions will be reinitilized . '
);
2011-04-21 15:12:38 +00:00
$service -> addMethod (
'pwg.extensions.checkUpdates' ,
'ws_extensions_checkupdates' ,
array (),
'Check if piwigo or extensions are up to date.'
);
2007-01-06 11:13:08 +00:00
}
2007-01-29 20:38:08 +00:00
add_event_handler ( 'ws_add_methods' , 'ws_addDefaultMethods' );
2007-01-06 11:13:08 +00:00
2007-01-29 20:38:08 +00:00
add_event_handler ( 'ws_invoke_allowed' , 'ws_isInvokeAllowed' , EVENT_HANDLER_PRIORITY_NEUTRAL , 3 );
2007-01-06 11:13:08 +00:00
$requestFormat = null ;
$responseFormat = null ;
if ( isset ( $_GET [ 'format' ]) )
{
$responseFormat = $_GET [ 'format' ];
}
if ( isset ( $HTTP_RAW_POST_DATA ) )
{
$HTTP_RAW_POST_DATA = trim ( $HTTP_RAW_POST_DATA );
if ( strncmp ( $HTTP_RAW_POST_DATA , '<?xml' , 5 ) == 0 )
{
}
else
{
$requestFormat = " json " ;
}
}
else
{
$requestFormat = " rest " ;
}
if ( ! isset ( $responseFormat ) and isset ( $requestFormat ) )
{
$responseFormat = $requestFormat ;
}
$service = new PwgServer ();
if ( ! is_null ( $requestFormat ))
{
$handler = null ;
switch ( $requestFormat )
{
case 'rest' :
include_once ( PHPWG_ROOT_PATH . 'include/ws_protocols/rest_handler.php' );
$handler = new PwgRestRequestHandler ();
break ;
}
$service -> setHandler ( $requestFormat , $handler );
}
if ( ! is_null ( $responseFormat ))
{
$encoder = null ;
switch ( $responseFormat )
{
case 'rest' :
include_once ( PHPWG_ROOT_PATH . 'include/ws_protocols/rest_encoder.php' );
$encoder = new PwgRestEncoder ();
break ;
case 'php' :
include_once ( PHPWG_ROOT_PATH . 'include/ws_protocols/php_encoder.php' );
$encoder = new PwgSerialPhpEncoder ();
break ;
case 'json' :
include_once ( PHPWG_ROOT_PATH . 'include/ws_protocols/json_encoder.php' );
$encoder = new PwgJsonEncoder ();
break ;
case 'xmlrpc' :
include_once ( PHPWG_ROOT_PATH . 'include/ws_protocols/xmlrpc_encoder.php' );
$encoder = new PwgXmlRpcEncoder ();
break ;
}
$service -> setEncoder ( $responseFormat , $encoder );
}
2007-01-24 05:07:08 +00:00
set_make_full_url ();
2007-01-06 11:13:08 +00:00
$service -> run ();
?>