Smartyでサブルーチンのようなものは出来ないのか。

Smartyで表示の為の条件判定が多岐にわたってくると、HTML部分から判定処理を抜き出したくなってしまいます。
可読性が悪くなりますからね。
と思って、Smartyの処理をサブルーチン化できないかなと、色々調べてみたのですが、出来ないっぽい・・?ですか?

まあ、テンプレートなのだから呼ぶ側で処理するのが正しいんですケド。

とりあえず簡単な条件判定ぐらいなら
[smarty]
{capture name=”hoge_value”}
{if isset($hoge)}
value=”{$hoge}”
{/if}
{/capture}
[/smarty]
というような感じで外に出せますね。PHP側で
[php]
$hoge_value = ‘value=”‘ . $hoge . ‘”‘;
[/php]
しろって声が画面の向こうから聞こえてきそうではあります。
{php}{/php}ならいくらでも自由にできそうですが、テンプレートにそこまで処理させるのは躊躇してしまう私です。

タイトルとURLをコピーしました