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