touchBlock()

touchBlock() -- 空のブロックを削除する設定の場合でも、ブロックを保持する

概要

require_once 'HTML/Template/Sigma.php';

mixed HTML_Template_Sigma::touchBlock (string $block)

説明

ときには、空のブロック (プレースホルダの置換が行われなかったもの) であってもそのまま残しておきたいこともあるでしょう。ショッピングカートを考えてみましょう。 カートが空の場合は、ユーザにメッセージを表示する必要があります。 中に何かが入っている場合は、その内容を表示する必要があります。 さあ、カートが空の場合のメッセージはいったいどこに表示すればいいのでしょうか? このメッセージをアプリケーション内に持ってしまうのは、あまり良い考えではありません。 というのも、顧客はこのようなメッセージをちょくちょく変更したがるものだからです。 空っぽのときと中身が入っているときでテンプレートファイルを変更するようにすると、 いつの日か両者のレイアウトにずれが生じてしまうことでしょう。

そこで、何もプレースホルダは含まずに "ショッピングカートが空です" といったメッセージだけを表示させるブロックが登場します。 このようなブロックでは置換が行われないので、このブロックは "空である" と判断され、デフォルト ($removeEmptyBlocks = true) では削除されます。これを避けるために、touchBlock() をコールします。

パラメータ

string $block

ブロック名。

返り値

成功した場合に SIGMA_OK、失敗した場合にエラーオブジェクトを返します。

参照

HTML_Template_Sigma::$removeEmptyBlocks も参照ください。

例外・エラー

表 47-1PEAR_Error の値

エラーコードエラーメッセージ原因対応
SIGMA_BLOCK_NOT_FOUNDCannot find block '$block'ブロック $block がテンプレート内に存在しませんブロックの名前を調べ、必要なブロックをすべてテンプレートに追加したかどうかを調べます

注意

この関数は、スタティックにコールする ことはできません。