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