$!', " | $0", $DiffRestoreFmt); $restore = strval(@$_POST['expunge']); $confirm = strval(@$_POST['confirm']); if($restore && $restore != $confirm) return Abort('? $[Confirm checkbox unchecked.]'); $EnableDiffHidden = 1; $diffkeys = preg_grep('/^diff:\\d+:\\d+:/', array_keys($page)); $cnt = 0; if (preg_match('/^(diff:(\\d+):(\\d+):)(\\w*)$/', $restore, $m)) { RestorePage($pagename,$page,$page,$restore); foreach($diffkeys as $k) { if ($k<$restore) break; $newkey = preg_replace('/:[^:]*$/', ':hidden', $k); unset($page[$k]); $page[$newkey] = ''; $cnt++; } $fmt = XL('Expunged %d edits.'); $ChangeSummary = sprintf($fmt, $cnt); } elseif(isset($_POST['post'])) { $hide = isset($_POST['hide']) ? stripmagic($_POST['hide']) : array(); foreach($diffkeys as $k) { if (!preg_match("/^(diff:(\\d+):\\d+:)([^:]*)$/",$k,$match)) continue; list($full, $start, $id, $cname) = $match; if (isset($hide[$id])) { if ($cname == 'hidden') continue; $page["{$start}hidden"] = $page[$k]; unset($page[$k]); $cnt++; } else { if ($cname != 'hidden') continue; $page[$start] = $page[$k]; unset($page[$k]); $cnt++; } } $fmt = XL('Toggled %d edits (%d hidden).'); $ChangeSummary = sprintf($fmt, $cnt, count($hide)); } if ($cnt) { $MessagesFmt[] = "