カラーミーというより、Smartyの Tipsですが。
文字列の先頭何バイトかを判断して分岐したいケースがよくあります。substr くらいあるんじゃね?と思った貴方。甘いです、激甘です。そんなの Smartyにはないんです。
と、ここまで書いて、言い切っていいのか?と怖くなってググってみたらありました。orz
すべてのPHP関数は、暗黙的に修飾子として使用でき、修飾子は組み合わせることもできます。
{$ym|substr:0:4}
あるんです! あるんですよ、貴方。
と、ここまで書いて、ほんとか? カラーミーで使えたか? と思って試してみました。
Fatal error: Smarty error: [in file:2/product.tpl line 89]: [plugin] (secure mode) modifier 'substr' is not allowed (Smarty_Compiler.class.php, line 1905) in /home/sites/shop-pro.jp/web/app/libs/smarty/Smarty.class.php on line 1088
やっぱ、カラーミーでは使えませんでした。
ということで、本題に戻ると『文字列の先頭何バイトかを判断して分岐したいケース』をカラーミーではどう書くかです。
<{if $object|truncate:7:"" == "
こうやって書くんですねぇ。ちなみに、truncateの最後の””をつけないと、$object|truncate:7 は、”<object…”を返してくるので、このIF文は falseになります。(悩みました)