#1
Ne pas mettre en cache certaines pages et les titres de pages
Ankyo
Posté le : 21/09/2009 16:21
Bonjour tout le monde,
J'ai un module qui comporte plus de 2000 catégories, chacune comporte de nombreux fichiers/articles. Le module exécute un nombre de requêtes sql impressionnant, plus de 4000 requêtes ![]() Comment je peux faire pour ne pas mettre certaines pages en cache ? et mettre uniquement les requêtes en cache ?
#2
Re: Questions concernant le cache
Ankyo
Posté le : 21/09/2009 20:22
Bon ben je me répond tout seul pour la première question
![]() Pour désactiver le cache d'une page d'un module mis en cache, il faut utiliser le code ci-dessous :
$xoopsTpl->xoops_setCaching(0);
à mettre dans la page concernée et juste avant :
include XOOPS_ROOT_PATH . '/footer.php';
#3
Re: Questions concernant le cache
Ankyo
Posté le : 21/09/2009 20:26
Maintenant il faut que je trouve comment mettre en cache les requêtes SQL ? mais pas le contenu html.
Vous avez une petite idée ??
#4
Re: Questions concernant le cache
iLuc
Posté le : 21/09/2009 23:20
Citation :
Excellent !!... ![]() J'avais u poser la question il y a quelques temps, et je n'avais jamais trouver la solution. Je crois que ça va beaucoup m'aider ton Astuce. ![]() Si tu n'y vois pas d'inconvénients ?... je déplace ton Post dans les Astuces + change le titre par " Mettre la page d'un module en Cache "
#5
Re: Questions concernant le cache
Ankyo
Posté le : 21/09/2009 23:27
Citation :
Aucun inconvénient cher iLuc ![]() Mon message est Open Source ![]()
#6
Re: Questions concernant le cache
Ankyo
Posté le : 21/09/2009 23:45
Voici quelques informations supplémentaires concernant le cache sous Xoops :
La class "XoopsTpl" et ces méthodes, ainsi que les fonctions du cache sont dans le fichier : template.php. On peut faire beaucoup de chose apparemment avec la class XoopsTpl. C'est génial ce Xoops ![]()
#7
Re: Ne pas mettre en cache certaines pages
iLuc
Posté le : 22/09/2009 00:13
Juste petite Question,
Avec tes articles que tu mets en cache. A tu un soucis avec les titres ---> balise <title>...</title> Lorsque je met en cache, avec le Module Classifieds, j'ai ce soucis, ( avec les autres modules aussi ) Par exemple ( sans cache ): <title>Carte réseau d'occasion, Les Annonces - Les petites annonces de pièces détachées</title> Devient ( avec cache ): <title>Les Annonces - Les petites annonces de pièces détachées</title> Tout les titres deviennent identiques... Ce qui n'est pas bon pour Google. ![]() Je n'ai jusque maintenant trouver aucune solutions.
#8
Re: Ne pas mettre en cache certaines pages
Ankyo
Posté le : 22/09/2009 00:30
Oui effectivement une fois le cache activé, et les templates en cache, certaines balises ne sont pas mises en cache, ce probleme existe sous tous les modules. En fait seul les templates sont mis en cache et cela sans leur balise title, car tout ce qui est géré dynamiquement ne l'est plus une fois mis en cache. Je n'ai pas encore trouvé de solution propre, mais pour attendre une véritable solution tu peux passer les balises dans les templates avec des conditions en smarty ou php.
Par exemple si ton module dispose d'un fichier template "header.html" tu mets tes balises dedans et tu l’inclus dans les autres fichiers templates, mais ce n'est pas du tout propre comme méthode, car tes balise seront dans la partie <body> tu code html, pour le css et le javascript ça passe, mais pour la balise title ça craint ![]() La solution idéale serait de mettre la page entière en cache.
#9
Re: Ne pas mettre en cache certaines pages
iLuc
Posté le : 22/09/2009 01:38
Pour ton soucis 'contenu dinamique en cache'
Je viens de tomber sur ce sujet. ici Pour les balises <title>, j'y ai penser à ta solution, mais comme tu dit, pas le top. Le soucis est bien comme tu dit, les pages sont que partiellement en cache... /classifieds-pieces-autos-01-[...]_category.html Et dedans, le titre de la page, Nada... J'essaie de trouver voir si il y a une solution. Je crois qu'il faudrait que dans les pages mises dans le dossier 'smarty_compile' Que sois rajouter automatiquement au début du code des pages 'un truc du genre' :
<?php $xoops_pagetitle=echo $this->_tpl_vars['xoops_pagetitle']; ?>
( c'est juste pour l'idée, faut la bonne écriture ) Et que je face des essais. iLuc ![]()
#10
Re: Ne pas mettre en cache certaines pages
Ankyo
Posté le : 22/09/2009 01:50
Merci pour le lien. Pour faire simple, je suis en train de faire un petit hack qui aura pour objectif d'utiliser une variable session après la mise en cache des page, ainsi la balise titre et la balise description seront toujours affichés, Cool non ?
![]() Mes premiers tests sont vraiment encouragent ![]() Pour le titre ça se passe dans le fichier : class/theme.php, ligne 200 Cordialement, Mohamed Vous pouvez voir les sujets.
Vous ne pouvez pas débuter de nouveaux sujets.
Vous ne pouvez pas répondre aux contributions.
Vous ne pouvez pas éditer vos contributions.
Vous ne pouvez pas effacez vos contributions.
Vous ne pouvez pas ajouter de nouveaux sondages.
Vous ne pouvez pas voter en sondage.
Vous ne pouvez pas attacher des fichiers à vos contributions.
Vous ne pouvez pas poster sans approbation.
|
Propulsé avec XOOPS | Graphisme adapté par Tatane, Grosdunord, Montuy337513
127 Personne(s) en ligne (90 Personne(s) connectée(s) sur Forum) | Utilisateur(s): 0 | Invité(s): 127 | Plus ...
127 Personne(s) en ligne (90 Personne(s) connectée(s) sur Forum) | Utilisateur(s): 0 | Invité(s): 127 | Plus ...