Templates from other sources

PHP Smarty

Smarty - the compiling PHP template engine
Prev 来源:PHP中文社区 Next

Templates from other sources

// from PHP script

// put these function somewhere in your application
function db_get_template ($tpl_name, &$tpl_source, &$smarty_obj)
{
 // 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 db_get_timestamp($tpl_name, &$tpl_timestamp, &$smarty_obj)
{
 // 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 db_get_secure($tpl_name, &$smarty_obj)
{
 // assume all templates are secure
 return true;
}

function db_get_trusted($tpl_name, &$smarty_obj)
{
 // not used for templates
}

// register the resource name "db"
$smarty->register_resource("db", array("db_get_template",
 "db_get_timestamp",
 "db_get_secure",
 "db_get_trusted"));

// using resource from php script
$smarty->display("db:index.tpl");

{* using resource from within Smarty template *}
{include file="db:/extras/navigation.tpl"}

Prev 来源:PHP中文社区 Home Next
Templates from any directory Up Default template handler function