OSDN Git Service

BugTrack2/139: Correct. Deleted a first space at preview.
[pukiwiki/pukiwiki.git] / plugin / unfreeze.inc.php
1 <?php
2 // PukiWiki - Yet another WikiWikiWeb clone.
3 // $Id: unfreeze.inc.php,v 1.10 2004/12/18 01:24:21 henoheno Exp $
4 //
5 // Unfreeze(Unlock) plugin
6
7 // Show edit form when unfreezed
8 define('PLUGIN_UNFREEZE_EDIT', TRUE);
9
10 function plugin_unfreeze_action()
11 {
12         global $script, $vars, $function_freeze;
13         global $_title_isunfreezed, $_title_unfreezed, $_title_unfreeze;
14         global $_msg_invalidpass, $_msg_unfreezing, $_btn_unfreeze;
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                 // Unfreezed already
24                 $msg  = & $_title_isunfreezed;
25                 $body = str_replace('$1', htmlspecialchars(strip_bracket($page)),
26                         $_title_isunfreezed);
27
28         } else if ($pass !== NULL && pkwk_login($pass)) {
29                 // Unfreeze
30                 $postdata = get_source($page);
31                 array_shift($postdata);
32                 $postdata = join('', $postdata);
33                 file_write(DATA_DIR, $page, $postdata, TRUE);
34
35                 // Update 
36                 is_freeze($page, TRUE);
37                 if (PLUGIN_UNFREEZE_EDIT) {
38                         $vars['cmd'] = 'read'; // To show 'Freeze' link
39                         $msg  = & $_title_unfreezed;
40                         $body = edit_form($page, $postdata);
41                 } else {
42                         $vars['cmd'] = 'read';
43                         $msg  = & $_title_unfreezed;
44                         $body = '';
45                 }
46
47         } else {
48                 // Show unfreeze form
49                 $msg    = & $_title_unfreeze;
50                 $s_page = htmlspecialchars($page);
51                 $body   = ($pass === NULL) ? '' : "<p><strong>$_msg_invalidpass</strong></p>\n";
52                 $body  .= <<<EOD
53 <p>$_msg_unfreezing</p>
54 <form action="$script" method="post">
55  <div>
56   <input type="hidden"   name="cmd"  value="unfreeze" />
57   <input type="hidden"   name="page" value="$s_page" />
58   <input type="password" name="pass" size="12" />
59   <input type="submit"   name="ok"   value="$_btn_unfreeze" />
60  </div>
61 </form>
62 EOD;
63         }
64
65         return array('msg'=>$msg, 'body'=>$body);
66 }
67 ?>