3 require_once('lib/Template.php');
5 function PurgePage (&$request) {
8 $page = $request->getPage();
9 $pagelink = WikiLink($page);
11 if ($request->getArg('cancel')) {
12 $request->redirect(WikiURL($page,
13 array('warningmsg' => _('Purge cancelled'))));
17 $current = $page->getCurrentRevision();
19 if (!$current or !($version = $current->getVersion())) {
20 $html = HTML::p(array('class' => 'error'), _("Sorry, this page does not exist."));
22 elseif (!$request->isPost() || !$request->getArg('verify')) {
24 $purgeB = Button('submit:verify', _("Purge Page"), 'wikiadmin');
25 $cancelB = Button('submit:cancel', _("Cancel"), 'button'); // use generic wiki button look
27 $fieldset = HTML::fieldset(HTML::p(fmt("You are about to purge '%s'!", $pagelink)),
28 HTML::form(array('method' => 'post',
29 'action' => $request->getPostURL()),
30 HiddenInputs(array('currentversion' => $version,
31 'pagename' => $page->getName(),
32 'action' => 'purge')),
33 HTML::div(array('class' => 'toolbar'),
35 $WikiTheme->getButtonSeparator(),
38 $sample = HTML::div(array('class' => 'transclusion'));
39 // simple and fast preview expanding only newlines
40 foreach (explode("\n", firstNWordsOfContent(100, $current->getPackedContent())) as $s) {
41 $sample->pushContent($s, HTML::br());
43 $html = HTML($fieldset, HTML::div(array('class' => 'wikitext'), $sample));
45 elseif ($request->getArg('currentversion') != $version) {
46 $html = HTML(HTML::p(array('class' => 'error'), (_("Someone has edited the page!"))),
47 HTML::p(fmt("Since you started the purge process, someone has saved a new version of %s. Please check to make sure you still want to permanently purge the page from the database.", $pagelink)));
51 $pagename = $page->getName();
52 $dbi = $request->getDbh();
53 $dbi->purgePage($pagename);
55 $html = HTML::p(array('class' => 'feedback'), fmt("Purged page '%s' successfully.", $pagename));
58 GeneratePage($html, _("Purge Page"));
65 // c-hanging-comment-ender-p: nil
66 // indent-tabs-mode: nil