j’ai un un squelette inclus inclure/toto.html qui commence avec #CACHE{0} pour qu’il ne soit pas mis en cache. Si je l’appelle avec <INCLURE{fond=inclure/toto} />, il n’y a effectivement pas de cache, tout est normal.
Pour l’insérer dans un article, j’ai fait un modèle modeles/toto.html qui appelle l’inclure avec <INCLURE{fond=inclure/toto} />.
Mais si j’insère le modèle <toto|> dans le contenu d’un article, le squelette est mis en cache (je contrôle l’heure avec [(#DATE|heures_minutes)]).
Que je sois identifié ou non ne change rien. Si par contre, je modifie le texte de mon article, le cache est bien recalculé.
J’avais tenté de changer la durée du cache global avec define('_DUREE_CACHE_DEFAUT', 900); (je souhaite un cache de 15 min en vrai) dans prefixe_options.php de mon plugin mais rien n’y fait. J’ai également désactivé le plugin Cache Cool au cas où.
Il y a une gestion différente de la balise #CACHE si on passe par l’intermédiaire un modèle ?
Les #MODELE sont comme des #INCLURE non ? Ce qui fait que c’est inclus dans le cache du parent, mais tout ce qui est dedans aussi ? (autrement dit par défaut on ne peut pas avoir de truc dynamique à l’intérieur d’un truc inclus à la manière #INCLURE)
Ya toujours certains cas flous pour moi, notamment les modèles. Faudrait documenter plus précisément dans cet article notamment : #MODELE - Programmer avec SPIP 4
Ça fait quoi si tu mets un cache de 0 pas juste dans ton inclusion mais dans le modèle lui-même ?
C’est ce que je me suis dis, c’est pour ça que j’ai cru pouvoir contourner le problème en incluant le squelette dans le modèle avec <INCLURE{fond=inclure/toto} /> pour avoir un cache de la page complète avec le modèle modeles/toto et un cache indépendant avec uniquement inclure/toto mais ça ne semble pas fonctionner.
Non mais c’est le modèle lui même qui est un #MODELE donc un #INCLURE, et donc tout ce qu’il contient sera copié « statiquement » (déjà compilé, pas dynamique) dans le parent du modèle. Si je dis pas de bêtise.
Tu n’as pas dit ce que tu cherchais à faire dedans, mais si ça doit être absolument à jour pour être raccord avec les autorisations, ou les infos en session d’un utilisateur etc, c’est là que généralement c’est légitime d’utiliser du PHP en squelette.
C’est une boucle qui récupère les données d’un json et ça doit être mis à jour toutes les 15min.
J’ai fait la modif pour que les infos s’affichent sous le texte de l’article (donc dans le squelette via un <INCLURE.../>) au lieu de s’afficher dans le contenu de l’article (entre 2 paragraphes via un modèle <toto|>).