Le cache dans smarty

Répondre
depmod
le 14/03/2007 à 08:19
depmod
Bonjour à tous !

J'ai un problème avec smarty.
J'affiche plusieurs informations sur une page d'un site, mais je souhaiterai que seul le div "contenu" ne soit mis en cache.

Si j'utilise
<?php $smarty->cache_lifetime = 60; ?>
, c'est toute la page qui est mise en cache, et non pas uniquement le div "contenu" (ce qui est normal me direz-vous).

Voilà mon index.tpl :
index.tpl
{include file="header.tpl"}
{include file="menu.tpl"}
<div id="espace_membre">
{if $connection == TRUE}
Bienvenue <strong>{$pseudo}</strong> ! Dernière connexion : {$derniereConnexion}. <a href="{$urlSite}/deconnexion/" {$toolTip} title="Se déconnecter">Déconnexion</a> ?
{else}
Bienvenue invité, veuillez vous <a href="{$urlSite}/connexion/">connecter</a>.
{/if}
</div>

<div id="date">
Nous sommes le {$date}. Date CSM : {$dateCSM}.
</div>

<div id="chat">
{$chat}
{if $connection == TRUE}
<form method="post" action=""><input id="input_chat" type="text" name="chatContenu" maxlength="128" value="Message..." onfocus="if(this.value == 'Message...') this.value=''" /> .:. <input id="submit" type="submit" value="Envoi" /></form>
{else}
<p>Vous devez être connecté pour poster sur le chat !</p>
{/if}

</div>

<div id="contenu">
{if isset($validation) AND $validation == "erreur"}
<div id="erreur">{$erreur}</div>
<script>
$morphColor('erreur', '#FF0000', '#000000', '#F7E4E4', '#E1E1E1', '#FF0000', '#CCCCCC', 2000);
</script>
{/if}
{if isset($validation) AND $validation == "valide"}
<div id="valide">{$valide}</div>
<script>
$morphColor('valide', '#368F05', '#000000', '#EEFCEA', '#E1E1E1', '#368F05', '#CCCCCC', 2000);
</script>
{/if}
{$contenu}
</div>
{include file="footer.tpl"}


et voilà mon index.php :
index.php
<?php
//////// CLASSES ///////
require './classes/smarty/Smarty.class.php';
require './classes/sql.class.php';

//////// INITIALISATION ///////
$smarty = new Smarty;

$smarty->caching = 2;
$smarty->compile_check = TRUE;
$smarty->debugging = FALSE;

$smarty->template_dir = './2template/templates';
$smarty->compile_dir = './2template/templates_c';
$smarty->cache_dir = './2template/cache';
$smarty->config_dir = './2template/configs';

$db = new sql($_CONFIG['hote'], $_CONFIG['utilisateur'], $_CONFIG['motDePasse'], $_CONFIG['base']);

session_start();

// [...]
$contenu = 'kikoo ;)';
$smarty->assign('contenu', $contenu);

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

//////// FERMETURE ///////
$db->sql_close();



Comment faire, dans mon cas, pour que seul le div "contenu" ne soit mis en cache ? Merci beaucoup ;)

PS : je précise, à tout hasard, qu'en réalité, j'utilise un système d'includes.
Répondre

Ecrire un message

Votre message vient d'être créé avec succès.
LoadingChargement en cours