-
Notifications
You must be signed in to change notification settings - Fork 19
Open
Labels
Description
--- 症状
iphoneのメモアプリでUnicodeの行区切り文字(Line Separator(U+2028))が含まれる事があり、U+2028を含む内容をJS変数に入れた瞬間に落ちるため、wysiwygの内容が編集不能になった。
編集不能になったのは掲示板モジュールだったが、wysiwygを使えるモジュールなら同様の事が起きます。
--- 対応
一般、管理者のどちらであっても、wysiwygの登録時に改行タグに置換して対応。
この行に追記する。
/**
* WYSIWYGエディターで出力するテキストをエスケープ
* @param string
* @return string
* @access public
**/
function escapeWysiwyg(&$string) {
if(preg_match('/^\s*<div><\/div>\s*$/iu', $string) || preg_match('/^\s*<br\s*\/?>\s*$/iu', $string)) {
return "";
}
// iphoneのメモアプリでUnicodeの行区切り文字(Line Separator(U+2028))が含まれる事があり、U+2028を含む内容をJS変数に入れた瞬間に落ちるため、wysiwygの内容が編集不能になった。
// 一般、管理者のどちらであっても、登録時に改行タグに置換して対応。add by mutaguchi@opensource-workshop.jp
$line_separator = array(
json_decode('"\u2028"'), // Unicodeの行区切り文字(Line Separator)(U+2028) = Unicodeの改行の1つ
json_decode('"\u2029"'), // Unicodeの段落区切り文字(Paragraph Separator) (U+2029) = Unicodeの改行の1つ
json_decode('"\u0085"'), // UnicodeのNext Line (U+0085) = Unicodeの改行の1つ
);
$string = str_replace($line_separator, '<br />', $string);--- 備考 - Wysiwygは[Convert]フィルターとセットで使うため、これでほかのモジュールも対応できている
例)[Convert]フィルター
html\webapp\modules\bbs\action\main\post\maple.ini
[Convert]
subject.EscapeText =
body.EscapeTextarea = ; ←こっちの内容--- 備考 - フィルターからの流れ
maple.iniの[Convert]フィルター
>maple\filter\Filter_Convert.class.php
>maple\converter\Converter_EscapeTextarea.class.php
>\webapp\components\escape\Text.class.php
Reactions are currently unavailable