[pmwiki-users] Can PmWiki pages be populated using a database like Mongo DB?

Petko Yotov 5ko at 5ko.fr
Sun Sep 24 04:35:29 CDT 2017

Yes, PmWiki can potentially use anything for data storage, be it plain 
text, JSON, XML and/or gzipped files or any database (SQLite, MySQL, 
LDAP, etc.), or even thin air.

You only need to write a new class that extends the core PageStore class 
and redefine the functions exists(), read(), write(), delete() and ls() 
to return the page names and attributes in the format expected by PmWiki 
(associative arrays).

Your PHP installation will probably require a set of MongoDB compatible 
functions among:


You should also enable UTF-8 in PmWiki before you start: the PHP 
functions to encode and decode JSON data are very unreliable if the data 
is not valid UTF-8 (you get blank/empty values):


The following add-ons create and use a custom PageStore class, see if 
they can inspire you:

   http://www.pmwiki.org/wiki/Cookbook/CompressedPageStore (gz)
   http://www.pmwiki.org/wiki/Cookbook/PageTopStore (2 copies)
   http://www.pmwiki.org/wiki/Cookbook/Phonebook (LDAP)
   http://www.pmwiki.org/wiki/Cookbook/SessionPageStore (thin air)
   http://www.pmwiki.org/wiki/Cookbook/SQLite (sqlite)
   http://www.pmwiki.org/wiki/Cookbook/XMLPageStore (xml)

The SQLite recipe page also shows how one would install in config.php 
such a PageStore class with or without keeping any existing core PmWiki 
or custom PageStore classes.


PmWeekly Blog  :  http://www.pmwiki.org/News
If you upgrade :  http://www.pmwiki.org/Upgrades

On 2017-09-22 21:29, Mckenzie Mae Weller wrote:
> I'm working on a project and we'd like to set up our site in a wiki 
> format
> (such as through PmWiki), but need to populate the wiki pages using 
> data
> from a Mongo DB database, or something similar, that will host a number 
> of
> JSON files.
> Is this something that could be doable, and if so, are their any 
> examples /
> tutorial-esque documentation out there to help me get started?

More information about the pmwiki-users mailing list