OSDN Git Service

Check defined or undefined
[pukiwiki/pukiwiki.git] / plugin / unfreeze.inc.php
1 <?php
2 /////////////////////////////////////////////////
3 // PukiWiki - Yet another WikiWikiWeb clone.
4 //
5 // $Id: unfreeze.inc.php,v 1.7 2004/07/31 03:09:20 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                 if (UNFREEZE_EDIT) {
38                         $vars['cmd'] = 'edit';
39                         return array('msg' => $_title_unfreezed, 'body' => '');
40                 } else {
41                         $vars['cmd'] = 'read';
42                         return array(
43                                 'msg'  => $_title_unfreezed,
44                                 'body' => edit_form($page, $postdata)
45                         );
46                 }
47         }
48
49         // Åà·ë²ò½ü¥Õ¥©¡¼¥à¤òɽ¼¨
50         $s_page = htmlspecialchars($page);
51
52         $body = ($pass === NULL) ? '' : "<p><strong>$_msg_invalidpass</strong></p>\n";
53         $body .= <<<EOD
54 <p>$_msg_unfreezing</p>
55 <form action="$script" method="post">
56  <div>
57   <input type="hidden"   name="cmd"  value="unfreeze" />
58   <input type="hidden"   name="page" value="$s_page" />
59   <input type="password" name="pass" size="12" />
60   <input type="submit"   name="ok"   value="$_btn_unfreeze" />
61  </div>
62 </form>
63 EOD;
64
65         return array('msg' => $_title_unfreeze, 'body' => $body);
66 }
67 ?>