3 require_once 'lib/Template.php';
5 function RemovePage(&$request)
9 $page = $request->getPage();
10 $pagelink = WikiLink($page);
12 if ($request->getArg('cancel')) {
13 $request->redirect(WikiURL($page,
14 array('warningmsg' => _('Remove cancelled'))));
18 $current = $page->getCurrentRevision();
20 if (!$current or !($version = $current->getVersion())) {
21 $html = HTML::p(array('class' => 'error'), _("Sorry, this page does not exist."));
22 } elseif (!$request->isPost() || !$request->getArg('verify')) {
24 $removeB = Button('submit:verify', _("Remove Page"), 'wikiadmin');
25 $cancelB = Button('submit:cancel', _("Cancel"), 'button'); // use generic wiki button look
27 $fieldset = HTML::fieldset(HTML::legend(_('Confirm removal')),
28 HTML::p(fmt("You are about to remove '%s'!", $pagelink)),
29 HTML::form(array('method' => 'post',
30 'action' => $request->getPostURL()),
31 HiddenInputs(array('currentversion' => $version,
32 'pagename' => $page->getName(),
33 'action' => 'remove')),
34 HTML::div(array('class' => 'toolbar'),
36 $WikiTheme->getButtonSeparator(),
39 $sample = HTML::div(array('class' => 'transclusion'));
40 // simple and fast preview expanding only newlines
41 foreach (explode("\n", firstNWordsOfContent(100, $current->getPackedContent())) as $s) {
42 $sample->pushContent($s, HTML::br());
44 $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 deletion process, someone has saved a new version of %s. Please check to make sure you still want to permanently remove the page from the database.", $pagelink)));
50 $pagename = $page->getName();
51 $dbi = $request->getDbh();
52 $dbi->deletePage($pagename);
54 $html = HTML::p(array('class' => 'feedback'), fmt("Removed page '%s' successfully.", $pagename));
57 GeneratePage($html, _("Remove Page"));
64 // c-hanging-comment-ender-p: nil
65 // indent-tabs-mode: nil