forked from extern/egroupware
xmlrpc preference setting
This commit is contained in:
parent
fe9cae6737
commit
89324029f1
98
admin/inc/class.boconfig.inc.php
Normal file
98
admin/inc/class.boconfig.inc.php
Normal file
@ -0,0 +1,98 @@
|
|||||||
|
<?php
|
||||||
|
/**************************************************************************\
|
||||||
|
* phpGroupWare - configuration administration *
|
||||||
|
* http://www.phpgroupware.org *
|
||||||
|
* Copyright (C) 2001 Loic Dachary *
|
||||||
|
* -------------------------------------------- *
|
||||||
|
* 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; either version 2 of the License, or (at your *
|
||||||
|
* option) any later version. *
|
||||||
|
\**************************************************************************/
|
||||||
|
|
||||||
|
/* $Id$ */
|
||||||
|
|
||||||
|
class boconfig
|
||||||
|
{
|
||||||
|
var $public_functions = array(
|
||||||
|
);
|
||||||
|
|
||||||
|
var $xml_functions = array();
|
||||||
|
|
||||||
|
var $soap_functions = array(
|
||||||
|
'rpc_values' => array(
|
||||||
|
'in' => array('struct', 'struct'),
|
||||||
|
'out' => array()
|
||||||
|
)
|
||||||
|
);
|
||||||
|
|
||||||
|
function list_methods($_type='xmlrpc')
|
||||||
|
{
|
||||||
|
/*
|
||||||
|
This handles introspection or discovery by the logged in client,
|
||||||
|
in which case the input might be an array. The server always calls
|
||||||
|
this function to fill the server dispatch map using a string.
|
||||||
|
*/
|
||||||
|
if (is_array($_type))
|
||||||
|
{
|
||||||
|
$_type = $_type['type'] ? $_type['type'] : $_type[0];
|
||||||
|
}
|
||||||
|
switch($_type)
|
||||||
|
{
|
||||||
|
case 'xmlrpc':
|
||||||
|
$xml_functions = array(
|
||||||
|
'rpc_values' => array(
|
||||||
|
'function' => 'rpc_values',
|
||||||
|
'signature' => array(array(xmlrpcStruct,xmlrpcStruct)),
|
||||||
|
'docstring' => lang('Set preference values.')
|
||||||
|
),
|
||||||
|
'list_methods' => array(
|
||||||
|
'function' => 'list_methods',
|
||||||
|
'signature' => array(array(xmlrpcStruct,xmlrpcString)),
|
||||||
|
'docstring' => lang('Read this list of methods.')
|
||||||
|
)
|
||||||
|
);
|
||||||
|
return $xml_functions;
|
||||||
|
break;
|
||||||
|
case 'soap':
|
||||||
|
return $this->soap_functions;
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
return array();
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// xmlrpc functions
|
||||||
|
|
||||||
|
function rpc_values($data)
|
||||||
|
{
|
||||||
|
$newsettings = $data['newsettings'];
|
||||||
|
if (!$data['appname'])
|
||||||
|
{
|
||||||
|
$errors[] = "Missing appname";
|
||||||
|
}
|
||||||
|
if (!is_array($newsettings))
|
||||||
|
{
|
||||||
|
$errors[] = "Missing newsettings or not an array";
|
||||||
|
}
|
||||||
|
|
||||||
|
if (is_array($errors))
|
||||||
|
{
|
||||||
|
return $errors;
|
||||||
|
}
|
||||||
|
|
||||||
|
$conf = CreateObject('phpgwapi.config', $data['appname']);
|
||||||
|
|
||||||
|
$conf->read_repository();
|
||||||
|
reset($newsettings);
|
||||||
|
while(list($key,$val) = each($newsettings))
|
||||||
|
{
|
||||||
|
$conf->value($key, $val);
|
||||||
|
}
|
||||||
|
$conf->save_repository();
|
||||||
|
return True;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
?>
|
Loading…
Reference in New Issue
Block a user