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:
I plugin risorsa vanno considerati un modo generico di fornire sorgenti di template o script PHP a Smarty. Alcuni esempi di risorse: database, directory LDAP, memorie condivisse, socket, e così via.
Per ogni tipo di risorsa deve essere registrato un totale di 4 funzioni. Ogni funzione riceverà la risorsa richiesta come primo parametro e l'oggetto Smarty come ultimo parametro. Il resto dei parametri dipende dalla funzione.
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
;
Lo scopo della prima funzione è di recuperare la risorsa. Il suo
secondo parametro è una variabile passata per riferimento nella
quale memorizzare il risultato. Ci si aspetta che la funzione
restituisca true
se è riuscita a recuperare
la risorsa e false
nel caso opposto.
Lo scopo della seconda funzione è di indicare il momento dell'ultima
modifica effettuata sulla risorsa richiesta (nel formato timestamp
UNIX). Il secondo parametro è una variabile passata per riferimento
nella quale memorizzare il timestamp. Ci si aspetta che la funzione
restituisca true
se è riuscita a determinare il
timestamp, e false
nel caso opposto.
La terza funzione deve restituire true
o
false
, a seconda che la risorsa richiesta sia
sicura o no. Questa funzione è usata solo per risorse di template ma
deve ancora essere definita.
La quarta funzione deve restituire true
o
false
, a seconda che la risorsa richiesta sia
considerata affidabile o no. Questa funzione è usata solo per script
PHP richiesti con i tag include_php o
insert con l'attributo src
.
Comunque, deve ancora essere definita per le risorse di template.
Vedere anche register_resource(), unregister_resource().
Example 16.10. plugin risorsa
<?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) { // fate qui le chiamate al db per ottenere il template // e popolare $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) { // fate qui la chiamata al db per popolare $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) { // diciamo che tutti i template sono sicuri return true; } function smarty_resource_db_trusted($tpl_name, &$smarty) { // non si usa per i template } ?>