types de pages Spip à utiliser avec pipeline _affichage_final

J’utilise le type de page Spip avec le pipeline affichage_final pour effectuer des traitements selon le type de page.
Or je m’aperçois que cela ne fonctionne que si le type de page est mentionné dans l’URL.

Par exemple, le traitement de la page d’accueil est bien effectué si on accède à la page avec l’URL https://url-du.site/spip.php?page=sommaire
Si on accède avec simplement l’URL https://url-du.site, alors le traitement n’est pas effectué.

J’utilise la fonction suivante suivant :

function charte_affichage_final($texte) {
	$page_spip = _request("page");
(....)
if ($page_spip == "sommaire") {
(...)
}
}

Comment peut-on faire pour que le traitement s’applique systématiquement sur les pages concernées ?

C’est un truc compliqué, car contrairement au pipeline recuperer_fond, le pipeline affichage_final ne fournit AUCUNE information complémenter du contexte dans lequel on se trouve… Sauf que pour les « pages entières » (versus les inclusions), c’est le seul pipeline possible, puisque recuperer_fond n’est appelé que pour les inclusions… Pourtant en théorie on a ces infos sous la main car elles sont TOUTES enregistrées dans le cache de SPIP, d’après plusieurs tests ! Cf ce ticket : Améliorer ou remplacer affichage_final pour avoir un contexte déjà prêt pour les squelettes racines (#4972) · Tickets · spip / spip · GitLab

En attendant… faut se débrouiller, et ya pas de fonctions communs donc à recopier chacun dans son coin… Tu pourrais copier par exemple ce que fais le plugin cssvar ici ( en préfixant avec autre chose que « cssvar » chez toi bien sûr) : cssvar_pipelines.php · master · spip-contrib-extensions / cssvar · GitLab

Fonction à appeler dans affichage_final pour te donner un contexte un peu plus éclairant quelques soient les cas et les types d’URL propre ou pas.

1 « J'aime »

Super !
Merci pour tous ces renseignements je vais potasser tout cela.