2 rcs_id('$Id: removepage.php,v 1.25 2004-12-09 22:10:54 rurban Exp $');
3 require_once('lib/Template.php');
5 function RemovePage (&$request) {
8 $page = $request->getPage();
9 $pagelink = WikiLink($page);
11 if ($request->getArg('cancel')) {
12 $request->redirect(WikiURL($page)); // noreturn
15 $current = $page->getCurrentRevision();
17 if (!$current or !($version = $current->getVersion())) {
18 $html = HTML(HTML::h2(_("Already deleted")),
19 HTML::p(_("Sorry, this page is not in the database.")));
21 elseif (!$request->isPost() || !$request->getArg('verify')) {
23 $removeB = Button('submit:verify', _("Remove Page"), 'wikiadmin');
24 $cancelB = Button('submit:cancel', _("Cancel"), 'button'); // use generic wiki button look
26 $html = HTML(HTML::h2(fmt("You are about to remove '%s'!", $pagelink)),
27 HTML::form(array('method' => 'post',
28 'action' => $request->getPostURL()),
29 HiddenInputs(array('currentversion' => $version,
30 'pagename' => $page->getName(),
31 'action' => 'remove')),
33 HTML::div(array('class' => 'toolbar'),
35 $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->pushContent(HTML::div(array('class' => 'wikitext'),
47 elseif ($request->getArg('currentversion') != $version) {
48 $html = HTML(HTML::h2(_("Someone has edited the page!")),
49 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 $link = HTML::a(array('href' => 'javascript:history.go(-2)'),
58 _("Back to the previous page."));
59 $html = HTML(HTML::h2(fmt("Removed page '%s' successfully.", $pagename)),
60 HTML::div($link), HTML::hr());
63 GeneratePage($html, _("Remove page"));
72 // c-hanging-comment-ender-p: nil
73 // indent-tabs-mode: nil