'{$Group}.{$DefaultName}', // change from HomePage to $DefaultName 'Templates.GroupHeader' => '{$Group}.GroupHeader', 'Templates.GroupFooter' => '{$Group}.GroupFooter')); # add markup (:newgroupbox:) Markup('newgroupbox', 'directives', '/\\(:newgroupbox\\s*(.*?):\\)/i', "NewGroupBox"); # add action=new (the form sends this with the other values) $HandleActions['newgroup'] = 'HandleNewGroup'; # add form function. The values for parameter defaults can be changed here function NewGroupBox($m) { global $DefaultName; extract($GLOBALS['MarkupToHTML']); $PageUrl = PageVar($pagename, '$PageUrl'); $defaults = array( 'base' => $DefaultName, 'label' => FmtPageName(' $[Create a new group called:] ', $pagename), 'button' => 'left', ); $opt = array_merge($defaults, ParseArgs($m[1])); $buttonHTML = " \n"; $onfocusHTML = " onfocus=\"if(this.value=='{$opt['value']}') {this.value=''}\" onblur=\"if(this.value=='') {this.value='{$opt['value']}'}\" "; $out = "\n
\n". ($opt['value'] ? " \n" : ""). ($opt['focus'] ? " \n" : ""). ($opt['base'] ? " \n" : ""). ($opt['save'] ? " \n" : ""). ($opt['autogroup'] ? " \n" : ""). ($opt['template'] ? " \n" : ""). ($opt['autopages'] ? " \n" : ""). ($opt['button']=="left" ? $buttonHTML : ""). " \n" . ($opt['button']=="right" ? $buttonHTML : ""). "
"; return Keep($out); } # handles action=new, i.e. what the form sends, sends new page to edit function HandleNewGroup($pagename) { global $Author, $EnableAutoGroupPages, $AutoGroupPagesFmt, $EnablePostRecentChangesForAutoGroupPages, $EnableAutoSave, $MakePageNamePatterns; $group = PPRA($MakePageNamePatterns, @$_REQUEST['name']); // updated to fix Lambda problem if (!$group) Redirect($pagename); if (@$_REQUEST['focus'] && $group==$_REQUEST['value']) Redirect($pagename); if (@$_REQUEST['autogroup'] AND ($EnableAutoSave==1 OR CondAuth($pagename,'edit'))) $EditFunctions[] = 'AutoGroupPages'; $base = MakePageName($pagename, $_REQUEST['base']); $name = PageVar($base, '$Name'); $newpage = MakePageName($base, "$group.$name"); // always use $name to use $DefaultPage $urlfmt = '$PageUrl?action=edit'; if (@$_REQUEST['template']) { $urlfmt .= '&template=' . MakePageName($base, $_REQUEST['template']); } if (@$_REQUEST['autopages'] AND ($EnableAutoSave==1 OR CondAuth($pagename,'edit'))) { $pages = explode(",", $_REQUEST['autopages']); foreach($pages as $p) { $tp = explode(".", $p); $AutoGroupPagesFmt[$p] = MakePageName($pagename, "$group.$tp[1]"); } AutoGroupPages($pagename, $page, $new); Redirect($newpage); } if (@$_REQUEST['save'] AND ($EnableAutoSave==1 OR CondAuth($pagename,'edit'))) { if(PageExists($newpage)) Redirect($newpage, $urlfmt); if (@$_REQUEST['template'] && PageExists($_REQUEST['template'])) { $p = RetrieveAuthPage($_REQUEST['template'], 'read', false, READPAGE_CURRENT); if ($p['text'] > '') $new['text'] = $p['text']; $new['author'] = $Author;} SaveAttributes($newpage, $new, $new); PostPage($newpage, $new, $new); PostRecentChanges($newpage, $new, $new); if(@$_REQUEST['autogroup']) AutoGroupPages($newpage, $new, $new); Redirect($newpage); } Redirect($newpage, $urlfmt); } function AutoGroupPages($pagename, $page, $new) { global $IsPagePosted, $AutoGroupPagesFmt, $EnablePostRecentChangesForAutoGroupPages; if (!$IsPagePosted && !@$_REQUEST['autopages']) return; foreach($AutoGroupPagesFmt as $t => $n) { $n = FmtPageName($n, $pagename); if (!PageExists($n)) { $t = FmtPageName($t, $pagename); WritePage($n, ReadPage($t)); $IsPagePosted = true; if($EnablePostRecentChangesForAutoGroupPages==1) PostRecentChanges($n, $new, $new); } } }