発端 Edit

プラグインマニュアルには,一応,ブロック型と書いてあるが,ページ内に

#freeze

と,書いてもそのページを凍結することはできないし,#freezeの記述も削除されてしまう。

と,いうことで,ちゃんとブロック型プラグインとして動作するよう改造してみました。

問題点 Edit

  • 凍結用のパスワードを知らなくても凍結できます
  • あたりまえですが,凍結解除のパスワードを知らずに凍結すると編集できません
  • spamで凍結されると消すのが面倒です

参照 Edit

改造 Edit

改造は自己責任で実施ください

見だし編集機能の改造*1をしていないもの(正規リリース版)をベース

--- edit.inc.php edit.inc.php,v 1.40
+++ edit.inc.php edit.inc.php,v 1.40改
@@ -50,7 +50,7 @@
 		$vars['msg'] = preg_replace('/^(\*{1,3}.*)\[#[A-Za-z][\w-]+\](.*)$/m', '$1$2', $vars['msg']);
 	}
 
-	$vars['msg'] = preg_replace(PLUGIN_EDIT_FREEZE_REGEX, '', $vars['msg']);
+//	$vars['msg'] = preg_replace(PLUGIN_EDIT_FREEZE_REGEX, '', $vars['msg']);
 	$postdata = $vars['msg'];
 
 	if (isset($vars['add']) && $vars['add']) {
@@ -182,7 +182,9 @@
 	$add    = isset($vars['add'])    ? $vars['add']    : '';
 	$digest = isset($vars['digest']) ? $vars['digest'] : '';
 
-	$vars['msg'] = preg_replace(PLUGIN_EDIT_FREEZE_REGEX, '', $vars['msg']);
+	if (preg_match(PLUGIN_EDIT_FREEZE_REGEX, $vars['msg'])) {
+		$vars['msg'] = "#freeze\n" . preg_replace(PLUGIN_EDIT_FREEZE_REGEX, '', $vars['msg']);
+	}
 	$msg = & $vars['msg']; // Reference
 
 	$retvars = array();

文章のドコに#freezeを書いても,ちゃんと凍結されます。*2


コメント Edit







*1 dev:BugTrack/585
*2 ドコといってもちゃんとブロック型プラグインとして書かないとダメです

トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 下位頁新規  一覧 単語検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2010-02-21 Sun 22:41:09 JST (3096d)
Valid XHTML 1.1 Valid CSS