Jump to content

Module Et Problème De Cache


Recommended Posts

Bonjour.

Pour les besoins d'un ami, j'ai créé un petit module qui affiche un calendrier en bas de la page produit.

Je me sert de Kalendae (calendrier javascript sympa) , et le module lit des dates en base de donnée pour les passer à Kalendae.

ça permet de blacklister des dates.

Le petit souci que je rencontre est le suivant :

Si le cache est désactivé, pas de problèmes.

Si le cache est activé, les dates ne sont pas mises à jour sur le site.

Ma question est la suivante :

Y a t il un moyen de forcer la "re-compilation du cache" dans le module, histoire que je garde la configuration sur "cache utilisé" et avoir une mise à jour de mes dates du calendrier lorsqu'elles sont changée.

Merci d'avance.

PS : il me semble avoir lu ça dans la doc mais j'arrive pas a retrouver.

 

Edited by spacemoo (see edit history)
Link to comment
Share on other sites

Pourquoi forcer la recompile?

Le cache et la compile sont 2 choses radicalement différente.

 

Evite de mettre le résultat de ton module en cache - ne pas encadrer ton code à l'intérieur de ce genre de test:

if (!$this->isCached('template.tpl', $this->getCacheId($key)))

  • Like 1
Link to comment
Share on other sites

Merci doekia pour ta réponse rapide.

Oui je ne suis pas un expert dans le vocabulaire technique désolé si j'ai dit une bêtise.

Donc le cache (si je comprends bien c'est des fichiers statiques qui permettent d'améliorer la rapidité) qui est créé à un moment donné,n'est pas recréé au moment ou je change une date (c'est ça que j'appelais recompile).
Le résultat du module n'est pas mis en cache volontairement mais parce que le site utilise le réglage "mise en cache".
Mais comme j'utilise du javascript, je pense ça joue sur un autre type de cache...

N' hésites pas a me corriger si je dis une grosse bêtise.

 

 

Link to comment
Share on other sites

La compile c'est la transformation de tpl en code php directement exécutable. (cache/smarty/compile/.../xxx.tpl.php)

Le cache c'est exécuter le php sus-mentionné avec les variables et conserver le résultat en html (genre). (cache/smarty/cache/.../xxx.tpl.pĥp)

 

Si tes variables changent à chaque appel tu ne dois pas cacher le résultat, mais par contre tant que le tpl ne change pas, aucun besoin de recompiler

 

C'est un rien plus subtil que cela mais dans ton cas ça devrait faire le café.

  • Like 1
Link to comment
Share on other sites

Le cache c'est exécuter le php sus-mentionné avec les variables et conserver le résultat en html (genre). (cache/smarty/cache/.../xxx.tpl.pĥp)

Et donc?
Comment ça se passe si les variables php n'actualisent pas le résultat ?
car j'en suis la!
je passe le résultat de mon code php a un bout de code javascript....

Link to comment
Share on other sites

Salut,

Essai d'ajouter ce code dans le hook de ton module qui affiche le calendrier $this->_clearCache("your_template.tpl");  .

De préférence place le avant l'appel du template.

Tu peut aussi le mettre dans le getContent() function ou dans le postProcess.

Toujours le mettre au tout début.

Il serait mieux de ne pas cacher le module plutôt que de vider le cache pour afficher le module cela surcharger pour rien le traitement du module.

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...