<?php if (!defined('PmWiki')) exit();
# automatic creation of a number of pages from template pages
# if a pattern is met. By Hans.
# What new pages need to be created when a pattern matches?
$AutoGroupPagesFmt = array(
'P{$Name}-Issues.HomePage' => 'Issues.Issues',
'P{$Name}-Activities.Homepage' => 'Activities.Activities',
'P{$Name}-Discussion.HomePage' => 'Activities.Activities',
);
# These are the patterns
$AutoGroupPattern = array(
'p1' => '(Projects\.\\d\\d\\d\\d\\d)(.*)', # *Projects.12345*
# add more patterns here 'p2' => '(.*)(\\d\\d\\d\\d\\d)(.*)', # *12345*
);
# Catch some variables and put them in new variables ;-)
$group = PageVar($pagename, '$Group');
$name = PageVar($pagename, '$Name');
# below replace $pagename with $name if only Name should match and not Group
# below replace $pagename with $group if only Group should match and not Name
if ($action=='edit') {
foreach ((array)$AutoGroupPattern as $k=>$v) {
$match = preg_match("/^($v)$/i", $pagename);
if($match) $EditFunctions[] = 'AutoGroupPages';
}
}
# Let's create the wanted groups/pages
function AutoGroupPages($pagename, &$page, &$new) {
global $IsPagePosted, $AutoGroupPagesFmt;
if (!$IsPagePosted) return;
foreach($AutoGroupPagesFmt as $n => $t) {
$n = FmtPageName($n, $pagename);
if (!PageExists($n)) {
$t = FmtPageName($t, $pagename);
WritePage($n, ReadPage($t));
}
}
}