================================================= Using SOAP/WSDL to Interface with the Horde API ================================================= 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/ :: Horde WSDL Test require_once 'SOAP/Client.php'; $horde_user = @$_POST['user']; $horde_pass = @$_POST['pass']; $horde_baseurl = @$_POST['url']; ?>

Horde Installation Details

Horde Base Url Required
Username
Password

$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 = <<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