]> CyberLeo.Net >> Repos - SourceForge/phpwiki.git/blob - lib/editpage.php
New markup code is now more or less working.
[SourceForge/phpwiki.git] / lib / editpage.php
1 <?php
2 rcs_id('$Id: editpage.php,v 1.31 2002-01-26 01:51:13 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', 'markup') as $key)
43             $formvars[$key] = (string) $request->getArg($key);
44
45         if ($formvars['markup'] == 'new') {
46             include_once('lib/BlockParser.php');
47             $trfm = 'NewTransform';
48         }
49         else {
50             $trfm = 'do_transform';
51         }
52         $template->replace('PREVIEW_CONTENT', $trfm($request->getArg('content')));
53     }
54     else {
55         $age = time() - $current->get('mtime');
56         $minor_edit = ( $age < MINOR_EDIT_TIMEOUT && $current->get('author') == $user->getId() );
57         
58         $formvars = array('content'     => $selected->getPackedContent(),
59                           'minor_edit'  => $minor_edit,
60                           'version'     => $selected->getVersion(),
61                           'editversion' => $current->getVersion(),
62                           'markup'      => $current->get('markup'),
63                           'summary'     => '',
64                           'convert'     => '',
65                           'pagename'    => $pagename);
66     }
67
68     $template->replace('FORMVARS', $formvars);
69     GeneratePage($template, $title, $selected);
70 }
71
72 // Local Variables:
73 // mode: php
74 // tab-width: 8
75 // c-basic-offset: 4
76 // c-hanging-comment-ender-p: nil
77 // indent-tabs-mode: nil
78 // End:   
79 ?>