spacemoo Posted November 29, 2015 Share Posted November 29, 2015 (edited) 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 November 29, 2015 by spacemoo (see edit history) Link to comment Share on other sites More sharing options...
doekia Posted November 29, 2015 Share Posted November 29, 2015 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))) 1 Link to comment Share on other sites More sharing options...
spacemoo Posted November 29, 2015 Author Share Posted November 29, 2015 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 More sharing options...
doekia Posted November 29, 2015 Share Posted November 29, 2015 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é. 1 Link to comment Share on other sites More sharing options...
spacemoo Posted November 29, 2015 Author Share Posted November 29, 2015 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 More sharing options...
Mohamadou Ndiaye Posted November 29, 2015 Share Posted November 29, 2015 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. Link to comment Share on other sites More sharing options...
Mediacom87 Posted November 29, 2015 Share Posted November 29, 2015 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 More sharing options...
Recommended Posts
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 accountSign in
Already have an account? Sign in here.
Sign In Now