Learn about DokuWiki
Learn about DokuWiki
Compatible with DokuWiki
With this app users can conveniently communicate with DokuWiki's xmlrpc library. It can be on any DokuWiki, including the one which you are currently logged into. The user can then communicate and exchange data between the local wiki and a remote wiki. The xmlrpc library exposes many of the back-end elements of the wiki which may be of use in management.
At its simplest you enter the URL of the remote wiki into the
Remote URL text box, you select a query from the
Select query drop-down menu, and you click
Send query. So, for instance, if you select
getAllPages, the result will be a list of all the pages on the remote wiki. Often, however, queries require an id. For these, you enter the id in the
ID textbox. For example, if you enter a paged id, then select
listLinks, a list of all the links for that page, and their types, will be returned.
Send Querybutton for submitting the query.
http://www.example.comand the name of the wiki is
my_wiki, then you would enter
IDtext box. The id must be the complete id that identifies the page on the remote server, in other words, including the namespace. For an optional way to enter an id, see the section on action links below.
Query typesbutton will bring up a listing of query types and their options. Enter these options, in the order listed, separated by commas, in the
idin this additional list of options.
(option). See the
Query typeslisting for details on how to handle array options for specific queries.
Select querymenu. If you want to use one of those, then enter the complete listing, including the function name into the
Optionsbox. The function name must come first and then, in order listed, the options. They must all be separated by commas, including the function name. For instance:
Timestamps: Some queries require a timestamp as a parameter. Xcom will create the timestamp for you. Enter the date in the
Optionsbox in this format:
yyyy-mm-dd, for instance 2014-05-29.
There are three display views: HTML, Edit, and Code. These are all contained within an “Output” window. When the result of a query is displayed, this window opens and the contents of your query will appear in one of these three views, depending upon the output. More than one view can be open at any one time, so that, for instance, you can be looking at the markup for a page while also viewing it as HTML. You can close and re-open these views using the buttons at the top right of the screen. And you can close the Output window entirely.
Editview enables you to make changes to the markup and save it back to the remote wiki which, as noted above, could be the wiki you are currently logged into. It also enables you to add material to a page by appending.
HTML viewis used to display wiki pages and to display query results that can be conveniently formatted as HTML.
Code viewis preformatted text. It is used for simple plain text responses, error codes, and arrays from queries not in xcom's list of
In the status bar at the bottom of the screen there are command links which enable you to
Clear the contents from each of the three view windows. The status bar also contains a
Query field where the current query is displayed. At the far right is a link which enables you to submit the query.
Local save button makes it possible to move pages and media from the remote wiki to the local wiki. Enter the id of a remote page or media file into the
ID field and click the
Local save button. If you select a page id, the page and all of its referenced media will be copied to the local server. All will be copied to the correct namespaces, including the page itself. If, instead of a page id,you enter a media id, the media file will also be copied to the correct namespace.
To use this feature you must fill in the local user's xmlrpc user name and password in the text boxes. The local url will be automatically retrieved from the system.
There are several query types which return lists of pages and media with the ids in the first column. Among them are:
dokuwiki.getPagelistwill take a namespace in the
IDfield and return all the pages in that namespace.
wiki.getAllPageswill return all the pages on the remote wiki. If you omit the namespace in the ID field,
dokuwiki.getPagelistis almost the same as
wiki_getAttachmentsreturns media files and behaves exactly as
These can handily be used with
Action links make it possible to act upon lists from either the local or the remote server.
If the results of a query is formatted as a table and the first column is headed
id, the first column is an action link. Clicking one of these can have one of two results:
There is an initialization file named
xcom.ini which is found in the scripts directory. Use of this file is not required but it can be convenient. The file structure is based on the php,ini format:
[title] url=http://www.example.com/mywiki/ user=rpcuser pwd=rpcpwd
For each remote wiki that you work with, enter another data block. Only the title is required. The titles of these remote sites will appear in the drop-down menu, and when you select a menu item, the fields with entries will be entered into the remote wiki's text boxes.
The fact that the fields are optional means that you don't have to fill in the password field (or even user name). But as another security feature, you can move xcom.ini out of the web server's access. For this, there is a configuration option,
inidir, for setting an alternate directory for this file, and this can be anywhere on your server. But the file and its directory must of course be readable to PHP.