[spip-dev] filtre_introduction

Intro n'en faut, comme dit le proverbe:

Les fonctionnalités autour de filtre_introduction sont difficilement compatibles avec le multi-base, car il faut calculer les titres des raccourcis anonymes ([->art1] etc). Dans l'implémentation actuelle ça se fait très tardivement, ce qui imposerait de passer l'argument "$connect" à toute une chaîne de filtres qui ne sont pas directement concernés (couper, couper_intro, supprimer_tags, et filtre_introduction) avant d'atteindre nettoyer_raccourcis_typo seul concerné. En outre, la définition actuelle de filtre_introduction fait beaucoup de calculs évitables (le switch devrait être effectué à la compil, PtoBR et propre sont quasi inutiles puisque supprimer_tags et nettoyer_raccourcis_typo sont passés par là auparavant). Je vais devoir chambouler pas mal ici, mais il me semble qu'il y a de toutes façons pléthore de points d'intervention à ce niveau: la pseudo-balise intro, la surcharge de filtre_introduction_dist, le descriptif qui est traité dérogatoirement, le chapo qui se concatène au texte sauf si c'est une indirection, plus les pipelines sur certains des filtres internes, excusez du peu.

A priori, la compilation de la balise #INTRODUCTION va se ramener au code suivant dans la table_des_traitements

typo(couper_intro(nettoyer_raccourci_typo(%s, $connect))

avec %s qui sera le champ texte, ou le descriptif ou le "chapo . texte".

Désolé pour l'incompatibilité qui s'en suivra, mais le degré d'expertise demandé par cette pléthore de fonctionnalités laisser penser que ceux qui l'ont atteint peuvent se définir sans difficulté un balise_INTRODUCTION surchargeant la balise_INTRODUCTION_dist officiel.

Committo,Ergo:Sum

Committo,Ergo:sum a écrit :

Intro n'en faut, comme dit le proverbe:

[...]
A priori, la compilation de la balise #INTRODUCTION va se ramener au
code suivant dans la table_des_traitements

typo(couper_intro(nettoyer_raccourci_typo(%s, $connect))

avec %s qui sera le champ texte, ou le descriptif ou le "chapo . texte".

Désolé pour l'incompatibilité qui s'en suivra, mais le degré
d'expertise demandé par cette pléthore de fonctionnalités laisser
penser que ceux qui l'ont atteint peuvent se définir sans difficulté
un balise_INTRODUCTION surchargeant la balise_INTRODUCTION_dist
officiel.

Committo,Ergo:Sum

Bonjour

J'ai bien compris que tu voulais introduire un changement.
Or, je ne pense pas que ce soit une bonne idée si la balise
#INTRODUCTION ne fonctionne plus à la mise à jour. On n'est pas chez
Microsoft.

Je propose la création d'une nouvelle balise : #EXTRAIT ou #RESUME
qui ferait :

la compilation de la balise #EXTRAIT va se ramener au
code suivant dans la table_des_traitements

Personnellement, je vois mal les changement, et, ça m'ennuierait
beaucoup de devoir réfléchir à un filtre perso pour cette balise,
puis à le tester...

Par contre, qu'il y ait une nouvelle balise compatible avec le
multibase, pourquoi pas.

A bientôt
Grégoire

Non, ce n'est pas aussi violent que ça heureusement.

L'idée c'est que chaque balise standard de SPIP est définie par une fonction balise_NOMDELABALISE_dist qui calcule le code PHP à mettre dans le squelette compilé. Si elle ne convient pas, il suffit définir dans mes_options.php ou autre la fonction balise_NOMDELABALISE produisant un autre code.
Dans le cas de la balise balise_INTRODUCTION_dist, et contrairement aux autres balises, il y a tout un tas de points d'entrée de prévu pour changer son comportement sans avoir à définir toute la fonction balise_INTRODUCTION. Je dis seulement que ces facilités microscopiques ne peuvent être maintenues dans le cadre du compilateur multi-base. Du coup, je vais réimplémenter autrement balise_INTRODUCTION_dist, et les personnes qui utilisaient ces points d'entrée devront se définir une fonction balise_INTRODUCTION égale à l'ancienne définition de fonction balise_INTRODUCTION_dist. C'est aussi simple que cela, et je pense que les gens concernés sont d'une part peu nombreux, d'autre part largement aptes à faire ça et même certainement à réécrire leur bout de code pour qu'en plus ça profite du multi-base.

Committo,Ergo:Sum