[pmwiki-users] Shared Pages
Petko Yotov
5ko at 5ko.fr
Sat Sep 12 18:52:16 CDT 2009
On Saturday 12 September 2009 07:06:09 Simon wrote:
> In config.php I have
> $WikiDir = new PageStore('wiki.d/$Group/$FullName');
> $LockFile = "/home/tahi/public_html/pmwiki/wikishared.d/.flock";
> $WikiLibDirs = array(
> &$WikiDir,
> new
> PageStore('/home/tahi/public_html/pmwiki/wikishared.d/$Group/$FullName',
> 1), new PageStore('$FarmD/wikilib.d/$FullName'));
>
> What I want to achieve is having some shared groups of pages that can be
> updated and added to (ie new pages) from both websites.
> Where a group is not in the shared directory I want it to update the local
> website folder (this happens now).
...
> existing pages are updated in their existing locations, but new
> pages are added in to local folder.
...
> If anyone can suggest how I can have all new pages in a shared group only
> be added the the shared directory I would appreciate it
You can re-define the $WikiLibDirs array in two local/SharedGroup.php files in
both wikis:
<?php
## only alter the directories when a page is posted in this group
if (@$_REQUEST['action']=='edit'
&& preg_grep('/^post/', array_keys($_REQUEST) ) ) {
$WikiDir = new PageStore('$FarmD/shared.d/$FullName');
$WikiLibDirs = array( &$WikiDir,
new PageStore('$FarmD/wikilib.d/$FullName') );
}
> I can test for a pagename in config.php by using $pagename =
> ResolvePageName($pagename);
> How can I test for a groupname in config.php?
You can get the group by something like this (at the end of config.php):
list($group, $name) = explode('.', ResolvePageName($pagename));
if ($group=='PmWiki') { /*do something...*/}
Petko
More information about the pmwiki-users
mailing list