[SPIP Zone] Doc du pipeline affichage_final ? + Longueur des URLs propres

Bonjour,

Je mets un lien sur les vignettes des images intégrées dans le corps d'un article. En cliquant sur une vignette, on accède à une page qui affiche l'image concernée, toute seule, en taille originale. Sur cette page d'arrivée, je mets un lien de retour vers l'article. Ce lien est explicite, il ne s'agit pas d'un "javascript:history.go(-1);", car si l'utilisateur arrive via un autre endroit, le lien de "retour à l'article" ne le renverra pas à l'article. Pour construire cette page, j'ai donc besoin de l'id_article, qui donc être passé dans l'URL appliquée à la vignette.

Pour construire cette URL, étant donné que le modèle img.html ne sait pas qui l'appelle, j'ai utilisé des éléments fournis par Pierre Andrews (merci à lui !) suite à une première question de ma part sur ce sujet l'année dernière.
Les voici :
--------------------------------------------------------------------
Utilise un filtre sur #TEXTE qui ajoute l'id à l'url de la vignette.

1- dans le modele img.html tu mets un lien incomplet:
<a href="#URL_PAGE{photos_articles}|parametre_url{id_document, #ENV{id}|parametre_url{id_article,@IDAREMPLACER@}}">...

2- dans ton mes_fonctions, tu déclares un filtre:
function ajouter_idarticle($texte,$id_article) {
     return str_replace('@IDAREMPLACER@',$id_article,$texte);
}

3- dans le squelette article, tu fais:
[(#TEXTE|reduire_image|ajouter_idarticle{#ID_ARTICLE})]
--------------------------------------------------------------------

Je n'utilise pas #URL_PAGE mais #URL_ARTICLE{id_article} pour générer l'URL, mais le résultat est finalement le même (page=article&id_article=xx), du fait de la présence du @IDAREMPLACER@.

Ca fonctionne très bien, le seul inconvénient est que ce n'est pas une URL "propre".

J'ai essayé une autre méthode, en faisant une boucle sur l'id_article, boucle qui renverrait #URL_ARTICLE "propre".
Mais cette boucle ne fonctionne pas, là encore du fait du @IDAREMPLACER@ et sans doute du fait des priorités d'exécution entre code SPIP et code PHP (je m'avance peut-être un peu, je ne sais pas trop comment tout ça fonctionne). Pour exécuter cette boucle, je fais d'abord un #SET{id_article,@IDAREMPLACER@}, puis en critère de boucle je mets {id_article=#GET{id_article}}. Mais cette boucle ne renvoie rien, sans doute parce qu'au moment où le critère est évalué, c'est @IDAREMPLACER@ qui est pris, et non la variable id_article. J'ai testé le passage de l'id_article "en dur" lors du #SET, et la boucle renvoie quelque chose, c'est donc bien le @IDAREMPLACER@ qui pose problème. De la même manière d'ailleurs, j'ai testé le passage "en dur" de l'id_article à #ID_ARTICLE{xx}, et c'est une URL propre qui est générée.

J'ai du coup laissé tomber l'idée de la boucle, et je cherche s'il est possible de générer une URL propre à partir de ce que j'ai pour le moment, en suivant une piste suggérée par Stéphane suite à ma première question l'année dernière. Il s'agit d'utiliser le pipeline affichage_final. Je suis prêt à m'y investir, mais je ne trouve aucune doc sur ce pipeline. Existe-t-il quelque chose ou dois-je me plonger directement dans le code PHP pour tenter de comprendre comment ça fonctionne ? (vu mon niveau, c'est pas gagné...:slight_smile:

Autre question à propos des URLs propres : de ce que j'ai compris du fichier ecrire/urls/propres.php, la longueur de la partie "titre de l'article" des URLs propres ne peut dépasser 35 caractères.
Quels sont les risques d'augmenter cette limite ? Il me semble que sur de nombreux sites non SPIP, les URLs "propres" dépassent allègrement 35 caractères.

Mathieu

Autre question à propos des URLs propres : de ce que j'ai compris du fichier ecrire/urls/propres.php, la longueur de la partie "titre de l'article" des URLs propres ne peut dépasser 35 caractères.
Quels sont les risques d'augmenter cette limite ? Il me semble que sur de nombreux sites non SPIP, les URLs "propres" dépassent allègrement 35 caractères.

<Boutell.co.uk | Payday Loans Paid Out Instantly;

Donc en gros 2000 caractères max.

-Nicolas

--
Nicolas "Brush" HOIZEY
Clever Age : http://www.clever-age.com/
Gastero Prod : http://www.gasteroprod.com/
Photos : http://www.flickr.com/gp/38608514@N00/M1c002