2 // PukiWiki - Yet another WikiWikiWeb clone.
4 // Copyright 2003-2017 PukiWiki Development Team
5 // License: GPL v2 or (at your option) any later version
7 // Unfreeze(Unlock) plugin
9 // Show edit form when unfreezed
10 define('PLUGIN_UNFREEZE_EDIT', TRUE);
12 function plugin_unfreeze_action()
14 global $vars, $function_freeze;
15 global $_title_isunfreezed, $_title_unfreezed, $_title_unfreeze;
16 global $_msg_invalidpass, $_msg_unfreezing, $_btn_unfreeze;
18 $script = get_base_uri();
19 $page = isset($vars['page']) ? $vars['page'] : '';
20 if (! $function_freeze || ! is_page($page))
21 return array('msg' => '', 'body' => '');
23 $pass = isset($vars['pass']) ? $vars['pass'] : NULL;
25 if (! is_freeze($page)) {
27 $msg = $_title_isunfreezed;
28 $body = str_replace('$1', htmlsc(strip_bracket($page)),
31 } else if ($pass !== NULL && pkwk_login($pass)) {
33 $postdata = get_source($page);
34 for ($i = count($postdata) - 1; $i >= 0; $i--) {
35 if ("#freeze\n" === $postdata[$i]) {
39 $postdata = join('', $postdata);
40 file_write(DATA_DIR, $page, $postdata, TRUE);
43 is_freeze($page, TRUE);
44 if (PLUGIN_UNFREEZE_EDIT) {
45 $vars['cmd'] = 'read'; // To show 'Freeze' link
46 $msg = $_title_unfreezed;
47 $postdata = remove_author_info($postdata);
48 $body = edit_form($page, $postdata);
50 $vars['cmd'] = 'read';
51 $msg = $_title_unfreezed;
56 $msg = $_title_unfreeze;
57 $s_page = htmlsc($page);
58 $body = ($pass === NULL) ? '' : "<p><strong>$_msg_invalidpass</strong></p>\n";
60 <p>$_msg_unfreezing</p>
61 <form action="$script" method="post">
63 <input type="hidden" name="cmd" value="unfreeze" />
64 <input type="hidden" name="page" value="$s_page" />
65 <input type="password" name="pass" size="12" />
66 <input type="submit" name="ok" value="$_btn_unfreeze" />
71 return array('msg'=>$msg, 'body'=>$body);