]> CyberLeo.Net >> Repos - SourceForge/phpwiki.git/blob - lib/editpage.php
some preparations for adding ViewSource (ViewMarkup) plugin to the page when a user...
[SourceForge/phpwiki.git] / lib / editpage.php
1 <?php
2 rcs_id('$Id: editpage.php,v 1.20 2002-01-09 18:48:03 carstenklapp Exp $');
3
4 require_once('lib/transform.php');
5 require_once('lib/Template.php');
6
7 function editPage($dbi, $request) {
8     // editpage relies on $pagename, $version
9     $pagename = $request->getArg('pagename');
10     $version  = $request->getArg('version');
11     
12     $page    = $dbi->getPage($pagename);
13     $current = $page->getCurrentRevision();
14
15     if ($version === false) {
16         $selected = $current;
17     }
18     else {
19         $selected = $page->getRevision($version);
20         if (!$selected)
21             NoSuchRevision($page, $version); // noreturn
22     }
23
24     global $user;               // FIXME: make this non-global.
25     if ($page->get('locked') && !$user->is_admin()) {
26
27         $html = QElement('p');
28         $html .= QElement('strong', _("Note:")) . " ";
29         $html .= _("This page has been locked by the administrator and cannot be edited.");
30         $html .= "\n";
31         //$html .= QElement('p', _("Sorry for the inconvenience.")) . "\n";
32
33         //echo GeneratePage('MESSAGE', $html,
34         //                  sprintf(_("Problem while editing %s"),
35         //                          $request->getArg('pagename')),
36         //                  $selected);
37
38         //ExitWiki ("");
39
40         // Page locked.
41         // (This is a bit kludgy...)
42
43         // This renders the page but the title and the links at the
44         // bottom of the page don't draw:
45         //
46         // Fatal error: Call to a member function on a non-object
47         //
48         // FIXME: The ViewSource (ViewMarkup) plugin should be worked
49         //        into here somehow.
50
51         $template = new WikiTemplate('BROWSE');
52         $template->replace('TITLE', $pagename);
53         $template->replace('EDIT_FAIL_MESSAGES', $html
54                            . QElement('hr', array('noshade' => 'noshade'))
55                            . "\n");
56         $template->replace('CONTENT', do_transform($selected->getContent()));
57         echo $template->getExpansion();
58         ExitWiki ("");
59     }
60
61
62     $age = time() - $current->get('mtime');
63     $minor_edit = ( $age < MINOR_EDIT_TIMEOUT && $current->get('author') == $user->id() );
64
65     $formvars = array('content'     => htmlspecialchars($selected->getPackedContent()),
66                       'minor_edit'  => $minor_edit ? 'checked' : '',
67                       'version'     => $selected->getVersion(),
68                       'editversion' => $current->getVersion(),
69                       'summary'     => '',
70                       'convert'     => '',
71                       'pagename'    => htmlspecialchars($pagename));
72
73     $template = new WikiTemplate('EDITPAGE');
74     $template->setPageRevisionTokens($selected);
75     $template->replace('FORMVARS', $formvars);
76     echo $template->getExpansion();
77 }
78
79 // Local Variables:
80 // mode: php
81 // tab-width: 8
82 // c-basic-offset: 4
83 // c-hanging-comment-ender-p: nil
84 // indent-tabs-mode: nil
85 // End:   
86 ?>