Problème de cache

Bonjour à tous :slight_smile:

J’ai un petit souci de cache que je n’arrive pas à régler (SPIP 2). J’ai un squelette article.html qui contient ce bloc inclure :

[(#REM) Inclusion du squelette outils]
<INCLURE{fond=inc/inc-tools}{id_article}>

Dans mon squelette rubrique.html, j’ai l’inclure suivant :

[(#REM) Inclusion du squelette outils]
<INCLURE{fond=inc/inc-tools}{id_rubrique}>

Dans le squelette inc-tools, j’ai le code suivant (boucle condition avec spip bonux) avec l’instruction #CACHE{0} :

…

<BOUCLE_test_art(CONDITION){si #ENV{id_article}|>{0}}>
Envoi
</BOUCLE_test_art>
<BOUCLE_test_rub(CONDITION){si #ENV{id_rubrique}|>{0}}>
Envoi
</BOUCLE_test_rub>
<//B_test_rub>
<//B_test_art>
…

En partant d’un cache vide, je visite une page article. J’obtiens bien le lien spip.php?page=envoyer_mail_article&id_article=15 par exemple. Je visite ensuite une page rubrique, le lien est spip.php?page=envoyer_mail_article&id_article=
Seul un recalcul de la page me permet d’obtenir spip.php?page=envoyer_mail_rubrique&id_rubrique=6

L’inverse produit également un résultat similaire (visite d’une rubrique, le lien est correct puis visite d’un article, le lien reste toujours celui de la rubrique).

Voyez-vous un souci dans ma gestion du cache?

Merci d’avance pour les réponses.

Mathieu

Petite précision et correction, qui a son importance…

la boucle dans mon squelette inc-tools est en fait :

<BOUCLE_test_art(CONDITION){si #ENV{id_article}|>{0}}>
#ENVOYER
</BOUCLE_test_art>
<BOUCLE_test_rub(CONDITION){si #ENV{id_rubrique}|>{0}}>
#ENVOYER
</BOUCLE_test_rub>
<//B_test_rub>
<//B_test_art>

J’utilise un plugin. Le code de la fonction ENVOYER est le suivant :

function balise_ENVOYER($p) {

if ($GLOBALS[‹ contexte ›][‹ id_article ›] != «  ») {
$arg = « ‹ page=envoyer_mail_article&id_article= ›. ».champ_sql(‹ id_article ›, $p);
} else if($GLOBALS[‹ contexte ›][‹ id_rubrique ›] != «  »){
$arg = « ‹ page=envoyer_mail_rubrique&id_rubrique= ›. ».champ_sql(‹ id_rubrique ›, $p);
}

$p->code =« generer_lien($arg) »;
$p->statut = ‹ html ›;

return $p;
}

Il semblerait donc que ce soit plus un problème de cache au niveau du plugin que du squelette. Est-ce possible?

2010/2/7 Mathieu GINOD <mathieu.ginod@gmail.com>

Bonjour à tous :slight_smile:

J’ai un petit souci de cache que je n’arrive pas à régler (SPIP 2). J’ai un squelette article.html qui contient ce bloc inclure :

[(#REM) Inclusion du squelette outils]
<INCLURE{fond=inc/inc-tools}{id_article}>

Dans mon squelette rubrique.html, j’ai l’inclure suivant :

[(#REM) Inclusion du squelette outils]
<INCLURE{fond=inc/inc-tools}{id_rubrique}>

Dans le squelette inc-tools, j’ai le code suivant (boucle condition avec spip bonux) avec l’instruction #CACHE{0} :

…

<BOUCLE_test_art(CONDITION){si #ENV{id_article}|>{0}}>
Envoi
</BOUCLE_test_art>
<BOUCLE_test_rub(CONDITION){si #ENV{id_rubrique}|>{0}}>
Envoi
</BOUCLE_test_rub>
<//B_test_rub>
<//B_test_art>
…

En partant d’un cache vide, je visite une page article. J’obtiens bien le lien spip.php?page=envoyer_mail_article&id_article=15 par exemple. Je visite ensuite une page rubrique, le lien est spip.php?page=envoyer_mail_article&id_article=
Seul un recalcul de la page me permet d’obtenir spip.php?page=envoyer_mail_rubrique&id_rubrique=6

L’inverse produit également un résultat similaire (visite d’une rubrique, le lien est correct puis visite d’un article, le lien reste toujours celui de la rubrique).

Voyez-vous un souci dans ma gestion du cache?

Merci d’avance pour les réponses.

Mathieu

Le 07/02/2010 19:19, Mathieu GINOD a écrit :

Petite précision et correction, qui a son importance...

la boucle dans mon squelette inc-tools est en fait :

<BOUCLE_test_art(CONDITION){si #ENV{id_article}|>{0}}>
#ENVOYER
</BOUCLE_test_art>
<BOUCLE_test_rub(CONDITION){si #ENV{id_rubrique}|>{0}}>
#ENVOYER
</BOUCLE_test_rub>
<//B_test_rub>
<//B_test_art>

Et sans plugin bonux, ça ne fonctionne pas mieux ?

<BOUCLE_test_art(ARTICLES){id_article}>
#ENVOYER
</BOUCLE_test_art>
<BOUCLE_test_rub(RUBRIQUES){id_rubrique}>
#ENVOYER
</BOUCLE_test_rub>
<//B_test_art>

Eric

Merci Eric mais malheureusement ça ne fonctionne pas mieux.

J’ai essayé en remplaçant ma balise #ENVOYER directement par son résultat, et là ça fonctionne correctement…

2010/2/8 Eric L <elurand@free.fr>

Le 07/02/2010 19:19, Mathieu GINOD a écrit :

Petite précision et correction, qui a son importance…

la boucle dans mon squelette inc-tools est en fait :

<BOUCLE_test_art(CONDITION){si #ENV{id_article}|>{0}}>
#ENVOYER
</BOUCLE_test_art>
<BOUCLE_test_rub(CONDITION){si #ENV{id_rubrique}|>{0}}>
#ENVOYER
</BOUCLE_test_rub>
<//B_test_rub>
<//B_test_art>

Et sans plugin bonux, ça ne fonctionne pas mieux ?

<BOUCLE_test_art(ARTICLES){id_article}>
#ENVOYER
</BOUCLE_test_art>
<BOUCLE_test_rub(RUBRIQUES){id_rubrique}>
#ENVOYER
</BOUCLE_test_rub>
<//B_test_art>

Eric


liste spip
spip@rezo.net - désabonnement : envoyer un mail à spip-off@rezo.net

Infos et archives : http://listes.rezo.net/mailman/listinfo/spip
http://archives.rezo.net/spip.mbox/

Documentation de SPIP : http://www.spip.net/

Irc : de l’aide à toute heure : http://spip.net/irc