Get Smarty

Donate

Paypal

Smarty Icon

You may use the Smarty logo according to the trademark notice.

Smarty Template Engine Smarty Template Engine

For sponsorship, advertising, news or other inquiries, contact us at:

Sites Using Smarty

Advertisement

Risorse

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
}
?>

     

Comments
No comments for this page.

Advertisement

Sponsors [info]

Sponsors