Couteau Suisse 2.0.4 — erreur « Undefined constant _ONGLETS_FIN » avec la lame Sommaire

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_SOMMAIRE activé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.

Et en utilisant le plugin seul : Sommaire automatique - SPIP-Contrib ?

Autrement, ouvrir un ticket sur le plugin : Éléments de travail · spip-contrib-extensions / couteau_suisse · GitLab

J’ai déplacé le fil dans la catégorie « Général » plus adaptée à l’entraide concernant les plugins :grinning:

Bonsoir,
oui, j’utilise le plugin (de préfixe sommaire, version 2.0.2 actuellement) : il n’est donc pas nécessaire d’installer le couteau suisse.