The Plugin Repository is used by www.dokuwiki.org to organize the plugin info. To support the Plugin Manager Rewrite an API is available for the repository. This manual describes both API and repository plugin syntax.
Source is available at http://github.com/splitbrain/dokuwiki-plugin-pluginrepo
DokuWiki development is gearing towards treating plugins and templates the same. In the forked version templates are a just a plugin of type == 32. This facilitates tag sharing (users looking for sidebars should see both plugins and templates) and “More contributions of same author”. Changes will require some manual work at each template homepage and adding 'screenshot' url to database.
templates are identified by namespace used.
Besides the entry component details it's worth mentioning that the securitywarning field has some predefined values
Of cause free text could be used as well.
The “table” component comes in two variants, classic and a new more compact version with download buttons etc. An additional navigation feature “Jump to plugins starting with A B C..” is present for both. The new table also shows “tags” for each plugin.
The pluginrepo syntax component accepts parameters if supplied, which overrides parameters in HTTP request.
Available:
plugintype=32 to return templates only.Example:
---- pluginrepo ---- cloudmin: 2 ----
Grabs the current listed product, price, and image from the popular woot.com
Creates a right float box with one or more featured plugin/templates. Besides the repository API, additional parameters are:
Syntax definition:
---- pluginnews ----- headline: <headline text> style: <sameauthor/DEFAULT> screenshot: <yes/NO> random: <YES/no> entries: <number of plugins displayed> link: <internallink id> linktext: <internallink text> -----
Parameters
sameauthor will display a list of plugins/templates by same author. Only usable in plugin/template homepages.A tool tailored for Plugins & templates team to make wiki gardening easier. The query results are displayed as a configurable table looking something like this:
| Plugin | Downloadurl | Plugins WHERE author = Håkan Sandell | |
|---|---|---|---|
| adminhomepage | http://cloud.github.com/downloads/HakanS/dokuwiki-plugin-adminhomepage/adminhomepage.zip | 1 | adminhomepage |
| cumulus | http://github.com/HåkanS/dokuwiki-plugin-cumulus/zipball/master | 1 | cumulus |
| dblclickedit | http://cloud.github.com/downloads/HakanS/dokuwiki-plugin-dblclickedit/dblclickedit.zip | 1 | dblclickedit |
| parserarray | http://github.com/HakanS/dokuwiki-plugin-parserarray/zipball/master | 1 | parserarray |
| twistienav | https://github.com/HakanS/dokuwiki-plugin-twistienav/zipball/master | 1 | twistienav |
∑ 5 plugins matching query
Syntax definition:
---- pluginquery ----- SELECT: <list of field names (optional)> WHERE: <sql where clause> VALUES: <list of values matching ? in where clause (optional)> HAVING: <popularity filter (optional)> -----
Allowed fields: plugin, name, description, author, email, compatible, lastupdate, type, securityissue, screenshot, downloadurl, bugtracker, sourcerepo, donationurl, cnt (popularity)
All fields but “cnt” are allowed in WHERE clause together with AND, OR, NOT, NULL, LIKE, %, <, >, =, (, ). All values in where clause should be replaced by ?.
Syntax examples:
---- pluginquery ----- WHERE: downloadurl IS null HAVING: cnt > 400 -----
---- pluginquery ----- SELECT: type WHERE: (type AND ?) AND (author LIKE ?) VALUES: 3, %Andreas% -----
---- pluginquery ----- SELECT: compatible WHERE: ? values: 1 -----
repository.php returns plugin/template data as XML. Same syntax as for sorting/filtering the repository table can be used as well as querying for an array of named plugins.
Available filters:
plugintype=32 to return templates only.Example call to get data about syntax plugins:
http://www.dokuwiki.org/lib/plugins/pluginrepo/repository.php?plugintype=1&plugintag=list
Returns:
<repository> <plugin> <id>pagequery</id> <dokulink>plugin:pagequery</dokulink> <name>pagequery plugin</name> <description> An all-in-one multipurpose navigation plugin to search for and list pages; by full-text or page name; neatly grouped results, optionally in columns, with preview snippet. </description> <author>Symon Bent</author> <type>Syntax</type> <lastupdate>2011-02-01</lastupdate> <compatible> <release>2010-11-07</release> </compatible> <securityissue/> <securitywarning/> <tags> <tag>list</tag> <tag>navigation</tag> <tag>search</tag> </tags> <downloadurl>https://github.com/downloads/MrBertie/pagequery/pagequery0.6.7.zip</downloadurl> <bugtracker>http://github.com/MrBertie/pagequery/issues</bugtracker> <donationurl/> </plugin> . .
There are some config settings for the dokuwiki.org admin
db_name – contain the DataSourceName, which consists of the PDO driver name, followed by a colon, followed by the PDO driver-specific connection syntax. See also: http://se2.php.net/manual/en/pdo.construct.php db_user – database login username (leave blank for sqlite).db_pass – database login password (leave blank for sqlite).bundled – comma separated list of plugins that are bundled.releases – comma separated list of releases (YYYY-MM-DD ”<name>”) newest MUST be first.Repository plugin honors allowdebug for SQL debugging.