2 rcs_id('$Id: editpage.php,v 1.18 2001-11-14 21:05:38 dairiki Exp $');
4 require_once('lib/Template.php');
6 function editPage($dbi, $request) {
7 // editpage relies on $pagename, $version
8 $pagename = $request->getArg('pagename');
9 $version = $request->getArg('version');
11 $page = $dbi->getPage($pagename);
12 $current = $page->getCurrentRevision();
14 if ($version === false) {
18 $selected = $page->getRevision($version);
20 NoSuchRevision($page, $version); // noreturn
23 global $user; // FIXME: make this non-global.
24 if ($page->get('locked') && !$user->is_admin()) {
26 gettext ("This page has been locked by the administrator and cannot be edited."));
28 $html .= QElement('p', gettext ("Sorry for the inconvenience.")) . "\n";
30 echo GeneratePage('MESSAGE', $html,
31 sprintf(gettext("Problem while editing %s"),
32 $request->getArg('pagename')),
38 $age = time() - $current->get('mtime');
39 $minor_edit = ( $age < MINOR_EDIT_TIMEOUT && $current->get('author') == $user->id() );
41 $formvars = array('content' => htmlspecialchars($selected->getPackedContent()),
42 'minor_edit' => $minor_edit ? 'checked' : '',
43 'version' => $selected->getVersion(),
44 'editversion' => $current->getVersion(),
47 'pagename' => htmlspecialchars($pagename));
49 $template = new WikiTemplate('EDITPAGE');
50 $template->setPageRevisionTokens($selected);
51 $template->replace('FORMVARS', $formvars);
52 echo $template->getExpansion();
59 // c-hanging-comment-ender-p: nil
60 // indent-tabs-mode: nil