Fuentes
Las fuentes de los plugins son como una forma generica de suministrar
código fuente de template o componentes de script PHP al Smarty.
Algunos ejemplos de fuentes: base de datos, LDAP, memoria compartida,
sockets, etc.
Existe un total de 4 funciones que necesitan estar registradas para
cada tipo de fuente. Cada función recibirá el fuente requerido como
primer parámetro y el objeto de Smarty como ultimo parámetro.
El resto de los parámetros dependen de la función.
bool smarty_resource_name_sourcestring $rsrc_namestring &$sourceobject &$smartybool smarty_resource_name_timestampstring $rsrc_nameint &$timestampobject &$smartybool smarty_resource_name_securestring $rsrc_nameobject &$smartybool smarty_resource_name_trustedstring $rsrc_nameobject &$smarty
La primera función debe devolver el recurso.
Su segundo parámetro es una variable pasada por referencia donde
el resultado debe ser almacenado.
La función debe retornar true si esta pudo
recuperar satisfactoriamente el recurso y en caso contrario
retornara false.
La segunda función debe devolver la ultima modificación del
recurso requerido (como un timestamp Unix). El segundo parámetro
es una variable pasada por referencia donde el timestamp sera
almacenado. La función debe retornar true
si el timestamp pudo ser determinado satisfactoriamente, y en
caso contrario retornara false.
La tercera función debe retornar true o
false, dependiendo si el recurso requerido
es seguro o no. Esta función es usada solo para recursos de
template pero esta debe ser definida.
La cuarta función debe retornar true o
false, dependiendo si el recurso requerido
es seguro o no. Esta función es usada solo para componetes de
script de PHP solicitado por las etiquetas
include_php o insert
con el atributo src. Sin embargo,
este debe ser definido para los recurso del template.
Vea también
register_resource(),
unregister_resource().
Plugin resource (recurso)
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
}
?>
]]>