[SPIP Zone] surcharger une fonction _dist dans plusieurs plugins

Bonjour,
lorsqu’une fonction _dist est déjà surchargée par un plugin qui est déclaré nécessaire (<necessite…/>), comment peut-on faire pour surcharger cette fonction ?
Exemple concret :
Mon plugin nécessite « pages » et tous les deux surchargent la fonction autoriser_rubrique_creerarticledans()

  • pages à prévu sa fonction dans un test : if (!function_exists(‹ autoriser_rubrique_creerarticledans ›))
  • mon projet peut faire pareil, mais c’est la fonction de pages qui est utilisée, et pas la mienne !!!

Je ne sais pas trop comment faire… merci de l’aide :o)

Pour ça il y aurait peut-être à tenter quelque chose sur ce modèle : C’est comme une fonction relais. Donc Pages pourrait se faire une nouvelle fonction avec _dist et la charger dans la surcharge de la fonction autoriser_rubrique_creerarticledans
de cette manière un autre plugin pourrait surcharger la nouvelle fonction de Pages en enlevant le suffixe _dist et le tour est joué…
(merci Teddy qui m’avait refiler le tuyau il y a un bail…)

Que pensez-vous de cette solution ?

Le 06/02/2019 à 18:05, chankalan@choc0.net a écrit :

Pour ça il y aurait peut-être à tenter quelque chose sur ce modèle : Astuces longues pour SPIP
C'est comme une fonction relais.
Donc Pages pourrait se faire une nouvelle fonction avec _dist et la charger dans la surcharge de la fonction autoriser_rubrique_creerarticledans
de cette manière un autre plugin pourrait surcharger la nouvelle fonction de Pages en enlevant le suffixe _dist et le tour est joué...
(merci Teddy qui m'avait refiler le tuyau il y a un bail...)

Que pensez-vous de cette solution ?

Je pige pas les explications, mais si ça marche, c'est ce qui compte !

Sinon, si ton plugin ne sert que sur un seul site pour définir son fonctionnement
et comme pages teste si une définition n'a pas déjà été faite,
alors le plus simple serait de définir la fonction autoriser_rubrique_creerarticledans dans config/mes_options,
car c'est chargé au tout début.

JL

Le 06/02/2019 à 14:26, chankalan@choc0.net a écrit :

Bonjour,
lorsqu'une fonction _dist est déjà surchargée par un plugin qui est déclaré nécessaire (<necessite.../>), comment peut-on faire pour surcharger cette fonction ?
Exemple concret :
Mon plugin nécessite "pages" et tous les deux surchargent la fonction autoriser_rubrique_creerarticledans()
- pages à prévu sa fonction dans un test : if (!function_exists('autoriser_rubrique_creerarticledans'))
- mon projet peut faire pareil, mais c'est la fonction de pages qui est utilisée, et pas la mienne !!!

Je ne sais pas trop comment faire... merci de l'aide :o)

--

----
chan

----
spip-zone@rezo.net -https://listes.rezo.net/mailman/listinfo/spip-zone

--

----
chan

----
spip-zone@rezo.net - https://listes.rezo.net/mailman/listinfo/spip-zone

Le 06/02/2019 à 20:58, JLuc a écrit :

alors le plus simple serait de définir la fonction autoriser_rubrique_creerarticledans dans config/mes_options,

c'est plus simple et ça fonctionne, merci jluc !
en fait même juste dans prefixe_options.php ça passe avant, donc c'est très bien...
(par contre pas dans prefixe_autorisations.php, c'était le soucis)

--

----
chan

Hello,

alors le plus simple serait de définir la fonction autoriser_rubrique_creerarticledans dans config/mes_options,

c'est plus simple et ça fonctionne, merci jluc !
en fait même juste dans prefixe_options.php ça passe avant, donc c'est très bien...
(par contre pas dans prefixe_autorisations.php, c'était le soucis)

ahhh...merci guys :slight_smile:

Une des fonctions du plugin LIM était devenu incompatible avec le plugin Pages Uniques depuis https://zone.spip.net/trac/spip-zone/changeset/113433/spip-zone

J'ai maintenant une solution. Cool.

Reste à savoir si je l'implémente dans lim_options.php avec un
if (test_plugin_actif('pages')) {

avec les conséquences sur les perfs.

Ou si fait une bafouille dans la doc à ce propos.

Des avis ?