Bonjour,
J’essaie de mettre en place un sommaire dans mes articles SPIP avec la lame Sommaire du Couteau Suisse.
Après son activation, j’ai rencontré une erreur lors de la consultation d’un article dans l’espace privé :
Erreur d’exécution ../prive/objets/contenu/article.html
File […]/tmp/couteau-suisse/mes_fonctions.php
Line 630 : Undefined constant '_ONGLETS_FIN'
Mon niveau technique n’étant pas suffisant pour comprendre et diagnostiquer ce problème seul, j’ai eu recours à l’IA. Voici le rapport issu de cette investigation, que je vous soumets pour avis.
Environnement et configuration
- SPIP 4.4.25
- Couteau Suisse 2.0.4 ;
- PHP 8.1 sur l’installation locale utilisée pour les tests ;
- lame Sommaire activée ;
- création systématique du sommaire ;
- option de placement avec
#CS_SOMMAIREactivée.
Diagnostic proposé
Dans la fonction sommaire_d_article_rempl(), le plugin vérifie l’existence de la constante _onglets_FIN, puis utilise _ONGLETS_FIN dans le traitement qui suit.
Les constantes PHP étant sensibles à la casse, cette différence provoquerait l’erreur lorsque _onglets_FIN est définie.
Vérification sur une installation locale
Le problème a été reproduit avec un squelette minimal, sans CSS ni JavaScript :
<BOUCLE_article(ARTICLES){id_article}>
#CS_SOMMAIRE
</BOUCLE_article>
Deux variantes ont été comparées sur le même article :
- avec la référence originale
_ONGLETS_FIN: erreur « Undefined constant » ; - avec la référence corrigée
_onglets_FIN: génération correcte du sommaire, avec quatre entrées.
Correctif proposé
Remplacer la référence _ONGLETS_FIN par _onglets_FIN dans le fichier source de la lame, puis régénérer les fonctions compilées du Couteau Suisse.
Ce diagnostic vous paraît-il correct ?
Merci pour votre aide et pour le travail sur ce plugin.