<?php
-/////////////////////////////////////////////////
// PukiWiki - Yet another WikiWikiWeb clone.
+// unfreeze.inc.php
+// Copyright 2003-2017 PukiWiki Development Team
+// License: GPL v2 or (at your option) any later version
//
-// $Id: unfreeze.inc.php,v 1.7 2004/07/31 03:09:20 henoheno Exp $
-//
-// Åà·ë²ò½ü
+// Unfreeze(Unlock) plugin
-// Åà·ë²ò½ü»þ¤Ë¥Ú¡¼¥¸¤ÎÊÔ½¸¥Õ¥©¡¼¥à¤òɽ¼¨¤¹¤ë¤«
-define('UNFREEZE_EDIT', FALSE);
+// Show edit form when unfreezed
+define('PLUGIN_UNFREEZE_EDIT', TRUE);
function plugin_unfreeze_action()
{
- global $script, $vars, $function_freeze;
+ global $vars, $function_freeze;
global $_title_isunfreezed, $_title_unfreezed, $_title_unfreeze;
global $_msg_invalidpass, $_msg_unfreezing, $_btn_unfreeze;
+ $script = get_base_uri();
$page = isset($vars['page']) ? $vars['page'] : '';
-
- if (!$function_freeze or !is_page($page))
+ if (! $function_freeze || ! is_page($page))
return array('msg' => '', 'body' => '');
$pass = isset($vars['pass']) ? $vars['pass'] : NULL;
+ $msg = $body = '';
+ if (! is_freeze($page)) {
+ // Unfreezed already
+ $msg = $_title_isunfreezed;
+ $body = str_replace('$1', htmlsc(strip_bracket($page)),
+ $_title_isunfreezed);
- if (!is_freeze($page)) {
- return array(
- 'msg' => $_title_isunfreezed,
- 'body' => str_replace('$1', htmlspecialchars(strip_bracket($page)), $_title_isunfreezed)
- );
} else if ($pass !== NULL && pkwk_login($pass)) {
+ // Unfreeze
$postdata = get_source($page);
- array_shift($postdata);
+ for ($i = count($postdata) - 1; $i >= 0; $i--) {
+ if ("#freeze\n" === $postdata[$i]) {
+ $postdata[$i] = '';
+ }
+ }
$postdata = join('', $postdata);
-
file_write(DATA_DIR, $page, $postdata, TRUE);
- if (UNFREEZE_EDIT) {
- $vars['cmd'] = 'edit';
- return array('msg' => $_title_unfreezed, 'body' => '');
+ // Update
+ is_freeze($page, TRUE);
+ if (PLUGIN_UNFREEZE_EDIT) {
+ $vars['cmd'] = 'read'; // To show 'Freeze' link
+ $msg = $_title_unfreezed;
+ $postdata = remove_author_info($postdata);
+ $body = edit_form($page, $postdata);
} else {
$vars['cmd'] = 'read';
- return array(
- 'msg' => $_title_unfreezed,
- 'body' => edit_form($page, $postdata)
- );
+ $msg = $_title_unfreezed;
+ $body = '';
}
- }
-
- // Åà·ë²ò½ü¥Õ¥©¡¼¥à¤òɽ¼¨
- $s_page = htmlspecialchars($page);
-
- $body = ($pass === NULL) ? '' : "<p><strong>$_msg_invalidpass</strong></p>\n";
- $body .= <<<EOD
+ } else {
+ // Show unfreeze form
+ $msg = $_title_unfreeze;
+ $s_page = htmlsc($page);
+ $body = ($pass === NULL) ? '' : "<p><strong>$_msg_invalidpass</strong></p>\n";
+ $body .= <<<EOD
<p>$_msg_unfreezing</p>
<form action="$script" method="post">
<div>
</div>
</form>
EOD;
-
- return array('msg' => $_title_unfreeze, 'body' => $body);
+ }
+ return array('msg'=>$msg, 'body'=>$body);
}
-?>