2 rcs_id('$Id: editpage.php,v 1.30 2002-01-24 00:45:28 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',
43 $formvars[$key] = (string) $request->getArg($key);
45 $template->replace('PREVIEW_CONTENT',
46 do_transform($request->getArg('content')));
49 $age = time() - $current->get('mtime');
50 $minor_edit = ( $age < MINOR_EDIT_TIMEOUT && $current->get('author') == $user->getId() );
52 $formvars = array('content' => $selected->getPackedContent(),
53 'minor_edit' => $minor_edit,
54 'version' => $selected->getVersion(),
55 'editversion' => $current->getVersion(),
58 'pagename' => $pagename);
61 $template->replace('FORMVARS', $formvars);
62 GeneratePage($template, $title, $selected);
69 // c-hanging-comment-ender-p: nil
70 // indent-tabs-mode: nil