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

Contrôler la mise en cache des sorties des Plugins

Depuis Smarty-2.6.0, la mise en cache des plugins peut être déclarée lors de leur inscription. Les troisièmes paramètres de register_block(), register_compiler_function() et register_function() sont appelés $cacheable et valent TRUE par défaut, ce qui est aussi le comportement par défaut des versions de Smarty précédent la 2.6.0

Lors de l'inscription d'un plugin avec $cacheable=false, le plugin est appelé à chaque fois que la page est affichée, même si la page vient du cache. La fonction plugin se comporte presque comme la fonction {insert}.

Contrairement à {insert} les attributs pour le plugin ne sont pas mis en cache par défaut. Celà peut être le cas en utilisant le quatrième paramètre $cache_attrs. $cache_attrs est un tableau de noms d'attributs qui doivent être mis en cache, pour que la fonction plugin reçoive les valeurs telles qu'elles étaient définies lorsque la page a été mise en cache, à chaque récupération à partir du cache.

Example 14.10. Eviter la mise en cache du résultat d'un plugin


<?php
$smarty->caching = 1;

function remaining_seconds($params, &$smarty) {
    $remain = $params['endtime'] - time();
    if ($remain >=0) {
        return $remain . " second(s)";
    } else {
        return "done";
    }
}

$smarty->register_function('remaining', 'remaining_seconds', false, array('endtime'));

if (!$smarty->is_cached('index.tpl')) {
    // récupération de $obj à partir de la page et assignation...
    $smarty->assign_by_ref('obj', $obj);
}

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

   

index.tpl contient :


Time Remaining: {remaining endtime=$obj->endtime}

   

Le nombre de secondes avant que la date de fin de $obj ne soit atteinte change à chaque affichage de la page, même si la page est mise en cache. Comme l'attribut endtime est mis en cache, il n'y a que l'objet qui ait besoin d'être extrait de la base de données lors de la mise en cache de la page, mais pas lors des affichages ultérieurs de la page.


Example 14.11. Eviter la mise en cache d'une portion du template


<?php
require('Smarty.class.php');
$smarty = new Smarty;
$smarty->caching = true;

function smarty_block_dynamic($param, $content, &$smarty) {
    return $content;
}
$smarty->register_block('dynamic', 'smarty_block_dynamic', false);

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

   

index.tpl contient :


Création de la page : {'0'|date_format:'%D %H:%M:%S'}

{dynamic}

Heure actuelle : {'0'|date_format:'%D %H:%M:%S'}

... faîtes quelque chose ici ...

{/dynamic}

   

Lors du rechargement de la page, vous remarquerez que les deux dates sont différentes. L'une est dynamic et l'autre est static. Vous pouvez faire ce que vous voulez entre {dynamic}...{/dynamic} et être sûrs que cela ne sera pas mis en cache comme le reste de la page.

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 15 plus 1? (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