元タイトル : attachプラグインでencode_hintが二重出力される
attachプラグインを張ったページでプレビューを行った場合、
<form enctype="multipart/form-data" action="http://(url)" method="post"> <div><input type="hidden" name="encode_hint" value="ぷ" /></div> <div><input type="hidden" name="encode_hint" value="ぷ" /></div>
というように、encode_hintが二重出力されてしまいます。
内容が同じなので、影響は少ないですが、
HTML的にはあまり良くないような気がします。
diff -u -r1.9 plugin.php --- plugin.php 27 Sep 2003 15:26:19 -0000 1.9 +++ plugin.php 17 Nov 2003 12:03:39 -0000 @@ -93,7 +93,8 @@ $retvar = call_user_func('plugin_'.$name.'_action'); // 文字エンコーディング検出用 hidden フィールドを挿入する - return preg_replace('/(<form[^>]*>)/',"$1\n<div><input type=\"hidden\" name=\"encode_hint\" value=\"ぷ\" /></div>",$retvar); + return preg_replace('/(<form[^>]*>)(?!\n<div><input type="hidden" name="encode_hint")/', + "$1\n<div><input type=\"hidden\" name=\"encode_hint\" value=\"ぷ\" /></div>",$retvar); } //プラグイン(convert)を実行 @@ -118,7 +119,8 @@ } // 文字エンコーディング検出用 hidden フィールドを挿入する - return preg_replace('/(<form[^>]*>)/',"$1\n<div><input type=\"hidden\" name=\"encode_hint\" value=\"ぷ\" /></div>",$retvar); + return preg_replace('/(<form[^>]*>)(?!\n<div><input type="hidden" name="encode_hint")/', + "$1\n<div><input type=\"hidden\" name=\"encode_hint\" value=\"ぷ\" /></div>",$retvar); } //プラグイン(inline)を実行