Surcharger proprement les Roles d'auteurs

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

C’est la manière propre de faire.