[[PukiWiki/1.4/ちょっと便利に]] **概要 [#kcf556a5] ページの作成時、長すぎるページを作成できないようにします。[ページの更新]のタイミングでエラーにするのではなく、編集自体をさせないようにします。 - 既に存在するページについては編集可能 - PukiWikiがEUC-JP版の場合、UTF-8換算したときの長さで制限 -- UTF-8に移行するときに変換できないページを作成してしまわないため -- この動作をさせないためには「if (! defined('PKWK_UTF8_ENABLE'))」のブロックを削除 - ファイル名最大長は $filename_max_length = 254; で変更 - 添付ファイルについては未対応 **差分 [#r80f8a09] 1.4.7 UTF-8版からの差分 --- ../../../pukiwiki2/public/plugin/edit.inc.php Sun Feb 13 11:01:19 2011 +++ edit.inc.php Sun Mar 6 22:35:31 2011 @@ -28,6 +28,29 @@ } $postdata = @join('', get_source($page)); + if ($postdata == '') + { + // Check Page name length + $filename_max_length = 254; + + $filename = encode($page) . '.txt'; + if (! defined('PKWK_UTF8_ENABLE')) + { + $utf8page = mb_convert_encoding($page, 'UTF-8', 'EUC-JP'); + $filename = encode($utf8page) . '.txt'; + } + $filename_length = strlen($filename); + if ($filename_length > $filename_max_length) + { + $msg = "<b>Error: Filename too long.</b><br/>\n" . + "Page name: " . htmlspecialchars($page) . "<br/>\n" . + "Filename: $filename<br>\n" . + "Filename length: $filename_length<br/>\n" . + "Filename limit: $filename_max_length<br/>\n"; + // Filename too long + return array('msg'=>$_title_edit, 'body'=>$msg); + } + } if ($postdata == '') $postdata = auto_template($page); return array('msg'=>$_title_edit, 'body'=>edit_form($page, $postdata)); **コメント [#fa6836f4] - (今管理しているサイトにて)ページ名が長すぎるページが多くてUTF-8版に移行しにくいので、そういうページをこれ以上増やさないために作りました -- [[umorigu]] &new{2011-03-06 (日) 23:06:52}; #comment