3 RemoteProcedureCalls for ewiki
4 ¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯
5 - allows for XmlRpcToWiki (v2)
6 - provides OpenSearch API (v0)
7 - access wrapper for WikiSync (v0.1)
8 - allows WebDAV directory browsing
9 - can be used for ?binary= transfer
11 All write-access features in the individual modules are already
12 restricted by calling "fragments/funcs/auth.php" separately. This
13 whole interface is however disabled for _PROTECTED_MODE setups.
16 #-- load libs and server interface code
17 define("EWIKI_SCRIPT_BINARY", "z.php?binary=");
18 include_once("config.php");
19 include_once("plugins/lib/upgrade.php");
21 #-- surpress errors (slightly)
22 include_once("plugins/debug/xerror.php");
23 error_reporting(E_ALL^E_NOTICE);
26 #-- REQUIRE authentication for now
27 # (TOO dangerous currently else - no full security review made yet)
28 require("fragments/funcs/auth.php");
31 #-- interfaces and protocols
33 include_once("plugins/lib/wikiapi.php");
35 if (!function_exists("ewiki_opensearch_api")) {
36 include_once("plugins/lib/opensearch.php");
38 if (!function_exists("xmlrpc")) {
39 include_once("plugins/lib/xmlrpc.php");
41 if (!function_exists("phprpc")) {
42 include_once("plugins/lib/phprpc.php");
44 if (!function_exists("atom_server")) {
45 // include_once("plugins/lib/atom-server.php");
47 if (!class_exists("wikidav")) {
48 include_once("plugins/lib/xml.php");
49 include_once("plugins/lib/minidav.php");
50 include_once("plugins/lib/webdav.php");
54 $xmlrpc_methods = &$wikiapi;
55 $phprpc_methods = &$wikiapi;
58 if (EWIKI_PROTECTED_MODE) {
59 die("The API is disabled, because it doesn't yet respect the _PROTECTED_MODE restrictions.");
64 if (defined("EWIKI_SCRIPT_WEBDAV") && $_SERVER["PATH_INFO"]) {
65 #error_reporting(E_ALL);
72 #-- what kind of request
73 $rt = strtolower(trim(strtok(@$_SERVER["CONTENT_TYPE"], ",;")));
83 case "application/atom+xml":
85 header("501 Not Implemented");
88 #-- WikiSync or PHP-RPC
89 case "application/vnd.php.serialized":
91 include("tools/t_sync.php");
97 #-- other detection mechanism?
102 header("Content-Type: text/html");
103 header("Status: 401 Method Not Implemented");
104 die('<html><head><link rel="stylesheet" type="text/css" href="tools/t_config.css"></head><body>This is the interface for XML-RPC, OpenSearch, WikiSync, PHP-RPC, <a href="z.php/">WebDAV</a> and Atom requests. Go away already!</body></html>');