XOOPSのpicoモジュールで”\”がエスケープされる件について

投稿者: | 2009年3月8日

TeX のシステムをXOOPSで構築しているが、記事の中でTeXコマンドを記述すると”\”がエスケープされ、記事保存時に消えてしまう。
それを回避するために”\\”と書くと、”\”となって保存される。
これはこれでOKなのだが、その記事を再編集する際に編集画面に呼び出すと、”\”と表示されてしまうため、手動で”\\”に書き換える必要があった。
これはあまりにも不便なため、スクリプトの変更を行った。具体的には、再編集の際にtextareaに内容を書き出す際に、変換処理で”\”→”\\”を行うこととした。
修正対象は、「\xoops_trust_path\modules\pico\main\contentmanager.php」(149行目付近)である。

‘body’ => htmlspecialchars( str_replace(“\\”,”\\\\”,$content_row[‘body’]) , ENT_QUOTES ) ,

と修正した。
無事正常動作している。


ALTSYSのカスタムブロックでも同様の症状だったので、phpスクリプトを修正した。
修正対象は、「\xoops_trust_path\libs\altsys\class\MyBlocksAdmin.class.php」(771行目付近)である。

‘content_raw’ => str_replace(“\\”,”\\\\”,$block_data[‘content’]),

と修正した。