•  » Plugins
  •  » [Résolu] [entraide] Personnaliser l'email sur mot de passe perdu

#1 2011-02-05 23:18:01

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

[Résolu] [entraide] Personnaliser l'email sur mot de passe perdu

Bonsoir à tous et toutes,

Je suis confronté à un petit problème technique que je n'arrive pas à résoudre dans un de mes plugins (UAM pour ne pas le citer ^^) : Je cherche à surcharger les informations envoyées par email lorsq'un utilisateur a oublié son mot de passe et demande une régénération. Le but n'est pas, évidemment, de supprimer les informations transmises (à savoir username et password) mais de pouvoir en ajouter d'autres personnalisables.

Le fichier de base qui exploite la génération et l'envoi d'un nouveau mot de passe est ./password.php. Je me suis donc basé sur celui-ci. Comme il ne contient pas de trigger, j'ai tenté ceci:

Code:

// Customization of lost password email
  if (script_basename() == 'password')
  {
    if (isset($_POST['submit']))
    {
      if (isset($_POST['mail_address']) and !empty($_POST['mail_address']) and isset($conf_UAM[29]) and $conf_UAM[29] == 'true')
      {
        $mail_address = pwg_db_real_escape_string($_POST['mail_address']);

        $query = '
SELECT '.$conf['user_fields']['id'].' AS id
     , '.$conf['user_fields']['username'].' AS username
     , '.$conf['user_fields']['email'].' AS email
FROM '.USERS_TABLE.' as u
  INNER JOIN '.USER_INFOS_TABLE.' AS ui
      ON u.'.$conf['user_fields']['id'].' = ui.user_id
WHERE '.$conf['user_fields']['email'].' = \''.$mail_address.'\'
  AND ui.status = \'normal\'
;';
        $result = pwg_query($query);

        if (pwg_db_num_rows($result) > 0)
        {
          while ($row = pwg_db_fetch_assoc($result))
          {
            $new_password = generate_key(6);

            $infos =
              $conf_UAM[30]
              ."\n"."\n".l10n('Username').': '.stripslashes($row['username'])
              ."\n".l10n('Password').': '.$new_password;
          }
        }
      }
    }
  }

Evidemment, cela ne fonctionne pas. J'ai essayé en "clonant" le code originel de password.php. Là, çà fonctionne... Trop ! En effet, comme je fais appel 2 fois à pwg_mail (une fois via password.php et une seconde par le plugin), l'utilisateur reçois 2 emails de régénération de mot de passe; et le dernier arrivé aura raison.

Je suis donc bloqué. D'où ma question : Quelqu'un aurait-il une idée brillante et géniale pour pouvoir surcharger le contenu la variable $infos de password.php ?

Hors ligne

#2 2011-02-05 23:39:49

Gotcha
Ex Equipe Piwigo
Pierrelatte (26)
2007-03-14
13331

Re: [Résolu] [entraide] Personnaliser l'email sur mot de passe perdu

Pourquoi pas ajouter des triggers :-D
Profites-en avec la v2.2

;-)


Ayez comme premier réflexe de consulter le wiki.
Ensuite, veuillez effectuer une recherche sur le forum avant de poser votre question.

LE FAIRE EST LE REVELATEUR DE L'ETRE

Hors ligne

#3 2011-02-06 02:32:50

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

Re: [Résolu] [entraide] Personnaliser l'email sur mot de passe perdu

Oui, ce serait l'occasion.

Avis des codeurs en chef ?

Hors ligne

#4 2011-02-06 09:27:35

ddtddt
Équipe Piwigo
Quetigny (21) - France
2007-07-27
16978

Re: [Résolu] [entraide] Personnaliser l'email sur mot de passe perdu

As tu regarder le chemin que prenais le plugin captcha ?
Il y a des chance que ce soit le même chemin ? non ?


Vous aimez Piwigo alors n'hésitez pas à participer avec nous, plus d'infos sur la page "Contribuer à Piwigo". Si vous n'avez pas beaucoup de temps et que vous souhaitez nous soutenir vous pouvez aussi le faire par un don.

Hors ligne

#5 2011-02-06 12:49:13

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

Re: [Résolu] [entraide] Personnaliser l'email sur mot de passe perdu

Oui... Mais non ;-)

Le plugin Captcha ajoute un élément sur la page d'inscription (register.php) et non sur password.php. De plus, register.php comporte les triggers nécessaires et permet le pre/post filtering.
Avec password.php, autant on pourrait insérer un élément sur la page, autant il n'est pas possible de modifier le comportement de la fonction. Les utilisateurs ayant perdu leur mot de passe reçoivent un mail laconique ne comportant que leur login et mot de passe. Mon but est de permettre "d'embellir" ce contenu.

Hors ligne

#6 2011-02-09 15:04:36

plg
Équipe Piwigo
Nantes, France, Europe
2002-04-05
12676

Re: [Résolu] [entraide] Personnaliser l'email sur mot de passe perdu

Est-ce que cela t'intéresserait ?

Code:

$ svn diff password.php 
Index: password.php
===================================================================
--- password.php        (revision 9116)
+++ password.php        (working copy)
@@ -84,6 +84,8 @@
           ."\n".l10n('Password').': '.$new_password
           ;
 
+        $infos = trigger_event('render_lost_password_mail_content', $infos);
+
         if (pwg_mail($row['email'],
               array('subject' => l10n('password updated'), 'content' => $infos)))
         {

Les historiens ont établi que Pierrick était le premier utilisateur connu de Piwigo.

Hors ligne

#7 2011-02-09 17:24:23

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

Re: [Résolu] [entraide] Personnaliser l'email sur mot de passe perdu

Absolument ! J'avais déjà procédé à un ajout de trigger sur ma galerie locale pour voir 1) si j'étais capable de faire 2) si cela correspondait au besoin. "render_lost_password_mail_content", c'est nickel.

Merci plg :-)

Hors ligne

#8 2011-02-09 17:31:08

plg
Équipe Piwigo
Nantes, France, Europe
2002-04-05
12676

Re: [Résolu] [entraide] Personnaliser l'email sur mot de passe perdu

OK, je vais m'en occuper. Comptes sur cet ajout.


Les historiens ont établi que Pierrick était le premier utilisateur connu de Piwigo.

Hors ligne

#9 2011-02-09 17:39:18

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

Re: [Résolu] [entraide] Personnaliser l'email sur mot de passe perdu

plg a écrit:

OK, je vais m'en occuper. Comptes sur cet ajout.

Cool ! ^^

Je résous ce topic ;-)

Hors ligne

#10 2011-02-09 21:40:10

LucMorizur
Membre
Vienne (Isère, 38)
2009-03-01
1969

Re: [Résolu] [entraide] Personnaliser l'email sur mot de passe perdu

Eric a écrit:

Cool ! ^^

+1

Hors ligne

#11 2011-02-11 10:54:59

plg
Équipe Piwigo
Nantes, France, Europe
2002-04-05
12676

Re: [Résolu] [entraide] Personnaliser l'email sur mot de passe perdu


Les historiens ont établi que Pierrick était le premier utilisateur connu de Piwigo.

Hors ligne

  •  » Plugins
  •  » [Résolu] [entraide] Personnaliser l'email sur mot de passe perdu

Pied de page des forums

Propulsé par FluxBB

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