]> CyberLeo.Net >> Repos - SourceForge/phpwiki.git/blob - lib/editpage.php
When creating default contents for non-existant pages, put [brackets]
[SourceForge/phpwiki.git] / lib / editpage.php
1 <?php
2 rcs_id('$Id: editpage.php,v 1.14 2001-02-15 21:33:40 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       if (preg_match("/^${WikiNameRegexp}\$/", $pagename))
41          $newpage = $pagename;
42       else
43          $newpage = "[$pagename]";
44
45       $textarea = htmlspecialchars(
46          sprintf(gettext ("Describe %s here."), $newpage));
47
48       unset($pagehash);
49       $pagehash["version"] = 0;
50       $pagehash["lastmodified"] = time();
51       $pagehash["author"] = '';
52       $currentpage = $pagehash;
53    }
54
55    if (empty($pagehash['copy']))
56       $do_archive = false;
57    else if ( $user->is_admin() )
58       $do_archive = 'probably';
59    else if ( $user->id() == $currentpage['author'] )
60    {
61       $page_age = time() - $currentpage['lastmodified'];
62       if ($page_age < MINOR_EDIT_TIMEOUT)
63          $do_archive = 'maybe';
64       else
65          $do_archive = 'probably';
66    }
67    else
68       $do_archive = 'force';
69
70    if ($do_archive == 'probably' || $do_archive == 'maybe')
71    {
72       $pagehash['minor_edit_checkbox']
73           = Element('input', array('type' => 'checkbox',
74                                    'name' => 'minor_edit',
75                                    'value' => 'yes',
76                                    'checked' => ($do_archive == 'maybe')));
77    }
78
79    echo GeneratePage('EDITPAGE', $textarea, $pagename, $pagehash);   
80
81 // For emacs users
82 // Local Variables:
83 // mode: php
84 // c-file-style: "ellemtel"
85 // End:   
86 ?>