4 * Taken from http://www.wlug.org.nz/archive/
6 * Please see http://phpwiki.sourceforge.net/phpwiki/PhpWiki.wdsl
7 * for the wdsl discussion.
9 * Installer helper which changes server url of the default PhpWiki.wdsl
12 define ("WIKI_SOAP", "true");
14 require_once('lib/prepend.php');
15 include_once("index.php");
17 //require_once('lib/stdlib.php');
18 require_once('lib/nusoap/nusoap.php');
19 require_once('lib/WikiDB.php');
20 require_once('lib/config.php');
22 $server = new soap_server;
24 $server->register('getPageContent');
25 $server->register('getPageRevision');
26 $server->register('getCurrentRevision');
27 $server->register('getPageMeta');
28 //$server->register('doSavePage');
29 $server->register('getAllPagenames');
30 $server->register('getBackLinks');
31 $server->register('doTitleSearch');
32 $server->register('doFullTextSearch');
34 function doSavePage($pagename,$content,$credentials) {
35 $dbi = WikiDB::open($GLOBALS['DBParams']);
36 $page = $dbi->getPage($pagename);
37 $current = $page->getCurrentRevision();
38 $meta = $current->_data;
39 $meta['summary'] = sprintf(_("SOAP Request")); // from
40 $version = $current->getVersion();
41 //todo: check credentials
42 return $page->save($content, $version + 1, $meta);
45 function getPageContent($pagename) {
46 $dbi = WikiDB::open($GLOBALS['DBParams']);
47 $page = $dbi->getPage($pagename);
48 $rev = $page->getCurrentRevision();
49 $text = $rev->getPackedContent();
52 function getPageRevision($pagename,$revision) {
53 $dbi = WikiDB::open($GLOBALS['DBParams']);
54 $page = $dbi->getPage($pagename);
55 $rev = $page->getCurrentRevision();
56 $text = $rev->getPackedContent();
59 function getCurrentRevision($pagename) {
60 $dbi = WikiDB::open($GLOBALS['DBParams']);
61 $page = $dbi->getPage($pagename);
62 $rev = $page->getCurrentRevision();
63 $version = $current->getVersion();
64 return (double)$version;
66 function getPageMeta($pagename) {
67 $dbi = WikiDB::open($GLOBALS['DBParams']);
68 $page = $dbi->getPage($pagename);
69 $rev = $page->getCurrentRevision();
71 //todo: reformat the meta hash
74 function getAllPagenames() {
75 $dbi = WikiDB::open($GLOBALS['DBParams']);
76 $page_iter = $dbi->getAllPages();
78 while ($page = $page_iter->next()) {
79 $pages[] = array('pagename' => $page->_pagename);
83 function getBacklinks($pagename) {
84 $dbi = WikiDB::open($GLOBALS['DBParams']);
85 $backend = &$dbi->_backend;
86 $result = $backend->get_links($pagename);
87 $page_iter = new WikiDB_PageIterator($dbi, $result);
89 while ($page = $page_iter->next()) {
90 $pages[] = array('pagename' => $page->_pagename);
94 function doTitleSearch($query) {
95 $dbi = WikiDB::open($GLOBALS['DBParams']);
96 $page_iter = $dbi->titleSearch($query);
98 while ($page = $page_iter->next()) {
99 $pages[] = array('pagename' => $page->_pagename);
103 function doFullTextSearch($query) {
104 $dbi = WikiDB::open($GLOBALS['DBParams']);
105 $page_iter = $dbi->fullSearch($query);
107 while ($page = $page_iter->next()) {
108 $pages[] = array('pagename' => $page->_pagename);
114 $server->service($GLOBALS['HTTP_RAW_POST_DATA']);
116 // (c-file-style: "gnu")
121 // c-hanging-comment-ender-p: nil
122 // indent-tabs-mode: nil