September 23rd-25th 2009
Ecole Polytechnique, France
administrators (intermediate) One of the purposes of WikiGroups is to allow a Wiki Administrator to customize the features of PmWiki on a per-group basis. Here is where per group customizations come into play.
The local/ subdirectory (in the same directory that holds pmwiki.php) is used to hold local configuration files. To perform local customizations for a particular WikiGroup, place the customizations in a file called "<groupname>.php" (where <groupname> is the actual name of the page group in question) in the local/ subdirectory. This file will be automatically processed after processing any local customizations in the config.php file.
For example, to change the image displayed in the upper-left corner of pages in the "Chess" WikiGroup, one could create local/Chess.php containing
This would cause all pages in the Chess Wiki Group to use "/myimages/chess.gif" as the logo image instead of the default.
Almost any customization that would be placed in config.php can be used as a per-group customization.
PmWiki also allows per-page customizations, simply use the full name of the page to be customized instead of the group. For example, one can use the file local/Chess.HomePage.php to set local customizations for Chess.HomePage.
For all local customizations, PmWiki first processes the local/config.php file, and then looks for a per-page customization file in the local/ subdirectory to process, followed by any per-group customization file. If no per-page or per-group customizations are loaded, then PmWiki loads local/default.php.
Any customization file can set
$EnablePGCust=0; to prevent later page/group/default customizations from being automatically loaded. If a per-page customization needs to have the per-group customizations loaded first, it can do so directly by using PHP's
Any passwords required for a group should be set in the group's GroupAttributes page (see PasswordsAdmin) and not in a group customization file.
Wiki Groups are an easy way to host multiple sites in a single PmWiki installation by giving each site its own group. Another approach is to use Wiki Farms, which allows each site to have its own set of WikiGroup and local customization files. If you're hoping to add several levels of groups, read this first.