2 rcs_id('$Id: editpage.php,v 1.31 2002-01-26 01:51:13 dairiki Exp $');
4 require_once('lib/transform.php');
5 require_once('lib/Template.php');
7 function editPage(&$request, $do_preview = false) {
8 // editpage relies on $pagename, $version
9 $pagename = $request->getArg('pagename');
10 $version = $request->getArg('version');
12 $page = $request->getPage();
13 $current = $page->getCurrentRevision();
15 if ($version === false) {
19 $selected = $page->getRevision($version);
21 NoSuchRevision($request, $page, $version); // noreturn
25 $user = $request->getUser();
26 $pagelink = $Theme->LinkExistingWikiWord($pagename, '', $version);
28 if ($page->get('locked') && !$user->isAdmin()) {
29 $title = fmt("View Source: %s", $pagelink);
30 $template = Template('viewsource');
34 $title = fmt("Edit: %s", $pagelink);
35 $template = Template('editpage');
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);
45 if ($formvars['markup'] == 'new') {
46 include_once('lib/BlockParser.php');
47 $trfm = 'NewTransform';
50 $trfm = 'do_transform';
52 $template->replace('PREVIEW_CONTENT', $trfm($request->getArg('content')));
55 $age = time() - $current->get('mtime');
56 $minor_edit = ( $age < MINOR_EDIT_TIMEOUT && $current->get('author') == $user->getId() );
58 $formvars = array('content' => $selected->getPackedContent(),
59 'minor_edit' => $minor_edit,
60 'version' => $selected->getVersion(),
61 'editversion' => $current->getVersion(),
62 'markup' => $current->get('markup'),
65 'pagename' => $pagename);
68 $template->replace('FORMVARS', $formvars);
69 GeneratePage($template, $title, $selected);
76 // c-hanging-comment-ender-p: nil
77 // indent-tabs-mode: nil