Most Horde modules have an API interface which is used by other modules to access and exchange data. These API's are described in the //modulename/lib/api.php// files. Calling the ///rpc.php// in your Horde webroot allows you to access the API remotely via XML-RPC/DISCO/SOAP/WSDL/REST etc. The following script describes how to access a Horde installation remotely and list the APIs that are available.
If you have IMP/Turba installed you can also try these calls which are commented out in the script:
$test = print_r($client->contacts_sources(0, true), 1);
$test = print_r($client->mail_folderlist(), 1);
For further information, refer to the http://dev.horde.org/
<title>Horde WSDL Test</title>
require_once 'SOAP/Client.php';
$horde_user = @$_POST['user'];
$horde_pass = @$_POST['pass'];
$horde_baseurl = @$_POST['url'];
?>
Horde Installation Details
$horde_user, 'pass' => $horde_pass));
if (is_a($wsdl, 'PEAR_Error')) {
echo "" . print_r($wsdl, 1);
$proxy_code = $wsdl->getMessage();
} else {
$proxy_code = highlight_string($wsdl->generateProxyCode(), 1);
$client = $wsdl->getProxy();
if (is_a($client, 'PEAR_Error')) {
$client = $client->getMessage();
} else {
$client = print_r($client, 1);
}
$client = new WebService_hordeService_hordePort();
if (!empty($horde_user) && !empty($horde_pass)) {
$test = print_r($client->horde_listAPIs(), 1);
//$test = print_r($client->contacts_sources(0, true), 1);
//$test = print_r($client->mail_folderlist(), 1);
}
}
// write to the html page
$content = <<<END
Horde RPC Test
WSDL Document $wsdl_url
$wsdl_data
Proxy Code
$proxy_code
Test
$test
END;
echo($content);
}
$listing = highlight_file($_SERVER["SCRIPT_FILENAME"], 1);
?>
Script Code