OSDN Git Service

BugTrack2/139: Correct. Deleted a first space at preview.
[pukiwiki/pukiwiki.git] / plugin / freeze.inc.php
1 <?php
2 // PukiWiki - Yet another WikiWikiWeb clone.
3 // $Id: freeze.inc.php,v 1.9 2004/12/16 13:32:19 henoheno Exp $
4 //
5 // Freeze(Lock) plugin
6
7 // Reserve 'Do nothing'. '^#freeze' is for internal use only.
8 function plugin_freeze_convert() { return ''; }
9
10 function plugin_freeze_action()
11 {
12         global $script, $vars, $function_freeze;
13         global $_title_isfreezed, $_title_freezed, $_title_freeze;
14         global $_msg_invalidpass, $_msg_freezing, $_btn_freeze;
15
16         $page = isset($vars['page']) ? $vars['page'] : '';
17         if (! $function_freeze || ! is_page($page))
18                 return array('msg' => '', 'body' => '');
19
20         $pass = isset($vars['pass']) ? $vars['pass'] : NULL;
21         $msg = $body = '';
22         if (is_freeze($page)) {
23                 // Freezed already
24                 $msg  = & $_title_isfreezed;
25                 $body = str_replace('$1', htmlspecialchars(strip_bracket($page)),
26                         $_title_isfreezed);
27
28         } else if ($pass !== NULL && pkwk_login($pass)) {
29                 // Freeze
30                 $postdata = get_source($page);
31                 array_unshift($postdata, "#freeze\n");
32                 file_write(DATA_DIR, $page, join('', $postdata), TRUE);
33
34                 // Update
35                 is_freeze($page, TRUE);
36                 $vars['cmd'] = 'read';
37                 $msg  = & $_title_freezed;
38                 $body = '';
39
40         } else {
41                 // Show a freeze form
42                 $msg    = & $_title_freeze;
43                 $s_page = htmlspecialchars($page);
44                 $body   = ($pass === NULL) ? '' : "<p><strong>$_msg_invalidpass</strong></p>\n";
45                 $body  .= <<<EOD
46 <p>$_msg_freezing</p>
47 <form action="$script" method="post">
48  <div>
49   <input type="hidden"   name="cmd"  value="freeze" />
50   <input type="hidden"   name="page" value="$s_page" />
51   <input type="password" name="pass" size="12" />
52   <input type="submit"   name="ok"   value="$_btn_freeze" />
53  </div>
54 </form>
55 EOD;
56         }
57
58         return array('msg'=>$msg, 'body'=>$body);
59 }
60 ?>