Ticket #4291 : faire fonctionner la balise #INFO_INTRODUCTION de la même façon que #INTRODUCTION.
(Reprise de la PR !5 (merged) qui est en rade)
Objectif
Faire fonctionner la balise #INFO_INTRODUCTION de la même façon que #INTRODUCTION
Actuellement, cette balise ne renvoie rien, à part si l'objet possède un champ « introduction ». Il serait préférable d'avoir la vraie introduction calculée par SPIP en fonction des autres champs.
Fonctionnement actuel
La balise #INFO_xxx renvoie tout simplement le champ « xxx » de l'objet, s'il existe.
Les cas particuliers sont gérés de 2 façons :
- Certains sont gérés en interne : la date et le titre
- Les autres peuvent avoir des traitements personnalisés en créant des fonctions generer_TRUC_TYPE ou generer_TRUC_entite
Solution
Ce PR ajoute donc une fonction generer_introduction_entite pour prendre en charge les introductions.
Cette fonction est mutualisée entre la balise normale #INTRODUCTION et #INFO_INTRODUCTION.
En conséquent, une partie des choses qui étaient faites dans #INTRODUCTION est déportée dans cette fonction.
Pour résumer, voici l'ordre d'appel et le rôle des balises et fonctions :
-
#INTRODUCTION/#INFO_INTRODUCTION: récupère les données brutes (champs textes, paramètreslongueuretsuite) -
generer_introduction_entite(): normalise les données (tri dans les champs de texte, normalisation des paramètreslongueuretsuite) -
filtre_introduction_dist(): construit l'introduction
Limites
- On ne peut pour l'instant pas passer de paramètre supplémentaires à
#INFO_xxx, donc pas delongueuret desuite. - propre est déjà fait dans le calcul du fitre
introduction, donc l'étoile n'a aucun effet (cf. commentaire). - On ne connaît pas le $connect avec
#INFO_xxx, cf. commentaire
Tests
Testé les cas suivants, tout fonctionne :
#INFO_INTRODUCTION{article,#ID_ARTICLE}#INTRODUCTION#INTRODUCTION{100, ...}#INTRODUCTION{...}