H::T::C DEFAULTまたはESCAPE
exclusive or というやつです(何
HTML::Template::Compired で DEFAULTとESCAPEの同時指定でエラーが出てしまうので、原因を探りつつも、とりあえず代案。
片方だけなら指定しても問題ないので、もう片方を$objTmpl->param で設定する時にごにょごにょする。
tmpl側でESCAPE_HTMLだ設定し、Defaultは$objTmpl->paramでごにょごにょ
tmpl側
<TMPL_VAR NAME=STRING ESCAPE=HTML>
pl側
$objTmpl->param( STRING => $temp_str || 0 );
を使って、$temp_str が未定義の時にデフォルト値を代入する。 |
しかし、STRING => 自体を入れないときは当然エラーとなる。
タイトルタグとか、メタタグとかも全指定しないといけない。
tmpl側でDEFAULTを指定し、ESCAPE_HTMLはpl側でごにょごにょ
tmpl側
<TMPL_VAR NAME=STRING DEFAULT=0>
pl側
$objTmpl->param( STRING => CGI::escapeHTML($temp_str));
CGI::escapeHTMLでサニタイズする。
しかし、CGI::escapeHTMLは結構貧相で、スカラーのみ対応。
配列や、ハッシュを対応してくれない。当然ハッシュ・配列リファレンスは全くもってダメ。
H::T::C で便利な objやhash_ref渡しが出来ない。
$objTmpl->param( STRING => CGI::escapeHTML($hash_ref));
とかやって、
なんてやると 上手く値を取れなくて、デフォルトの 0 が表示される