[pmwiki-users] wikifarm question: autoconfigure a new wiki

John Rankin john.rankin at affinity.co.nz
Thu Aug 24 18:27:57 CDT 2006


Is it possible to change the use of 'local' when loading 
config.php and pgcust's Group.php and Group.Page.php files, 
to use a variable such as $localDir? $localDir would default 
to 'local'.

Thanks in advance for any advice.

Rationale
---------
We are upgrading a PmWiki 1 farm that was configured with a 
local customisation so that adding a new wiki (field) to the 
farm simply involves adding its name to a list on a WikiFarm 
page. No server-side administrator intervention is needed 
unless the wiki needs its own local customisations. The 
administrator edits the WikiFarm page and adds a new wiki 
to the list.

In migrating this site to PmWiki 2, we'd like to move to a
standard wiki farm, while retaining the ease-of-use in 
setting up new wikis within the farm. Most of what we 
currently do as a local customisation can be done natively 
in PmWiki 2.1.

Current thinking
----------------
If we set up a structure like this:

wiki/
    the central wiki
wikifarm/
    index.php
    Field1.wiki.d/
    Field1.uploads/
    Field2.wiki.d/
    Field2.uploads/
    and so on

then we can set up a wikifarm/ directory and an index.php. 
A simple local customisation can extract the local wiki 
(field) name from the url, check that this is a valid wiki 
name, and set $wikiDir and $uploadDir. And it will just work. 

The problem
-----------
I can't see a way to deal with each wiki's local/ directory 
and any field-specific customisations. I see 3 options:

a. wikifarm/ contains Field1.local/, Field2.local/ and so on

   field-specific customisations go in the appropriate
   Fieldn.local/ directory

b. wikifarm/ contains local/ and local/ contains Field1/,
   Field2/ and so on

   field-specific customisations go in the appropriate
   local/Fieldn/ directory

c. wikifarm/ contains local/ and local/ contains
   Field1.config.php, Field1.Group.php, Field1.Group.Page.php
   and so on

   field-specific customisations go in the local/ directory,
   with a Fieldn. filename prefix

In options a and b, the administrator would create the required 
directory at the time a local customisation is needed.

Proposed solution
-----------------
We could implement either option a or option b if PmWiki let us 
set a $localDir variable instead of requiring us to use 'local'. 
The changes to pmwiki.php and pgcust.php are trivial. Current 
installations would not be affected.

I can't think of a reason to prefer option c, so am happy to
eliminate it to simplify the PmWiki changes.

Questions
---------
Is there another, perhaps better, solution?

Would changing 'local' to a variable have any unexpected or 
undesirable side-effects?

Has anybody done something like this?
-- 
JR
--
John Rankin







More information about the pmwiki-users mailing list