Annonce

#1 2013-04-07 19:33:49

lildadou
Membre
2012-08-10
38

[Résolu] [En cours] Template pour les mails envoyés

Solution: Le corps des messages mails pour notifier d'une inscription est codé en dur dans ./register.php@64 pour les inscriptions depuis la page d'inscription publique et dans ./admin/user_list.php@246 pour des inscriptions par l'administrateur depuis la page de gestion des utilisateurs (et lorsqu'on utilise User Mass Register). Vous ne pouvez pas modifier les mails envoyés à l'aide de template et vous devez nécessairement modifier au moins l'un de ces 2 fichiers.
Un exemple vous est proposé un peu plus bas


Bonjour à tous!

Les mails envoyés aux utilisateurs enregistrés ne me convenaient pas alors j'ai décidé de les modifiés. Rien de bien grave, je voudrais rajouter un champs qui rappelle l'URL du site plus clairement.

J'ai pu identifié les templates responsables (themes/default/template/mail/text/html/) mais LocalFiles Editor ne semble pas me permettre de "surcharger" ces templates.

Pourriez-vous me guider dans ma démarche?
(Merci à tout les volontaires)

Dernière modification par lildadou (2013-04-08 23:14:42)

Hors ligne

#2 2013-04-07 19:48:31

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

Re: [Résolu] [En cours] Template pour les mails envoyés

Bonjour,

Tu peux faire un thème perso avec uniquement ce fichier pour qu'il ne soit pas écrasé par les mises à jour
en choisissant comme parent ton thème actuel

Si tu as déjà un thème perso tu met le template il sera pris en compte


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

#3 2013-04-07 23:44:45

lildadou
Membre
2012-08-10
38

Re: [Résolu] [En cours] Template pour les mails envoyés

Merci pour cette réponse. Je reviens clore le sujet après avoir tenté :)

Hors ligne

#4 2013-04-08 00:41:46

lildadou
Membre
2012-08-10
38

Re: [Résolu] [En cours] Template pour les mails envoyés

Euh... Le chemin que j'ai fourni concernait bien l'envoi de mail. Cependant les messages trouvés dans le template concernaient les notifications (nouveaux commentaire, nouvelles photos, etc).

Le corps de message pour notifier d'une inscription est codé en dur dans ./register.php@64 pour les inscriptions depuis la page d'inscription publique et dans ./admin/user_list.php@246 pour des inscriptions par l'administrateur depuis la page de gestion des utilisateurs (et lorsqu'on utilise User Mass Register).

Un magnifique exemple de dispersion et d'enchevêtrement de code. Je suis dans génie logiciel alors je ne vous jetterez certainement pas la première pierre mais me permettriez-vous de vous citer dans de futurs articles scientifique?

Comme j'ai réponse à ma question, je vais marqué comme résolu.

Hors ligne

#5 2013-04-08 06:41:29

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

Re: [Résolu] [En cours] Template pour les mails envoyés

Bonjour,

Ma première réponse était pour répondre à ta surcharge de template non présent dans local file editor ;-)

Là, avec ta nouvelle demande, tu semble juste voiloir surcharger une clé de langue tu peux essayer avec local file editor dans l'onglet 'Langue' d'ajouter

<?php
$lang['If you think you\'ve received this email in error, please contact us at %s'] = 'Ce que tu veux .......... , veuillez nous contacter %s';
?>


Tu peux surcharger n'importe quelles clés de langue (Attention elle sera utilisés à tous les endroits ou il y a cette clés)


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

#6 2013-04-08 09:44:45

lildadou
Membre
2012-08-10
38

Re: [Résolu] [En cours] Template pour les mails envoyés

J'ai du mal m'exprimer. Dans mon premier post, je pensais que ma solution résidais dans la surcharge d'un template. Tu m'as alors fourni une méthode. Mais mon hypothèse de départ est fausse: on ne peut pas modifier le contenu des messages envoyés lors d'une nouvelle inscription via des templates!

La création du contenu des mails d'inscription se fait via du code PHP ; en l’occurrence celui-ci:

Code:

 $keyargs_content = array(
      get_l10n_args('Hello %s,', $login),
      get_l10n_args('Thank you for registering at %s!', $conf['gallery_title']),
      get_l10n_args('', ''),
      get_l10n_args('Here are your connection settings', ''),
      get_l10n_args('Username: %s', $login),
      get_l10n_args('Password: %s', $password),
      get_l10n_args('Email: %s', $mail_address),
      get_l10n_args('', ''),
      get_l10n_args('If you think you\'ve received this email in error, please contact us at %s', get_webmaster_mail_address()),
      );

    pwg_mail(
      $mail_address,
      array(
        'subject' => '['.$conf['gallery_title'].'] '.l10n('Registration'),
        'content' => l10n_args($keyargs_content),
        'content_format' => 'text/plain',
        )
      );

Si j'ai bien compris, je dois ajouter ça quelque part dans keyargs_content?

Code:

get_l10n_args('URL: %s', $GALLERY_URL),

Je disais donc:
1- c'est codé en dur. Pour modifier le contenu des mails d’inscription on ne peut que modifier les fichiers PHP.
2- Le code à modifier est dispersé un peu partout : dans admin/user_list.php, register.php et plugins/user_mass_register/admin.php (c'est une extension mais comme c'est en relation, je met quand même)

Hors ligne

#7 2013-04-08 10:49:48

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

Re: [Résolu] [En cours] Template pour les mails envoyés

As tu essayé ce que je t'ai proposé ?


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

#8 2013-04-08 11:11:22

lildadou
Membre
2012-08-10
38

Re: [Résolu] [En cours] Template pour les mails envoyés

En créant un nouveau thème, je pouvais modifier les mails mais avec des conditions: header, footer et corps des messages de notification de nouveau commentaires, photos, etc

Pour ta seconde proposition, j'ai peur de comprendre donc je n'ai pas essayé. Tu voudrais que je modifie une clé de langue existante? Dans mon cas, ce serai:

Code:

$lang['Username: %s'] = 'URL: https://monsite/piwigo/</br>Nom d'utilisateur: %s';

Désolé mais je suis pas fan XD

Dernière modification par lildadou (2013-04-08 11:11:52)

Hors ligne

#9 2013-04-08 23:12:57

lildadou
Membre
2012-08-10
38

Re: [Résolu] [En cours] Template pour les mails envoyés

Bon, c'est enfin résolu. Je ne donnerai la solution que pour les messages d'inscription envoyé par User Mass Register mais c'est très similaire pour 2 autres méthodes d'inscription.

Donc on commence par modifier le fichier php responsable de la méthode de notification par UMR. Il s'agit de la méthode register_user_and_notify() dans le fichier plugins/user_mass_register/admin.php J'ai simplement ajouté une ligne de texte dans le mail en ajoutant un élément au tableau $keyargs_content.

Code:

function register_user_and_notify($login, $password, $mail_address) {
    include_once(PHPWG_ROOT_PATH.'include/functions_mail.inc.php');
    include_once(PHPWG_ROOT_PATH.'include/functions_url.inc.php');
        
    $keyargs_content = array(
      get_l10n_args('Hello %s,', $login),
      get_l10n_args('Thank you for registering at %s!', $conf['gallery_title']),
      get_l10n_args('', ''),
      get_l10n_args('Here are your connection settings', ''),
      get_l10n_args('Website address: %s', 'https://monsite/piwigo/'),
      get_l10n_args('Username: %s', $login),
      get_l10n_args('Password: %s', $password),
      get_l10n_args('Email: %s', $mail_address),
      get_l10n_args('', ''),
      get_l10n_args('If you think you\'ve received this email in error, please contact us at %s', get_webmaster_mail_address()),
      );
...

Notez 2 choses, d'abord l'adresse est inscrite en dur. J'aurai voulu appeller la méthode get_root_url() situé dans include/functions_url.inc.php. Mais elle renvoi une chaine vide. Un petit commentaire semble dire que c'est un comportement normal (TODO - add HERE the possibility to call PWG functions from external scripts)

Pour ajouter une traduction française, il suffit de modifier le fichier i10n de User Mass Registration. Ce fichier est situé dans plugins/user_mass_register/language/fr_FR/plugin.lang.php

Code:

$lang['Website address: %s'] = 'Adresse du site web: %s';

J'aurai aussi aimé rendre l'adresse "clickable" mais les caractères sont échappés. Merci pour ton aide @ddtddt

Hors ligne

Pied de page des forums

Propulsé par FluxBB

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