備考欄の文字化け対策
備考欄にあるていど長い文を記入すると、メール文や、管理ページでの表示がところどころ文字化けします。デフォルトでは、半角80字ごとに半角空白が挿入されます。
この原因は、libraries/Trash.php の
記入が日本語だけであれば無効化しても問題ないのですが、半角英数字をながながと打ち込まれると、それが改行されず、管理ページで表示枠が右へ果てしなく広がっていってしまいます。
半角英数字が長く続いたら分割する(半角空白を挿入する)という function にするのが最善と思い、やってみました。いろいろな方法が考えられますが、とりあえず下記のようなものに落ち着きました。
問題は、量指定子 {} に定数 MAX_STR_LEN を入れ込めないので、config/general.php で文字数を指定できないことですが、よしとします。
この原因は、libraries/Trash.php の
function checkLengthOfTxt( $txt ){ return wordwrap( $txt, MAX_STR_LEN, " ", 1 ); }の wordwrap がマルチバイト対応していないことによります。長い文字列を分割するのが目的のようです。
記入が日本語だけであれば無効化しても問題ないのですが、半角英数字をながながと打ち込まれると、それが改行されず、管理ページで表示枠が右へ果てしなく広がっていってしまいます。
半角英数字が長く続いたら分割する(半角空白を挿入する)という function にするのが最善と思い、やってみました。いろいろな方法が考えられますが、とりあえず下記のようなものに落ち着きました。
return wordwrap( $txt, MAX_STR_LEN, " ", 1 );を
return preg_replace( "/[¥x21-¥x7E]{80}/", "$0"." ", $txt );とします。
問題は、量指定子 {} に定数 MAX_STR_LEN を入れ込めないので、config/general.php で文字数を指定できないことですが、よしとします。