]> CyberLeo.Net >> Repos - SourceForge/phpwiki.git/blob - lib/editpage.php
Big Template cleanup and refactor.
[SourceForge/phpwiki.git] / lib / editpage.php
1 <?php
2 rcs_id('$Id: editpage.php,v 1.30 2002-01-24 00:45:28 dairiki Exp $');
3
4 require_once('lib/transform.php');
5 require_once('lib/Template.php');
6
7 function editPage(&$request, $do_preview = false) {
8     // editpage relies on $pagename, $version
9     $pagename = $request->getArg('pagename');
10     $version  = $request->getArg('version');
11     
12     $page    = $request->getPage();
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($request, $page, $version); // noreturn
22     }
23
24     global $Theme;
25     $user = $request->getUser();
26     $pagelink = $Theme->LinkExistingWikiWord($pagename, '', $version);
27
28     if ($page->get('locked') && !$user->isAdmin()) {
29         $title = fmt("View Source: %s", $pagelink);
30         $template = Template('viewsource');
31         $do_preview = false;
32     }
33     else {
34         $title = fmt("Edit: %s", $pagelink);
35         $template = Template('editpage');
36     }
37
38     if ($do_preview) {
39         foreach (array('minor_edit', 'convert') as $key)
40             $formvars[$key] = (bool) $request->getArg($key);
41         foreach (array('content', 'editversion', 'summary', 'pagename',
42                        'version') as $key)
43             $formvars[$key] = (string) $request->getArg($key);
44
45         $template->replace('PREVIEW_CONTENT',
46                            do_transform($request->getArg('content')));
47     }
48     else {
49         $age = time() - $current->get('mtime');
50         $minor_edit = ( $age < MINOR_EDIT_TIMEOUT && $current->get('author') == $user->getId() );
51         
52         $formvars = array('content'     => $selected->getPackedContent(),
53                           'minor_edit'  => $minor_edit,
54                           'version'     => $selected->getVersion(),
55                           'editversion' => $current->getVersion(),
56                           'summary'     => '',
57                           'convert'     => '',
58                           'pagename'    => $pagename);
59     }
60
61     $template->replace('FORMVARS', $formvars);
62     GeneratePage($template, $title, $selected);
63 }
64
65 // Local Variables:
66 // mode: php
67 // tab-width: 8
68 // c-basic-offset: 4
69 // c-hanging-comment-ender-p: nil
70 // indent-tabs-mode: nil
71 // End:   
72 ?>