What is Smarty?
Why use it?
Use Cases and Work Flow
Syntax Comparison
Template Inheritance
Best Practices
Crash Course
You may use the Smarty logo according to the trademark notice.
For sponsorship, advertising, news or other inquiries, contact us at:
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_source( |
$rsrc_name, | |
&$source, | ||
&$smarty) ; |
string $rsrc_name
;string &$source
;object &$smarty
;bool smarty_resource_name_timestamp( |
$rsrc_name, | |
&$timestamp, | ||
&$smarty) ; |
string $rsrc_name
;int &$timestamp
;object &$smarty
;bool smarty_resource_name_secure( |
$rsrc_name, | |
&$smarty) ; |
string $rsrc_name
;object &$smarty
;bool smarty_resource_name_trusted( |
$rsrc_name, | |
&$smarty) ; |
string $rsrc_name
;object &$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().
Example 16.10. Plugin resource (recurso)
<?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 } ?>