",$targetname); } function AppendAsField($mask) { $mask = str_replace('&','&',$mask); $mask = str_replace('<','<',$mask); $mask = str_replace('>','>',$mask); return ''; } function DeleteMarkup($str) { global $pagename; static $number=0; $number++; $md5=md5(stripslashes($str)); if ($_GET['md5']==$md5) { $button='Try again!'; $style='font-weight: bold; background-color:#fee;'; } else { $button='Delete'; $style=''; } return FmtPageName("
",$pagename); } Markup('addlineform','directives','/\(:form (.*):\)/e',"Keep(FormMarkup(\$pagename,'$1'))"); Markup('addlineform2','"); Markup('inputfield','directives','/\(:textfield +([^ ]*) *?:\)/e','Keep("")'); Markup('submitfield','directives','/\(:submit (.*):\)/e','Keep("")'); Markup('appendasfield','[=','/\(:appendas "(.*)":\)/e','Keep(AppendAsField("$1"))'); Markup('addhere','directives','/\(:addhere (.*):\)/e',''); Markup('prependhere','directives','/\(:prependhere (.*):\)/e',''); Markup('deleteline','directives','/((.*)\(:delete:\)(.*))/e','stripslashes("$2").Keep(DeleteMarkup("$1")).stripslashes("$3")'); $HandleActions['addline']='HandleAddLine'; $HandleActions['deleteline']='HandleAddLine'; function HandleAddLine($pagename) { global $HandleActions,$action,$ScriptUrl; $page = RetrieveAuthPage($pagename,"read"); if (!$page) { Abort("?cannot edit $pagename"); } # SetPageVars($pagename,$page,"Edit $pagename"); # Create Replacement $replace = urldecode($_POST['appendas']); $replace = preg_replace('/\\\\n/',"\n",$replace); $replace = preg_replace('/\{date\:(.*?)\}/e','date("$1")',$replace); $replace = preg_replace('/\{strftime\:(.*?)\}/e','strftime("$1")',$replace); $replace = preg_replace('/\{(.*?)\}/e','$_REQUEST["$1"]',$replace); $replace = stripslashes($replace); $text = split("\n",$page['text']); $newpagecmd='(:addhere '.$_POST['formname'].':)'; $prependcmd='(:prependhere '.$_POST['formname'].':)'; foreach ($text as $nr => $line) { if ($line==$newpagecmd) { $text[$nr] = $replace."\n$line"; } else { } } if ($_POST['action']=='deleteline') { $count=0; $newtext=''; foreach ($text as $nr => $line) { # Prevent the (:appendas...:)-statement from being deleted, # thus remove this directive when checking for the (:delete:) $appendascheck = preg_replace('/\(:appendas (.*):\)/','',$line); if (strpos($appendascheck,'(:delete:)')) { $nowmd5 = md5($line); $count++; if ($count==$_POST['linenr']) { # Check consistency if ($nowmd5 != $_POST['md5']) { Header('Location: '.$ScriptUrl.'?action=view' .'&n='.$pagename .'&md5='.$_POST['md5'] .'&deletefailed=true'); exit; } unset($text[$nr]); break; } } } } else { foreach ($text as $nr => $line) { if ($line==$newpagecmd) { $text[$nr]=$replace."\n$line"; } } foreach ($text as $nr => $line) { if ($line==$prependcmd) { $text[$nr] = "$line\n".$replace; } } } $_POST['text']=addslashes(join("\n",$text)); /** store text **/ $handle = $HandleActions['edit']; $_POST['post']='Save '; return $handle($pagename); } ?>