08/02/09 01:29:55
>>580
>テンプレートもしくはSmarty周りをいじる
とりあえずなら、Smartyの構文を利用することで対応できるでしょうか?
Smartyのreplaceというオプションを使えば、実体参照(HTMLで特殊文字を記述するための符号)としてエスケープされている文字を、元の文字に戻すことができるはずです。
つまり、HTMLタグを有効にできるはずです。
/webapp/modules/pc/templates/fh_diary.tplを
/webapp_ext/modules/pc/templates/fh_diary.tplにコピーして
458行目の日記本文の出力部分を変更してみてください。
変更前:({$target_diary.body|nl2br|t_url2cmd:'diary'|t_cmd:'diary'})
↓
変更後:({$target_diary.body|nl2br|t_url2cmd:'diary'|t_cmd:'diary'|replace:"<":"<"|replace:">":">"|replace:""":"\""})
= < を < に置換する+ > を > に置換する + " を " に置換するという処理を追加
(参考)置換する文字列について、replace修正子は正規表現が使えませんが、regex_replace修正子なら正規表現が使えます。
Smarty マニュアル - replace修正子
URLリンク(sunset.freespace.jp)
Smarty マニュアル - regex_replace修正子
URLリンク(sunset.freespace.jp)
テンプレートファイルの変更で対応できない場合は、SmartyでassignしているOpenPNEの共通処理部分を修正する必要があるかと思われます。
いずれにせよ、本来HTMLタグが使用できないようになっているOpenPNEの日記で、HTMLタグを有効にする場合はXSS対策にも気をつけた方が良いと思われます。
(=JavaScriptのコードが動作しないようにチェックする)
…うまくいったら、結果を報告していただけると参考になります。(^^)v