Un problème réglé avec SarkaSpip
A annuler ou à reprendre, l’anomalie étant réglée.
Mais des informations sur les outils de debug SPIP
Version SarkaSpip Reloaded 4.5
Problème
Sur l’affichage d’un article orphelin dans une rubrique, alors que l’on a choisi dans SarkaSpip de "Court-circuiter les page de rubriques qui n’ont qu’un article (en affichant l’article sur l’url de la rubrique)", affichage en haut de page du message
"Strict Standards : Only variables should be passed by reference in /var/www/alternc/o/orb29/orbi/plugins/auto/sarkaspipr/v4.5.10/inc/sarkaspip_filtres.php on line 98"
Mais ce problème disparait si on choisit le paramètre suivant
"Court-circuiter les page de rubriques qui n’ont qu’un article (par redirection vers l’article"
Donc réglé
J’ai néanmoins gardé cette page pour expliquer le principe du debugage Spip
Examen du 1er squelette
Exemple : rubrique 19
plugins/auto/sarkaspipr/v4.5.10/rubrique.html
#SET{redirection,#ID_RUBRIQUE|sarkaspip_test_si_redirection_article_solitaire}
<BOUCLE_principale_rubrique(RUBRIQUES){id_rubrique}>
<BOUCLE_art_orphelin(ARTICLES){id_article=#GET{redirection}}{si #CONFIG{sarkaspip/rubrique/court_circuit,0}|=={2}}{si #AGENDA|non}>
<INCLURE{fond=article,id_article,env} />
</BOUCLE_art_orphelin>
[(#GET{redirection}|non|sinon_interdire_acces{#URL_ARTICLE{#GET{redirection}}})]
<INCLURE{fond=structure,env,id_secteur=#ID_SECTEUR,type-page=rubrique,composition=#ENV{referencer}|=={oui}|?{referencer,#AGENDA|?{agenda,#COMPOSITION}}} />
<//B_art_orphelin>
</BOUCLE_principale_rubrique>
Analyse avec outil debug
Pour chaque boucle, on a d’abord le contenu de la balise #ENV
Ici pour la rubrique 19, au démarrage
(squelette plugins/auto/sarkaspipr/v4.5.10/rubrique.html)
on a :
id_rubrique : 19
type-page : rubrique
Ensuite pour chaque boucle terminée, une ligne avec :
- boucle (donne accès au code SPIP de la boucle)
- resultat (donne accès à la requête SQL générée)
- code (donne accès au code php généré)
- calcul
- le nom de la boucle
- le type d’éléments traités (articles, rubriques, ...)
- le rappel des critères de sélection
Recherche ici du bug
La 1ere commande est une balise #SET avec un filtre élaboré par SarkaSPIP. Ce filtre est "sarkaspip_test_si_redirection_article_solitaire" et on le trouve dans :
orbi/plugins/auto/sarkaspipr/v4.5.10/inc/sarkaspip_filtres.php
La ligne 98 se trouve semble-t-il dans les toutes dernières lignes de la function, lors de l’émission du return.
Mais on est alors dans une partie précédée du commentaire suivant :
// si une sous-rubrique publie, pas de redirection
// il faut passer par une boucle compilateur pour avoir les conditions de statut publie