3 require_once 'lib/Template.php';
6 * @param WikiRequest $request
8 function RemovePage(&$request)
12 $page = $request->getPage();
13 $pagelink = WikiLink($page);
15 if ($request->getArg('cancel')) {
16 $request->redirect(WikiURL($page,
17 array('warningmsg' => _('Remove cancelled'))));
21 $current = $page->getCurrentRevision();
23 if (!$current or !($version = $current->getVersion())) {
24 $html = HTML::p(array('class' => 'error'), _("Sorry, this page does not exist."));
25 } elseif (!$request->isPost() || !$request->getArg('verify')) {
27 $removeB = Button('submit:verify', _("Remove Page"), 'wikiadmin');
28 $cancelB = Button('submit:cancel', _("Cancel"), 'button'); // use generic wiki button look
30 $fieldset = HTML::fieldset(HTML::legend(_('Confirm removal')),
31 HTML::p(fmt("You are about to remove ā%sā!", $pagelink)),
32 HTML::form(array('method' => 'post',
33 'action' => $request->getPostURL()),
34 HiddenInputs(array('currentversion' => $version,
35 'pagename' => $page->getName(),
36 'action' => 'remove')),
37 HTML::div(array('class' => 'toolbar'),
39 $WikiTheme->getButtonSeparator(),
42 $sample = HTML::div(array('class' => 'transclusion'));
43 // simple and fast preview expanding only newlines
44 foreach (explode("\n", firstNWordsOfContent(100, $current->getPackedContent())) as $s) {
45 $sample->pushContent($s, HTML::br());
47 $html = HTML($fieldset, HTML::div(array('class' => 'wikitext'), $sample));
48 } elseif ($request->getArg('currentversion') != $version) {
49 $html = HTML(HTML::p(array('class' => 'error'), (_("Someone has edited the page!"))),
50 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)));
53 $pagename = $page->getName();
54 $dbi = $request->getDbh();
55 $dbi->deletePage($pagename);
57 $html = HTML::p(array('class' => 'feedback'), fmt("Removed page ā%sā successfully.", $pagename));
60 GeneratePage($html, _("Remove Page"));
67 // c-hanging-comment-ender-p: nil
68 // indent-tabs-mode: nil