]> CyberLeo.Net >> Repos - SourceForge/phpwiki.git/blob - lib/purgepage.php
Allow bold, italics or underlined for numbers
[SourceForge/phpwiki.git] / lib / purgepage.php
1 <?php
2
3 require_once 'lib/Template.php';
4
5 function PurgePage(&$request)
6 {
7     global $WikiTheme;
8
9     $page = $request->getPage();
10     $pagelink = WikiLink($page);
11
12     if ($request->getArg('cancel')) {
13         $request->redirect(WikiURL($page,
14             array('warningmsg' => _('Purge cancelled'))));
15         // noreturn
16     }
17
18     $current = $page->getCurrentRevision();
19
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')) {
23
24         $purgeB = Button('submit:verify', _("Purge Page"), 'wikiadmin');
25         $cancelB = Button('submit:cancel', _("Cancel"), 'button'); // use generic wiki button look
26
27         $fieldset = HTML::fieldset(HTML::legend(_('Confirm purge')),
28             HTML::p(fmt("You are about to purge ā€œ%sā€!", $pagelink)),
29             HTML::form(array('method' => 'post',
30                     'action' => $request->getPostURL()),
31                 HiddenInputs(array('currentversion' => $version,
32                     'pagename' => $page->getName(),
33                     'action' => 'purge')),
34                 HTML::div(array('class' => 'toolbar'),
35                     $purgeB,
36                     $WikiTheme->getButtonSeparator(),
37                     $cancelB))
38         );
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());
43         }
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 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)));
48     } else {
49         // Real purge.
50         $pagename = $page->getName();
51         $dbi = $request->getDbh();
52         $dbi->purgePage($pagename);
53         $dbi->touch();
54         $html = HTML::p(array('class' => 'feedback'), fmt("Purged page ā€œ%sā€ successfully.", $pagename));
55     }
56
57     GeneratePage($html, _("Purge Page"));
58 }
59
60 // Local Variables:
61 // mode: php
62 // tab-width: 8
63 // c-basic-offset: 4
64 // c-hanging-comment-ender-p: nil
65 // indent-tabs-mode: nil
66 // End: