",$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);
}
?>