Je suis surpris par ce commentaire et ce code dans le filtre pagination_dist:
// Si le contexte ne contient pas de debut_xx, on regarde les globales
// (de facon a permettre la pagination dans les modeles) ; c'est une
// legere entorse au schema de base (squelette+contexte => page), mais
// sinon il faut une usine a gaz pour passer debut_xx dans propre()...
if ($position === NULL) {
$position = _request($debut);
}
car la compilation de la balise pagination produit pour ce paramètre,
y compris dans le cas d'un modèle:
isset($Pile[0][Truc])?$Pile[0][Truc]:0,
je ne vois donc pas comment ce === NULL pourrait se produire.
Pas de réponse, même à côté de la plaque ?
Bon, on va considérer que c'est du code mort, si vraiment il y a un pb,
ça permettra de faire sortir le jeu de tests manquant.
Autre question, plus bas on lit:
"modeles/pagination$modele"
mais la pagination n'est pas un modèle, c'est un squelette inclus au niveau du squelette,
pourquoi avoir mis ces squelettes ici ?
Je suis surpris par ce commentaire et ce code dans le filtre pagination_dist:
// Si le contexte ne contient pas de debut_xx, on regarde les globales
// (de facon a permettre la pagination dans les modeles) ;
Bonjour,
Alors puisque tu dis clairement qu'une réponse à côté de la plaque te ferait plaisir : en tout cas, comme je disais le 4 sept., la pagination dans un modèle - celui de du plugin diapo ne marche plus. Et cela depuis quelques mois. Mais avant cela marchait. Et je pense que ce n'est pas diapo qui a changé, mais Spip. J'ai le projet d'essayer de découvrir au moins à quelle révision de Spip cela s'est cassé...
Je suis surpris par ce commentaire et ce code dans le filtre pagination_dist:
// Si le contexte ne contient pas de debut_xx, on regarde les globales
// (de facon a permettre la pagination dans les modeles) ; c'est une
// legere entorse au schema de base (squelette+contexte => page), mais
// sinon il faut une usine a gaz pour passer debut_xx dans propre()...
if ($position === NULL) {
$position = _request($debut);
}
car la compilation de la balise pagination produit pour ce paramètre,
y compris dans le cas d'un modèle:
je ne vois donc pas comment ce === NULL pourrait se produire.
Du coup, les paginations appelées par un modèle inclus dans du texte d'un article ne peuvent plus fonctionner :
- pas de contexte propagé
- pas d'appel a request()
Ce qui correspondrait bien au bug de Paolo.
Pas de réponse, même à côté de la plaque ?
Bon, on va considérer que c'est du code mort, si vraiment il y a un pb,
ça permettra de faire sortir le jeu de tests manquant.
...
Autre question, plus bas on lit:
"modeles/pagination$modele"
mais la pagination n'est pas un modèle, c'est un squelette inclus au niveau du squelette,
pourquoi avoir mis ces squelettes ici ?
Je crois que c'est pour éviter de gonfler le cache a tout va, une pagination provoquant le calcul de 11 squelettes (sauf avec la boucle POUR de bonux ou c'est ramené à un seul )
Oui, mais tu ne réponds qu'à moitié à la question:
pourquoi cette affirmation en commentaire qu'on est obligé de faire une entorse à
ce que toi-même appelait le fonctionnement général de SPIP,
alors qu'il me semble qu'il suffirait de produire un appel à _request dans le code.
mais la pagination n'est pas un modèle, c'est un squelette inclus au niveau du squelette,
pourquoi avoir mis ces squelettes ici ?
Je crois que c'est pour éviter de gonfler le cache a tout va, une pagination provoquant le calcul de 11 squelettes (sauf avec la boucle POUR de bonux ou c'est ramené à un seul )
Oui, mais tu ne réponds qu'à moitié à la question:
pourquoi cette affirmation en commentaire qu'on est obligé de faire une entorse à
ce que toi-même appelait le fonctionnement général de SPIP,
alors qu'il me semble qu'il suffirait de produire un appel à _request dans le code.
Je crois que c'est juste historique :
au depart la pagination ne fonctionnait qu'avec le _request(), puis cela a été corrigé en plus propre pour utiliser une variable issue du #ENV.
Le cas modele pour lequel le #ENV n'est pas fourni restant comme à l'origine.
Mais tu as raison, il serait sans doute mieux de produire le _request() à la compilation, dans la ligne modifiée par 13993
mais la pagination n'est pas un modèle, c'est un squelette inclus au niveau du squelette,
pourquoi avoir mis ces squelettes ici ?
Je crois que c'est pour éviter de gonfler le cache a tout va, une pagination provoquant le calcul de 11 squelettes (sauf avec la boucle POUR de bonux ou c'est ramené à un seul )
??? Et #CACHE{0} ça sert à quoi ?
oui aussi.
Je crois que mettre tous les squelettes de pagination a la racine n'etait pas génial, et qu'il aurait fallu créer un sous repertoire dédié. A l'époque ça a paru une bonne idée d'utiliser ce dossier modeles/. Meme si ce ne sont pas des modeles utilisables directement par les redacteurs, ça reste assez proche dans l'esprit.
Merci Paolo, le critère pagination dans ce modèle devrait fonctionner à nouveau avec 14476.
Toutefois ce modèle définit un critère perso calqué sur le code du critère pagination, dont l'implémentation a changé dans le compilateur. Il faudra réécrire ce critère, mais ça me confirme qu'on manque d'une interface pour définir des critères proprement: changer l'implémentation d'un critère ne devrait pas rendre inopérant un critère dont on ne sait même pas qu'il existe.