'...', "/\\[\\[([^|\\]]+)\\|(.*?)\\s*\\]\\]($SuffixPattern)/e" => "MakeLink(\$pagename,PSS('$1'),PSS('$2'),'$3','\$LinkText')", "/\\[\\[([^\\]]+?)\\s*-+>\\s*(.*?)\\]\\]($SuffixPattern)/e" => "MakeLink(\$pagename,PSS('$2'),PSS('$1'),'$3','\$LinkText')", '/\\[\\[#([A-Za-z][-.:\\w]*)\\]\\]/' => "", "/\\[\\[(.*?)\\]\\]($SuffixPattern)/e" => "MakeLink(\$pagename,PSS('$1'),NULL,'$2','\$LinkText')", '/[\\[\\{](.*?)\\|(.*?)[\\]\\}]/' => '$1', "/`(($GroupPattern([\\/.]))?($WikiWordPattern))/" => '$1', "/$GroupPattern\\/($WikiWordPattern)/" => '$1' )); function PageBreak($pagename,$text) { $p = explode('____',$text."\n\n"); $n = @$_REQUEST['p']; if ($n<1) $n=1; if ($n>count($p)) $n=count($p); $out[] = "
Page"; for($i=1;$i<=count($p);$i++) { $tooltip = PageBreakTip($p[$i-1]); if ($i==$n) $out[] = " $n"; else $out[] = FmtPageName(" $i",$pagename); } $out[] = '
'; $ed = FmtPageName("edit", $pagename); return '<:block>'.Keep("
Page $n ($ed)
"). "(:nl:)".$p[$n-1].'<:block>'.Keep(implode('',$out)); } function PageBreakTip($text) { global $LinkCleanser; $title = preg_match("/^\\n*(?:\\(:.*?:\\))?(?:!+|:.*?:)?\\s*(?:\\[\\[#.*?\\]\\])?([^\\n]+)/", $text,$match); if ($title) { $para = preg_replace("/!.*?$/",'',$match[1]); $para = preg_replace("/(''+|@@)(.*?)\\1/",'$2',$para); $para = preg_replace("/'([-_^;+\\/])(.*?)\\1'/",'$2',$para); $para = preg_replace("/\\[([@=]|[-+]+)(.*?)\\1\\]/",'$2',$para); foreach ($LinkCleanser as $p => $c) $para = preg_replace($p,$c,$para); $para = str_replace('"','"',str_replace('`','',$para)); } else $para = 'Go to page'; return (strstr($para,"'")) ? '"'.$para.'"' : "'$para'"; } function HandleEditPage($pagename) { global $IsPagePosted,$EditFields,$ChangeSummary,$EditFunctions,$FmtV,$Now, $HandleEditFmt,$PageStartFmt,$PageEditFmt,$PagePreviewFmt,$PageEndFmt, $GroupHeaderFmt,$GroupFooterFmt,$EnablePost; if ($_REQUEST['cancel']) { Redirect($pagename); return; } $IsPagePosted = false; $PageEditFmt = "

$[Editing \$Group \$Name]

\$EditMessageFmt
$[Summary]:
$[Author]: $[This is a minor edit]
"; if (@$_REQUEST['preview']) $PagePreviewFmt = array( "", "

$[Page is unsaved]

$[Preview] \$Group \$Name

", "\$PreviewText", "
", "
$[Top]
", "
$[End of preview: remember to save]
" ); $PageChunks = array('prechunk','postchunk'); Lock(2); $page = RetrieveAuthPage($pagename,'edit'); if (!$page) Abort("?cannot edit $pagename"); PCache($pagename,$page); $new = $page; $p = explode('____',$new['text']); $n = @$_REQUEST['p']; if ($n<1) $n=1; if ($n>count($p)) $n=count($p); $new['text'] = $p[$n-1]; foreach((array)$EditFields as $k) if (isset($_POST[$k])) $new[$k]=str_replace("\r",'',stripmagic($_POST[$k])); foreach((array)$PageChunks as $c) { $$c = ''; if (@$_POST[$c]) $$c = str_replace("\r",'',stripmagic($_REQUEST[$c])); } if ($ChangeSummary) $new["csum:$Now"] = $ChangeSummary; $EnablePost &= (@$_POST['post'] || @$_POST['postedit']); if (@$_POST['post']) $new['text'] = $prechunk."\n".$new['text']."\n".$postchunk; elseif (@$_POST['preview']) { if ($n>1) $GroupHeaderFmt = ''; $GroupHeaderFmt .= '=>(Page '.@$_REQUEST['p'].' of '.count($p).')(:nl:)'; if ($n$n) $postchunk .= '____' . $p[$i-1]; foreach((array)$EditFunctions as $fn) $fn($pagename,$page,$new); if ($IsPagePosted) { Redirect($pagename,"\$PageUrl?p=$n"); return; } $FmtV['$PreChunk'] = str_replace('"','"', str_replace('$','$',htmlspecialchars($prechunk, ENT_NOQUOTES))); $FmtV['$PostChunk'] = str_replace('"','"', str_replace('$','$',htmlspecialchars($postchunk, ENT_NOQUOTES))); $FmtV['$CSum'] = str_replace('"','"', str_replace('$','$',htmlspecialchars(@$_POST['csum'], ENT_NOQUOTES))); $FmtV['$PNum'] = $n; $FmtV['$DiffClassMinor'] = (@$_POST['diffclass']=='minor') ? "checked='checked'" : ''; $FmtV['$EditText'] = str_replace('$','$',htmlspecialchars(@$new['text'],ENT_NOQUOTES)); $FmtV['$EditBaseTime'] = $Now; SDV($HandleEditFmt,array(&$PageStartFmt, &$PageEditFmt,&$PagePreviewFmt,&$PageEndFmt)); PrintFmt($pagename,$HandleEditFmt); } if ($action=='browse') Markup('breakpage','>include','/^.*____.*$/se', "PageBreak(\$pagename,PSS('$0'))"); elseif ($action=='edit' || $action=='editpage') { Markup('breakpage','>include','/____/', "\n
Page Break
\n"); if ($action=='editpage') $HandleActions['editpage'] = 'HandleEditPage'; } elseif ($action=='print') Markup('breakpage','>include','/____/','(:div class="section":)'); else Markup('breakpage','directives','/____/',''); ?>