OSDN Git Service

Clear is_freeze() cache when freezed/unfreezed
[pukiwiki/pukiwiki.git] / plugin / unfreeze.inc.php
1 <?php
2 /////////////////////////////////////////////////
3 // PukiWiki - Yet another WikiWikiWeb clone.
4 //
5 // $Id: unfreeze.inc.php,v 1.8 2004/12/16 13:09:48 henoheno Exp $
6 //
7 // Åà·ë²ò½ü
8
9 // Åà·ë²ò½ü»þ¤Ë¥Ú¡¼¥¸¤ÎÊÔ½¸¥Õ¥©¡¼¥à¤òɽ¼¨¤¹¤ë¤«
10 define('UNFREEZE_EDIT', FALSE);
11
12 function plugin_unfreeze_action()
13 {
14         global $script, $vars, $function_freeze;
15         global $_title_isunfreezed, $_title_unfreezed, $_title_unfreeze;
16         global $_msg_invalidpass, $_msg_unfreezing, $_btn_unfreeze;
17
18         $page = isset($vars['page']) ? $vars['page'] : '';
19
20         if (!$function_freeze or !is_page($page))
21                 return array('msg' => '', 'body' => '');
22
23         $pass = isset($vars['pass']) ? $vars['pass'] : NULL;
24
25         if (!is_freeze($page)) {
26                 return array(
27                         'msg'  => $_title_isunfreezed,
28                         'body' => str_replace('$1', htmlspecialchars(strip_bracket($page)), $_title_isunfreezed)
29                 );
30         } else if ($pass !== NULL && pkwk_login($pass)) {
31                 $postdata = get_source($page);
32                 array_shift($postdata);
33                 $postdata = join('', $postdata);
34
35                 file_write(DATA_DIR, $page, $postdata, TRUE);
36
37                 is_freeze($page, TRUE);
38                 if (UNFREEZE_EDIT) {
39                         $vars['cmd'] = 'edit';
40                         return array('msg' => $_title_unfreezed, 'body' => '');
41                 } else {
42                         $vars['cmd'] = 'read';
43                         return array(
44                                 'msg'  => $_title_unfreezed,
45                                 'body' => edit_form($page, $postdata)
46                         );
47                 }
48         }
49
50         // Åà·ë²ò½ü¥Õ¥©¡¼¥à¤òɽ¼¨
51         $s_page = htmlspecialchars($page);
52
53         $body = ($pass === NULL) ? '' : "<p><strong>$_msg_invalidpass</strong></p>\n";
54         $body .= <<<EOD
55 <p>$_msg_unfreezing</p>
56 <form action="$script" method="post">
57  <div>
58   <input type="hidden"   name="cmd"  value="unfreeze" />
59   <input type="hidden"   name="page" value="$s_page" />
60   <input type="password" name="pass" size="12" />
61   <input type="submit"   name="ok"   value="$_btn_unfreeze" />
62  </div>
63 </form>
64 EOD;
65
66         return array('msg' => $_title_unfreeze, 'body' => $body);
67 }
68 ?>