touchBlock() -- 空のブロックを削除する設定の場合でも、ブロックを保持する
説明
ときには、空のブロック (プレースホルダの置換が行われなかったもの)
であってもそのまま残しておきたいこともあるでしょう。ショッピングカートを考えてみましょう。
カートが空の場合は、ユーザにメッセージを表示する必要があります。
中に何かが入っている場合は、その内容を表示する必要があります。
さあ、カートが空の場合のメッセージはいったいどこに表示すればいいのでしょうか?
このメッセージをアプリケーション内に持ってしまうのは、あまり良い考えではありません。
というのも、顧客はこのようなメッセージをちょくちょく変更したがるものだからです。
空っぽのときと中身が入っているときでテンプレートファイルを変更するようにすると、
いつの日か両者のレイアウトにずれが生じてしまうことでしょう。
そこで、何もプレースホルダは含まずに "ショッピングカートが空です"
といったメッセージだけを表示させるブロックが登場します。
このようなブロックでは置換が行われないので、このブロックは
"空である" と判断され、デフォルト ($removeEmptyBlocks = true)
では削除されます。これを避けるために、touchBlock() をコールします。
返り値
成功した場合に SIGMA_OK、失敗した場合にエラーオブジェクトを返します。
参照
HTML_Template_Sigma::$removeEmptyBlocks
も参照ください。
例外・エラー
表 47-1PEAR_Error の値
| エラーコード | エラーメッセージ | 原因 | 対応 |
|---|
| SIGMA_BLOCK_NOT_FOUND | Cannot find block '$block' | ブロック $block がテンプレート内に存在しません | ブロックの名前を調べ、必要なブロックをすべてテンプレートに追加したかどうかを調べます |
注意
この関数は、スタティックにコールする
ことはできません。