#author("2017-06-19T17:17:48+09:00","","") **[[質問箱5/264]] [#t02cf5fe] #author("2018-03-11T22:15:20+09:00;2017-06-19T17:17:48+09:00","","") **[[質問箱/5264]] [#t02cf5fe] |RIGHT:70|LEFT:410|c |~カテゴリ|サイト管理・運営| |~サマリ|pcommentのコメントの削除防止方法を探しています| |~バージョン|1.51| |~投稿者|| |~状態|完了| |~投稿日|&new{2017-06-16 (金) 18:53:30};| ***質問 [#lbf3fcd6] [[質問箱5/82]]の方と同じくコメントをあたりかまわず削除してしまう人がいます。 ~[[質問箱5/82]]の回答2に従ってpcomment.inc.phpの193行目のcheck_editable関数をコメントアウトしたのですが、これだとコメントした瞬間にコメントページの凍結が解除されてしまい一時的な予防にしかなりませんでした。 [[質問箱/5082]]の方と同じくコメントをあたりかまわず削除してしまう人がいます。 ~[[質問箱/5082]]の回答2に従ってpcomment.inc.phpの193行目のcheck_editable関数をコメントアウトしたのですが、これだとコメントした瞬間にコメントページの凍結が解除されてしまい一時的な予防にしかなりませんでした。 ~pcommentのフォームから投稿するときにだけページの凍結を解除し、コメントページに内容を反映したときに自動で凍結しなおすような仕様にpcommentプラグインを改造できないでしょうか? もしくは、凍結を使用せずに同じような削除・改変防止機能を実現することはできるでしょうか? ***回答 [#h8621c89] - 「コメントした瞬間にコメントページの凍結が解除されてしまい」この動作がpukiwikiのバグですね。以下のようにすると修正できます。「-」の行を削除、「+」の行を追加です。 -- [[umorigu]] &new{2017-06-18 (日) 19:14:01}; lib/func.php 118行目 diff --git a/lib/func.php b/lib/func.php index c1e38bc..4d929ab 100644 --- a/lib/func.php +++ b/lib/func.php @@ -118,11 +118,10 @@ function is_freeze($page, $clearcache = FALSE) die('is_freeze(): fopen() failed: ' . htmlsc($page)); flock($fp, LOCK_SH) or die('is_freeze(): flock() failed'); rewind($fp); - $buffer = fgets($fp, 9); + $buffer = fread($fp, 1000); flock($fp, LOCK_UN) or die('is_freeze(): flock() failed'); fclose($fp) or die('is_freeze(): fclose() failed: ' . htmlsc($page)); - $is_freeze[$page] = ($buffer != FALSE && rtrim($buffer, "\r\n") == '#freeze'); + $is_freeze[$page] = (bool) preg_match('/^#freeze$/m', $buffer); return $is_freeze[$page]; } } plugin/unfreeze.inc.php 32行目 --- a/plugin/unfreeze.inc.php +++ b/plugin/unfreeze.inc.php @@ -30,7 +30,11 @@ function plugin_unfreeze_action() } 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); - ありがとうございます! 教えていただいたとおりに修正したらしっかりと機能しました。 -- [[質問者]] &new{2017-06-19 (月) 10:44:53}; #comment