'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)); } } }