]> CyberLeo.Net >> Repos - SourceForge/phpwiki.git/blob - lib/editpage.php
log
[SourceForge/phpwiki.git] / lib / editpage.php
1 <?php
2 rcs_id('$Id: editpage.php,v 1.12 2001-02-13 05:54:38 dairiki Exp $');
3
4    // editpage relies on $pagename, $version
5
6    $currentpage = RetrievePage($dbi, $pagename, $WikiPageStore);
7    $editing_copy = isset($version) && $version == 'archive';
8
9    if ($editing_copy) {   
10       $banner = htmlspecialchars (sprintf (gettext ("Copy of %s"), $pagename));
11       $pagehash = RetrievePage($dbi, $pagename, $ArchivePageStore);
12    } else {
13       $banner = htmlspecialchars($pagename);
14       $pagehash = $currentpage;
15    }
16
17    if (is_array($pagehash)) {
18
19       if (($pagehash['flags'] & FLAG_PAGE_LOCKED) && !$user->is_admin()) {
20          $html = "<p>";
21          $html .= gettext ("This page has been locked by the administrator and cannot be edited.");
22          $html .= "\n<p>";
23          $html .= gettext ("Sorry for the inconvenience.");
24          $html .= "\n";
25          echo GeneratePage('MESSAGE', $html,
26                            sprintf (gettext ("Problem while editing %s"), $pagename), 0);
27          ExitWiki ("");
28       }
29
30       $textarea = implode("\n", $pagehash["content"]);
31       if ($editing_copy) {
32          $pagehash["version"] = $currentpage["version"];
33       }
34       else {
35          if ($pagehash["version"] > 1 && IsInArchive($dbi, $pagename)) {
36             $pagehash["copy"] = 1;
37          }
38       }
39    } else {
40       $textarea = sprintf(gettext ("Describe %s here."),
41                                 htmlspecialchars($pagename));
42       unset($pagehash);
43       $pagehash["version"] = 0;
44       $pagehash["lastmodified"] = time();
45       $pagehash["author"] = '';
46       $currentpage = $pagehash;
47    }
48
49    if (empty($pagehash['copy']))
50       $do_archive = false;
51    else if ( $user->is_admin() )
52       $do_archive = 'probably';
53    else if ( $user->id() == $currentpage['author'] )
54    {
55       $page_age = time() - $currentpage['lastmodified'];
56       if ($page_age < MINOR_EDIT_TIMEOUT)
57          $do_archive = 'maybe';
58       else
59          $do_archive = 'probably';
60    }
61    else
62       $do_archive = 'force';
63
64    if ($do_archive == 'probably' || $do_archive == 'maybe')
65    {
66       $pagehash['minor_edit_checkbox']
67           = Element('input', array('type' => 'checkbox',
68                                    'name' => 'minor_edit',
69                                    'value' => 'yes',
70                                    'checked' => ($do_archive == 'probably')));
71    }
72
73    echo GeneratePage('EDITPAGE', $textarea, $pagename, $pagehash);   
74
75 // For emacs users
76 // Local Variables:
77 // mode: php
78 // c-file-style: "ellemtel"
79 // End:   
80 ?>