2 rcs_id('$Id: editpage.php,v 1.20 2002-01-09 18:48:03 carstenklapp Exp $');
4 require_once('lib/transform.php');
5 require_once('lib/Template.php');
7 function editPage($dbi, $request) {
8 // editpage relies on $pagename, $version
9 $pagename = $request->getArg('pagename');
10 $version = $request->getArg('version');
12 $page = $dbi->getPage($pagename);
13 $current = $page->getCurrentRevision();
15 if ($version === false) {
19 $selected = $page->getRevision($version);
21 NoSuchRevision($page, $version); // noreturn
24 global $user; // FIXME: make this non-global.
25 if ($page->get('locked') && !$user->is_admin()) {
27 $html = QElement('p');
28 $html .= QElement('strong', _("Note:")) . " ";
29 $html .= _("This page has been locked by the administrator and cannot be edited.");
31 //$html .= QElement('p', _("Sorry for the inconvenience.")) . "\n";
33 //echo GeneratePage('MESSAGE', $html,
34 // sprintf(_("Problem while editing %s"),
35 // $request->getArg('pagename')),
41 // (This is a bit kludgy...)
43 // This renders the page but the title and the links at the
44 // bottom of the page don't draw:
46 // Fatal error: Call to a member function on a non-object
48 // FIXME: The ViewSource (ViewMarkup) plugin should be worked
51 $template = new WikiTemplate('BROWSE');
52 $template->replace('TITLE', $pagename);
53 $template->replace('EDIT_FAIL_MESSAGES', $html
54 . QElement('hr', array('noshade' => 'noshade'))
56 $template->replace('CONTENT', do_transform($selected->getContent()));
57 echo $template->getExpansion();
62 $age = time() - $current->get('mtime');
63 $minor_edit = ( $age < MINOR_EDIT_TIMEOUT && $current->get('author') == $user->id() );
65 $formvars = array('content' => htmlspecialchars($selected->getPackedContent()),
66 'minor_edit' => $minor_edit ? 'checked' : '',
67 'version' => $selected->getVersion(),
68 'editversion' => $current->getVersion(),
71 'pagename' => htmlspecialchars($pagename));
73 $template = new WikiTemplate('EDITPAGE');
74 $template->setPageRevisionTokens($selected);
75 $template->replace('FORMVARS', $formvars);
76 echo $template->getExpansion();
83 // c-hanging-comment-ender-p: nil
84 // indent-tabs-mode: nil