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

Ressourcen

Ressourcen-Plugins stellen einen generischen Weg dar, um Smarty mit Template-Quellen oder PHP-Skripten zu versorgen. Einige Beispiele von Ressourcen: Datenbanken, LDAP, shared Memory, Sockets, usw.

Für jeden Ressource-Typ müssen 4 Funktionen registriert werden. Jede dieser Funktionen erhält die verlangte Ressource als ersten Parameter und das Smarty Objekt als letzten. Die restlichen Parameter hängen von der Funktion ab.

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;
 

Die erste Funktion wird verwendet, um die Ressource zu laden. Der zweite Parameter ist eine Variable, die via Referenz übergeben wird und in der das Resultat gespeichert werden soll. Die Funktion gibt true zurück, wenn der Ladevorgang erfolgreich war - andernfalls false.

Die zweite Funktion fragt das letzte Änderungsdatum der angeforderten Ressource (als Unix-Timestamp) ab. Der zweite Parameter ist die Variable, welche via Referenz übergeben wird und in der das Resultat gespeichert werden soll. Gibt true zurück, wenn das Änderungsdatum ermittelt werden konnte und false wenn nicht.

Die dritte Funktion gibt true oder false zurück, je nachdem ob die angeforderte Ressource als sicher bezeichnet wird oder nicht. Diese Funktion wird nur für Template-Ressourcen verwendet, sollte aber in jedem Fall definiert werden.

Die vierte Funktion gibt true oder false zurück, je nachdem ob die angeforderte Ressource als vertrauenswürdig angesehen wird oder nicht. Diese Funktion wird nur verwendet, wenn PHP-Skripte via include_php oder insert eingebunden werden sollen und ein 'src' Attribut übergeben wurde. Die Funktion sollte aber in jedem Fall definiert werden.

Sehen Sie dazu: register_resource(), unregister_resource().

Example 16.10. Ressourcen Plugin


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

     

Comments
No comments for this page.

Advertisement

Sponsors [info]

Sponsors