Personnaliser les comportements par pipelines
Actuellement, pour chaque form, il y a des fonctions uniques personnalisées, avec un _dist
, telle que inc_bigup_medias_formulaire_editer_logo_dist
, qu'on peut alors ensuite surcharger, mais bourrinement, une seule fois.
La proposition serait d'ajouter des pipelines, pour modifier les comportements, les options des champs bigup, plus proprement.
J'en vois au moins un pour l'instant : la méthode preparer_input() prend un sélecteur, et les options à appliquer à ces champs. Un pipeline devrait permettre de modifier ces options, en ayant en contexte le quel form, quel champ.
Le plus intéressant il me semble serait de le lancer pour chaque champ un par un, donc à l'intérieur du foreach : https://git.spip.net/spip/bigup/src/branch/master/inc/Bigup/Formulaire.php#L123
Quelque chose comme :
$options = pipeline(
'bigup_preparer_input',
array(
'args' => array('form' => $quelform, 'name' => $quelchampprécis,),
'data' => $options,
)
);
Avec ça on peut alors personnaliser les comportements, preview ou pas, quels formats "accept", etc, pour chaque champ bigup, sans aucune surcharge unique.