Get Smarty

Donate

Donate Bitcoin Bitcoin
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

Largest classified with thousands of ads at Shoppok

Buy cheap eyeglasses from Cheapglasses123.com and save up to 80%.

Buy prescription glasses from www.australiaglasses.com and save.

Cheap Glasses Now On Sale at GlassesPeople.com. Starts At $7.95.

Where to buy discount wedding dresses and cheap smart dresses free shipping - Weddingdresstrend.com

Find Wedding Dresses Online at Canada from Ca-dresses.com

Find your local domestic cleaner

Read these great ice cream maker reviews

Brautkleider auf Topwedding.de

Best Wedding Dresses Australia at AuBridalDresses.com

Find free files to download on allwhatyouwant.net

Advertisement

Cache multiple per una pagina

Potete avere più file di cache per una singola chiamata a display() o fetch(). Diciamo che una chiamata a display('index.tpl') può avere diversi output in base a una certa condizione, e volete cache separate per ciascun caso. Potete farlo passando alla funzione un cache_id come secondo parametro.

Example 14.6. passare un cache_id a display()


<?php
require('Smarty.class.php');
$smarty = new Smarty;

$smarty->caching = true;

$my_cache_id = $_GET['article_id'];

$smarty->display('index.tpl',$my_cache_id);
?>

     

Qui sopra passiamo la variabile $my_cache_id a display() come cache_id. Per ogni valore di $my_cache_id verrà generato un file di cache per index.tpl. In questo esempio, "article_id" proveniva dall'URL e viene usato come cache_id.

Nota tecnica

Siate molto prudenti quando passate valori ricevuti da un client (come un browser) a Smarty (o qualsiasi applicazione PHP). Sebbene nell'esempio qui sopra l'uso di article_id proveniente dall'URL sembri molto comodo, potrebbe avere brutte conseguenze. Il valore di cache_id viene usato per creare una directory sul filesystem, quindi se l'utente passa un valore molto lungo come article_id, o se scrive uno script che spedisce velocemente valori casuali, potremmo avere dei problemi sul server. Assicuratevi di validare qualsiasi dato ricevuto in input prima di usarlo. In questo caso, potreste sapere che article_id ha una lunghezza di 10 caratteri, è composto solo di caratteri alfanumerici, e deve essere un article_id valido sul database. Verificatelo!

Assicuratevi di passare lo stesso valore di cache_id come secondo parametro a is_cached() e clear_cache().

Example 14.7. passare un cache_id a is_cached()


<?php
require('Smarty.class.php');
$smarty = new Smarty;

$smarty->caching = true;

$my_cache_id = $_GET['article_id'];

if(!$smarty->is_cached('index.tpl',$my_cache_id)) {
    // Non c'è un file di cache disponibile, assegnamo le variabili qui.
    $contents = get_database_contents();
    $smarty->assign($contents);
}

$smarty->display('index.tpl',$my_cache_id);
?>

     

Potete eliminare tutti i file di cache per un determinato cache_id passando null come primo parametro di clear_cache().

Example 14.8. eliminare tutte le cache per un determinato cache_id


<?php
require('Smarty.class.php');
$smarty = new Smarty;

$smarty->caching = true;

// eliminiamo tutti i file di cache con "sports" come cache_id
$smarty->clear_cache(null,"sports");

$smarty->display('index.tpl',"sports");
?>

     

In questo modo, potete "raggruppare" i vostri file di cache dando loro lo stesso valore di cache_id.

Comments
No comments for this page.
Post a Comment
All comments are moderated. Support questions are ignored, use the forums instead.
Author:
Email: (not shown)
What is 16 plus 7? (Are you human?)

Advertisement

Sponsors [info]

UK Web Hosting @webhost.uk.net
Best Web Hosting @rshosting.com
Web Hosting UK @webhostinguk.com
Unlimited Web Hosting @infrenion.com
App Entwicklung @morphodo.com
GoDaddy Coupon @buy-hosting.net
First Click Internet Marketing @fcinternetmarketing.com