Jump to content

[Bug] Envoi d'email via un module


Recommended Posts

Bonjour à tous,

 

Développant un module sous la version 1.5 et ayant besoin d'envoyer un email lors de la soumission d'un formulaire, j'utilise la méthode statique Send de la classe Mail (Mail::Send())

 

J'ai pris soin de passer un paramètre (le 11ème, $templatePath = _PS_MAIL_DIR_) en indiquant le chemin du module.

 

Voici le code, pour faciliter la vue:

return Mail::Send(
  $this->context->language->id,
  'account',
  Mail::l('Welcome!'),
  array(
'{merchant_name}' => $merchant->merchant_name,
'{email}' => $merchant->email,
'{passwd}' => Tools::getValue('passwd')),
  $merchant->email,
  $merchant->merchant_name,
  null,
  null,
  null,
  null,
  $this->module->getPathUri().'mails/'
 );

 

Cependant, j'ai une erreur:

Erreur - Le template d'e-mail suivant n'existe pas : /commerce/modules/blockmerchant/mails/fr/account.txt

 

Je peux vous affirmer que le dossier mails ainsi que les dossiers mails/de, mails/en, mails/es, mails/fr, mails/it sont présent et contiennent chacun le fichier account.html et account.txt.

 

A y regarder de plus près au niveau de la méthode elle-même, je peux voir que la variable $moduleName reprend bien le nom du module (ici "blockmerchant") mais voici mon problème...

 

... en réalité, si je veux que mon module envoie un émail en particulier sans altérer les autres ou en rajouter dans le dossier principal mails, je dois mettre mon fichier dans le répertoire de mon thème , dans le dossier modules/blockmerchant/mails/

 

Or, voici ce que je pensais: si je développe un module qui désire envoyer un email, n'est-il pas plus intéressant (au niveau développement et facilité d'utilisation/installation) d'avoir un dossier mails au sein même du module et que la classe Mail me "permette le choix" entre un override via le thème ou directement via le module ?

 

Bien entendu, la question se pose de comment réaliser un mail qui correspond au thème actif à travers le module, mais il est tout aussi possible d'avoir une structure du type:

 

- /modules/<module_name>/mails/defaut/ (correspond aux mails envoyés par défaut si aucun thème ne correspond)

- /modules/<module_name>/mails/<nom_du_theme_actif>/ (correspond aux mails envoyés car ce thème est actif).

 

Pensez-vous que j'en demande trop ou que ce n'est pas du tout utile ou autre ? Je voudrais votre avis avant de soumettre cette idée (ou du moins, je soumets mon idée et je vois vos avis).

 

Me concernant, je pense override la méthode pour faire ce traitement...

 

EDIT: Et, bizarrement, lorsque je vois les traductions des modèles emails, on me présente bien le dossier /modules/<module_name>/mails/ et je vois repris ceux de mon module... :-/

Edited by J. Danse (see edit history)
Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...