日記
default_modifiersが実行される順序 (15:09)Edit

default_modifiersで指定した修正子が実行される順序は、(直接テンプレートで指定した修正子よりも)後だといいなーと思っていたんだけど、

if (!empty($this->default_modifiers) && !preg_match('~(^|\|)smarty:nodefaults($|\|)~',$modifiers)) {
$_default_mod_string = implode('|',(array)$this->default_modifiers);
$modifiers = empty($modifiers) ? $_default_mod_string : $_default_mod_string . '|' . $modifiers;
}

あたり を見る限りは最初に挿入されるみたいだなー。

ってことは、default_modifiersにescapeを設定して、自動でエスケープされるようにしておきつつも、ちょっとだけ加工(たとえば文字数切りつめとか)したい場合なんかには、「{$var|smarty:nodefaults|truncate|escape}」みたいなうざいことをしないといけないのか。default_modifiersは一番最後にかかるようにしておいた方が便利なシチュエーションが多い気がするんだけどなー。

Published At2005-06-15 00:00Updated At2005-06-15 00:00