[spip-dev] [spip-commit] r12558 - in spip/ecrire: inc public

* lier le md5 du nom du cache à la globale {{{ $fond }}} interdit de fait tout partage de cache entre deux pages de fond différent incluant un même squelette; ce choix ne doit pas être imposé par la fonction standard. Au besoin, on peut toujours concaténer cette valeur maintenant ignorée à la globale {{{ marqueur}}}.

Ce qui avait peut-être changé ici c'est que le $fond correspondait
auparavant au squelette COURANT employé pour le *cache* à calculer, et
maintenant au squelette de la *page* principale ?

Il est important que le squelette utilisé pour ce cache soit dans le
hash, pour permettre d'avoir sur un même url deux caches dépendant par
exemple du temps qu'il fait :

<?php

if ($ip == '123.23.34.45') $fond = 'secure'; else $fond = 'insecure';

-- Fil

* lier le md5 du nom du cache à la globale {{{ $fond }}} interdit de fait tout partage de cache entre deux pages de fond différent incluant un même squelette; ce choix ne doit pas être imposé par la fonction standard. Au besoin, on peut toujours concaténer cette valeur maintenant ignorée à la globale {{{ marqueur}}}.

Ce qui avait peut-être changé ici c'est que le $fond correspondait
auparavant au squelette COURANT employé pour le *cache* à calculer, et
maintenant au squelette de la *page* principale ?

Si c'était ça je ne comprends pas l'intérêt puisque cette valeur était aussi mise explicitement dans le contexte par $contexte['fond'] = $fond, donc ceci:

Il est important que le squelette utilisé pour ce cache soit dans le
hash,

était déjà vérifié. J'ai l'impression qu'il y a eu un excès de prudence qui a conduit aux doublons dans le cache.

Committo,Ergo:Sum

Si c'était ça je ne comprends pas l'intérêt puisque cette valeur était aussi
mise explicitement dans le contexte par $contexte['fond'] = $fond, donc
ceci:

OK donc on est bon !

-- Fil

Si c'était ça je ne comprends pas l'intérêt puisque cette valeur était aussi
mise explicitement dans le contexte par $contexte['fond'] = $fond, donc
ceci:

Pardon, vérification faite ça ne marche pas... on récupère le même cache.

-- Fil

Si c'était ça je ne comprends pas l'intérêt puisque cette valeur était aussi
mise explicitement dans le contexte par $contexte['fond'] = $fond, donc
ceci:

Pardon, vérification faite ça ne marche pas... on récupère le même cache.

[12564] fait $contexte['fond'] = $fond;

Si c'était ça je ne comprends pas l'intérêt puisque cette valeur était aussi
mise explicitement dans le contexte par $contexte['fond'] = $fond, donc
ceci:

Pardon, vérification faite ça ne marche pas... on récupère le même cache.

Attention, le log
http://trac.rezo.net/trac/spip/changeset/12558
dit bien qu'à présent il faut passer par la globale $marqueur.

Ce que tu indiquais:

if ($ip == '123.23.34.45') $fond = 'secure'; else $fond = 'insecure';

effectivement ne marche plus mais c'était de toutes façons un code assez dangereux:
ça modifie une globale importante qui pourrait conduire le compilateur à des incohérences.

Committo,Ergo:Sum

heu excuse moi, mais tous les sites bases sur un squelette ancienne mode font dans article.php
<?php

$fond='xx'

?>

Et en l'occurence j'ai pleins de squelettes partout qui font des
if (...)
$fond='yyy';
else
$fond='zzz';

On ne peut pas casser cela, c'est historique.
Sinon chez moi ça avec une dist, en dehors du sommaire, Spip me ressort la meme page partout :stuck_out_tongue:

Cédric

Si c'était ça je ne comprends pas l'intérêt puisque cette valeur était aussi
mise explicitement dans le contexte par $contexte['fond'] = $fond, donc
ceci:

Pardon, vérification faite ça ne marche pas... on récupère le même cache.

[12564] fait $contexte['fond'] = $fond;

Il y a un dialogue de sourd là.

Tu donnais cet exemple

if ($ip == '123.23.34.45') $fond = 'secure'; else $fond = 'insecure';

à propos d'une discussion sur le NOM du cache, mais [12564] semble dire que tu veux pouvoir changer le CONTENU du cache, autrement dit le squelette a utilisé par une simple affectation d'un globale. Ca c'est vraiment pas bon: la détermination du squelette est normalement assuré par l'API "styliser". Déjà qu'on le fait aussi au détour des types_urls, il ne faut pas multiplier les possibiliés de changement sur ce point, sinon c'est complètement illisible.

Committo,Ergo:Sum

C'est sans doute pas beau, mais c'est historique, et il reste pleins de squelettes de ce type dans la nature.
On ne peut qu'assumer.
Cédric

Ce n'est pas ça la question, bien sûr qu'on assume.

Ce qui ne va pas avec:
http://trac.rezo.net/trac/spip/changeset/12564
c'est qu'on a à la suite:

  $contexte['fond'] = $fond;

  $page = preg_replace('/[?].*$/', '',
    preg_replace(',\.[a-zA-Z0-9]*$,', '', $GLOBALS['REQUEST_URI']));

  $cacher = charger_fonction('cacher', 'public');
  $res = $cacher($GLOBALS['contexte'], $use_cache, $chemin_cache, $page, $lastmodified);

autrement dit, $page est passé à la fonction de cache, et comme $fond est déjà en relation à la valeur de $page (suite aux manipulations dans public.php), il ne devrait pas y avoir besoin de rajouter une entrée dans le contexte pour obtenir le but souhaité.

Committo,Ergo:Sum