]> CyberLeo.Net >> Repos - SourceForge/phpwiki.git/blob - lib/editpage.php
XHTML fixes. At this point, PhpWiki's output is almost valid XHTML.
[SourceForge/phpwiki.git] / lib / editpage.php
1 <?php
2 rcs_id('$Id: editpage.php,v 1.18 2001-11-14 21:05:38 dairiki Exp $');
3
4 require_once('lib/Template.php');
5
6 function editPage($dbi, $request) {
7     // editpage relies on $pagename, $version
8     $pagename = $request->getArg('pagename');
9     $version = $request->getArg('version');
10     
11     $page = $dbi->getPage($pagename);
12     $current = $page->getCurrentRevision();
13
14     if ($version === false) {
15         $selected = $current;
16     }
17     else {
18         $selected = $page->getRevision($version);
19         if (!$selected)
20             NoSuchRevision($page, $version); // noreturn
21     }
22
23     global $user;               // FIXME: make this non-global.
24     if ($page->get('locked') && !$user->is_admin()) {
25         $html = QElement('p',
26                          gettext ("This page has been locked by the administrator and cannot be edited."));
27         $html .= "\n";
28         $html .= QElement('p', gettext ("Sorry for the inconvenience.")) . "\n";
29
30         echo GeneratePage('MESSAGE', $html,
31                           sprintf(gettext("Problem while editing %s"),
32                                   $request->getArg('pagename')),
33                           $selected);
34         ExitWiki ("");
35     }
36
37
38     $age = time() - $current->get('mtime');
39     $minor_edit = ( $age < MINOR_EDIT_TIMEOUT && $current->get('author') == $user->id() );
40
41     $formvars = array('content' => htmlspecialchars($selected->getPackedContent()),
42                       'minor_edit' => $minor_edit ? 'checked' : '',
43                       'version' => $selected->getVersion(),
44                       'editversion' => $current->getVersion(),
45                       'summary' => '',
46                       'convert' => '',
47                       'pagename' => htmlspecialchars($pagename));
48
49     $template = new WikiTemplate('EDITPAGE');
50     $template->setPageRevisionTokens($selected);
51     $template->replace('FORMVARS', $formvars);
52     echo $template->getExpansion();
53 }
54
55 // Local Variables:
56 // mode: php
57 // tab-width: 8
58 // c-basic-offset: 4
59 // c-hanging-comment-ender-p: nil
60 // indent-tabs-mode: nil
61 // End:   
62 ?>