Pour un site éditorial contributif, j’ai eu besoin d’ajouter des roles supplémentaires à ceux pris en compte par défaut par le plugin roles_auteurs.
Ne parvenant pas à trouver où mettre le fichier /base/roles_auteurs.php pour le surcharger proprement dans le répertoire squelettes, j’ai fais mes modif directement dans la fonction du plugin, puis je n’y ai plus pensé.
Évidemment, quand j’ai mis à jour le plugin, mes modifs ont disparu. Pourriez-vous m’indiquer comment faire pour que la fonction roles_auteurs_declarer_tables_objets soit modifiée de façon pérenne ou comment surcharger /base/roles_auteurs.php ?
A priori il faut le même chemin dans ton dossier squelette ou dans ton plugin, donc monplugin/base/roles_auteurs.php si monplugin et le préfixe de ton plugin.
Comme tu vois cette fonction est préfixée par roles_auteurs. C’est l’étape définie pour ce plugin du pipeline declarer_tables_objets, qui est très correctement documenté là : declarer_tables_objets_sql - Programmer avec SPIP 4 (lol merci)
Ton propre plugin peut donc à son tour la surcharger par une fonction monplugin_declarer_tables_objets_sql
dont tu t’assures qu’elle soit appelée après la fonction définie par role_auteurs au moyen de l’entrée necessite dans paquet.xml (ou sinon l’entrée utilise re-lol)
et dans laquelle tu modifies le résultat du passage par roles_auteurs pour y mettre ce que tu veux au final