•  » Plugins
  •  » [Résolu] [Entraide DEV] Conditionner l'appel à un trigger

#1 2013-04-11 21:45:38

Eric
Former Piwigo Team
VALENCE (FR)
2005-03-25
4579

[Résolu] [Entraide DEV] Conditionner l'appel à un trigger

Bonsoir à tous,

Là, je m'adresse aux spécialistes car je suis dans une impasse. Dans mon plugin Register_FluxBB, il manquait la fonction de récupération de comptes de FluxBB vers Piwigo. Pour la mettre en oeuvre, je me suis inspiré de ce qui est fait dans l'excellent plugin [extension by plg] User Mass Register en faisant un register_user($username, $password, $email, false) depuis le panneau d'admin du plugin.

Malheureusement, cela ne fonctionne pas car je fais appel au trigger "register_user" pour que les nouveaux inscrits sur la galerie le soient aussi sur le forum FluxBB lié par le plugin. Du coup, si je souhaite importer un compte existant dans FluxBB vers Piwigo, c'est le coup du serpent qui se mord la queue : Tentative d'inscription du compte = contrôle si le compte n'est pas déjà existant dans Piwigo + FluxBB. Résulat : Echec.

Je cherche donc le moyen de court-circuiter l'appel au trigger (placé dans le main.inc.php du plugin) uniquement lorsqu'un register_user() est lancé depuis le panneau d'admin du plugin. Mais il doit rester actif pour la page "register.php" ainsi que pour le gestionnaire d'utilisateurs de Piwigo (cas d'un utilisateur ajouté manuellement par un admin).

Et là, je sèche... J'ai essayé de m'appuyer sur un "if (script_basename() == 'xxxx')" où xxxx serait quelque chose du genre "admin.php?page=plugin-Register_FluxBB" mais, évidemment, çà ne fonctionne pas.

Si quelqu'un a une idée à me soumettre...

Merci par avance ;-)

Hors ligne

#2 2013-04-11 21:53:48

mistic100
Ex Equipe Piwigo
Lyon
2008-09-27
3561

Re: [Résolu] [Entraide DEV] Conditionner l'appel à un trigger

pourquoi pas

if (script_basename() == 'admin' && @$_GET['page'] == 'plugin-Register_FluxBB')

?

(en modifiant la seconde partir pour utiliser $page plutot que $_GET, mais je connais plus la structure exacte)

Hors ligne

#3 2013-04-11 22:05:12

Eric
Former Piwigo Team
VALENCE (FR)
2005-03-25
4579

Re: [Résolu] [Entraide DEV] Conditionner l'appel à un trigger

Merci mistic100,

J'étais justement en train de fouiller dans ton plugin oAuth où tu fais appel à ceci :

Code:

strpos(@$_GET['page'],'plugin-'.OAUTH_ID)===false )

Mais si je peux passer par la syntaxe que tu proposes, c'est d'autant mieux ;-)

Je teste...

Hors ligne

#4 2013-04-11 22:54:02

Eric
Former Piwigo Team
VALENCE (FR)
2005-03-25
4579

Re: [Résolu] [Entraide DEV] Conditionner l'appel à un trigger

Finalement, après plusieurs essais, j'ai fini par trouver et ceci fonctionne :

Code:

/* user creation*/
if (strpos(@$_GET['page'],'plugin') === false)
{
  add_event_handler('register_user', 'Register_FluxBB_Adduser');
}


// Check users registration
if (strpos(@$_GET['page'],'plugin') === false)
{
  add_event_handler('register_user_check', 'Register_FluxBB_RegistrationCheck', EVENT_HANDLER_PRIORITY_NEUTRAL, 2);
}

En fait, l'URL résultant de l'action de synchro des comptes est de ce style "page=plugin&section=Register_FluxBB%2Fadmin%2Fadmin.php&action=add2pwg&id=...". Du coup, dans $_GET['page'], ce n'est pas "plugin-Register_FluxBB" que je trouve mais "plugin".

J'aurais bien aimé cibler un peu plus que la page "plugin" mais bon, çà fonctionne comme çà ^^. Je vais quand même faire d'autres tests des fois que...

Merci encore, mistic100, pour m'avoir mis sur la piste :-)

Hors ligne

#5 2013-04-11 23:08:22

mistic100
Ex Equipe Piwigo
Lyon
2008-09-27
3561

Re: [Résolu] [Entraide DEV] Conditionner l'appel à un trigger

peut etre que tu devrait utiliser le style d'URL introduites en 2.3 partout
ça serait plus simple

Hors ligne

#6 2013-04-11 23:21:37

Eric
Former Piwigo Team
VALENCE (FR)
2005-03-25
4579

Re: [Résolu] [Entraide DEV] Conditionner l'appel à un trigger

C'est ce qu'il me semblait avoir fait. J'ai dû oublier çà pour ce plugin.

Hors ligne

  •  » Plugins
  •  » [Résolu] [Entraide DEV] Conditionner l'appel à un trigger

Pied de page des forums

Propulsé par FluxBB

github twitter newsletter Faire un don Piwigo.org © 2002-2025 · Contact