> Smarty模板引擎中文在线手册 > Resources [资源]

{include_php} tag or {insert} tag with src attribute. However, it should still be defined even for template resources.
第四个函数将会返回truefalse,取决于被请求资源是否被信任。这个函数仅用于被 {include_php}{insert} 标记以 src 属性请求的PHP脚本组件。但仍应被定义,甚至用于模板资源也不例外。

See also register_resource(), unregister_resource().

Example 16-10. resource plugin资源插件

<?php
/*
 * smarty plugin
 * ------------------------------------------------------------- 
 * File: resource.db.php
 * Type: resource
 * Name: db
 * Purpose: Fetches templates from a database
 * -------------------------------------------------------------
 */
function smarty_resource_db_source($tpl_name, &$tpl_source, &$smarty)
{
 // do database call here to fetch your template,
 // populating $tpl_source
 $sql = new SQL;
 $sql->query("select tpl_source
 from my_table
 where tpl_name='$tpl_name'");
 if ($sql->num_rows) {
 $tpl_source = $sql->record['tpl_source'];
 return true;
 } else {
 return false;
 }
}

function smarty_resource_db_timestamp($tpl_name, &$tpl_timestamp, &$smarty)
{
 // do database call here to populate $tpl_timestamp.
 $sql = new SQL;
 $sql->query("select tpl_timestamp
 from my_table
 where tpl_name='$tpl_name'");
 if ($sql->num_rows) {
 $tpl_timestamp = $sql->record['tpl_timestamp'];
 return true;
 } else {
 return false;
 }
}

function smarty_resource_db_secure($tpl_name, &$smarty)
{
 // assume all templates are secure
 return true;
}

function smarty_resource_db_trusted($tpl_name, &$smarty)
{
 // not used for templates
}
?>

上一篇:
下一篇: