le 14/03/2007 à 08:19
Le cache dans smarty
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, 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 :
et voilà mon index.php :
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.
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; ?>
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.