Bonjour,
suite à la proposition de @JLuc dans Performances cache <INCLURE> VS #INCLURE - #17 par JLuc , j’ai installé Xray pour analyser le résultat d’une modif que je dois faire.
Je rencontre un problème, mais je ne sais pas si c’est un problème de plugin, de syntaxe, de logique ou de xray. Bref, j’ai besoin d’aide
J’aimerais pouvoir insérer une balise script dans ma section <head>
de manière conditionnelle pour mes visiteurs (connectés ou pas), mais pas pour les auteurs ni les admins.
Comme mes rubriques incluent par défaut la balise #INSERT_HEAD
, je me dis que ça peut être intéressant d’utiliser le pipeline qui va bien.
Donc dans mon pipeline php je fais:
function monplugin_insert_head($flux){
$code = recuperer_fond('squelettes/monsquelette');
return $flux.=$code;
}
Et dans mon squelette j’écris:
[(#SESSION{statut}|in_array{#LISTE{0minirezo,1comite}}|non)
<script type="text/javascript" src="monscript.js"></script>
]
Jusque là, ça fonctionne correctement de ce que j’ai testé. J’ai bien mon script (ou pas) en fonction de si je teste avec un admin, un auteur ou un visiteur.
Mon vrai problème, c’est qu’en regardant ce qui se passe avec Xray et bien je vois:
ERREUR : Impossible de trouver le fichier squelette '/mon-super-article.html' dans les chemins SPIP pour 'monsite.local:443:62e2bcd5:cache:41aa020367a8c6d055eabf895cafe95c-/mon-super-article'.
Ça arrive pour certains squelettes de pages (accédés via ?page=). Le cache contient :
Array
(
[info] => monsite.local:443:62e2bcd5:cache:41aa020367a8c6d055eabf895cafe95c-/mon-super-article
[ttl] => 0
[num_hits] => 3
[mtime] => 1707297547
[creation_time] => 1707297547
[deletion_time] => 0
[access_time] => 1707297552
[ref_count] => 0
[mem_size] => 384
)
Du coup, je ne sais pas si c’est moi qui est train de faire de la ou si c’est Xray qui se foire dans son analyse.
J’ai écrit la même chose en PHP:
<?php
include_spip('inc/session');
if(!in_array(session_get('statut'), ['0minirezo', '1comite'])){?>
<script type="text/javascript" src="monscript.js"></script>
<? } ?>
et là le problème disparaît mais:
- ça se transforme en inclusion dynamique (j’ai l’impression) car je n’ai plus de cache correspondant mais juste un squelette
- c’est quand même un poil moins lisible que la version « tout spip ».
Bref, je suis preneur d’information sur ce qui se passe avec xray, et aussi de la meilleure manière spipienne de répondre à mon besoin.
Merci!