$default_template_handler_func

リソースからのテンプレートの取得に失敗した場合に、この関数をコールします。

注意

デフォルトのハンドラは、今のところファイルリソースでしか起動しません。 リソース自体が見つからない場合はハンドラは起動せず、その場合は SmartyException が発生します。

例 13.5. $default_template_handler_func


<?php

$smarty = new Smarty();
$smarty->default_template_handler_func = 'my_default_template_handler_func';

/**
 * Default Template Handler
 *
 * Smarty の file: リソースがファイルを読めなかった場合に呼ばれます
 * 
 * @param string   $type     リソースの形式 (e.g. "file", "string", "eval", "resource")
 * @param string   $name     リソースの名前 (e.g. "foo/bar.tpl")
 * @param string  &$content  テンプレートの中身
 * @param integer &$modified テンプレートの修正時刻
 * @param Smarty   $smarty   Smarty インスタンス
 * @return string|boolean   ファイルへのパス、あるいは $content と $modified を指定した場合に true、
 *                          デフォルトテンプレートを読み込まない場合に false
 */
function my_default_template_handler_func($type, $name, &$content, &$modified, Smarty $smarty) {
    if (false) {
        // 正しいパスを返します
        return "/tmp/some/foobar.tpl";
    } elseif (false) {
        // テンプレートを直接返します
        $content = "テンプレートのソース";
        $modified = time();
        return true;
    } else {
        // 失敗したことを Smarty に伝えます
        return false;
    }
}

?>