Browse Source

Layout email

Mise en place d'un layout propre pour les emails de La boîte à pain.
Adaptation et tests des emails d'inscription, de contact, de demande de nouveau mot de passe et d'envoi de récap des commandes.
Paramètrage de l'adresse email de contact admin (contact@laboiteapain.net).
master
keun 8 years ago
parent
commit
98304dbedf
22 changed files with 209 additions and 56 deletions
  1. +1
    -1
      backend/config/params.php
  2. +11
    -19
      backend/controllers/CronController.php
  3. +2
    -2
      common/config/params.php
  4. +9
    -0
      common/mail/contact-html.php
  5. +4
    -0
      common/mail/contact-text.php
  6. +1
    -2
      common/mail/createUserAdmin-html.php
  7. +1
    -2
      common/mail/createUserAdmin-text.php
  8. +16
    -0
      common/mail/cronRecapCommandes-html.php
  9. +20
    -0
      common/mail/cronRecapCommandes-text.php
  10. +51
    -1
      common/mail/layouts/html.php
  11. +4
    -0
      common/mail/layouts/text.php
  12. +1
    -2
      common/mail/passwordResetToken-html.php
  13. +1
    -2
      common/mail/passwordResetToken-text.php
  14. +27
    -0
      common/mail/signup-html.php
  15. +27
    -0
      common/mail/signup-text.php
  16. +1
    -1
      console/config/params.php
  17. +1
    -1
      frontend/config/params.php
  18. +24
    -3
      frontend/controllers/SiteController.php
  19. +7
    -3
      frontend/models/ContactForm.php
  20. +0
    -17
      frontend/models/SignupForm.php
  21. BIN
      frontend/web/img/laboiteapain-mail.png
  22. BIN
      frontend/web/img/laboiteapain-mail2.png

+ 1
- 1
backend/config/params.php View File

<?php <?php
return [ return [
'adminEmail' => 'admin@example.com',
'adminEmail' => 'contact@laboiteapain.net',
]; ];

+ 11
- 19
backend/controllers/CronController.php View File

'status' => User::STATUS_BOULANGER 'status' => User::STATUS_BOULANGER
]) ; ]) ;


$mail = Yii::$app->mailer->compose()
$mail = Yii::$app->mailer->compose(
[
'html' => 'cronRecapCommandes-html',
'text' => 'cronRecapCommandes-text',
],
[
'date' => $date,
'commandes' => $commandes
]
)
->setTo($user->email) ->setTo($user->email)
->setFrom(['contact@laboiteapain.net' => 'La boîte à pain']) ;
->setFrom([Yii::$app->params['adminEmail'] => 'La boîte à pain']) ;


if(count($commandes)) if(count($commandes))
{ {
]); ]);
$mail->attach(Yii::getAlias('@app/web/pdf/Commandes-'.$date.'-'.$e['id'].'.pdf')) ; $mail->attach(Yii::getAlias('@app/web/pdf/Commandes-'.$date.'-'.$e['id'].'.pdf')) ;


$message = 'Bonjour,

Voici en pièce jointe le récapitulatif des '.count($commandes).' commandes du '.date('d/m',strtotime($date)).'.

À bientôt,
La boîte à pain
' ;

} }
else { else {
$sujet = '[La boîte à pain] Aucune commande' ; $sujet = '[La boîte à pain] Aucune commande' ;


$message = 'Bonjour,

Vous n\'avez aucune commande pour le '.date('d/m',strtotime($date)).'.

À bientôt,
La boîte à pain
' ;

} }


$mail->setSubject($sujet) $mail->setSubject($sujet)
->setTextBody($message)
->send(); ->send();


} }

+ 2
- 2
common/config/params.php View File

<?php <?php
return [ return [
'adminEmail' => 'guillaume.bourgeois13@laposte.net',
'supportEmail' => 'support@example.com',
'adminEmail' => 'contact@laboiteapain.net',
'supportEmail' => 'contact@laboiteapain.net',
'user.passwordResetTokenExpire' => 3600, 'user.passwordResetTokenExpire' => 3600,
]; ];

+ 9
- 0
common/mail/contact-html.php View File

<?php

use yii\helpers\Html;

?>

<p>Message de <strong><?= Html::encode($nom) ?></strong> :</p>

<?= nl2br(Html::encode($content)); ?>

+ 4
- 0
common/mail/contact-text.php View File


Message de <?= $nom ?> :

<?= $content; ?>

+ 1
- 2
common/mail/createUserAdmin-html.php View File

Identifiant : <strong><?= Html::encode($user->email); ?></strong><br /> Identifiant : <strong><?= Html::encode($user->email); ?></strong><br />
Mot de passe : <strong><?= $password ?></strong></p> Mot de passe : <strong><?= $password ?></strong></p>


<p>Cordialement,<br />
<em>La boîte à pain</em></p>
<p>À bientôt.</p>

+ 1
- 2
common/mail/createUserAdmin-text.php View File

Identifiant : <?= $user->email; ?> Identifiant : <?= $user->email; ?>
Mot de passe : <?= $password ?> Mot de passe : <?= $password ?>


Cordialement,
La boîte à pain
À bientôt.

+ 16
- 0
common/mail/cronRecapCommandes-html.php View File


<?php
if(count($commandes)):
?>

<p>Bonjour,</p>
<p>Voici en pièce jointe le récapitulatif des <?= count($commandes) ?> commandes du <?= date('d/m',strtotime($date)) ?>.</p>
<p>À bientôt.</p>

<?php else: ?>

<p>Bonjour,</p>
<p>Vous n'avez aucune commande pour le <?= date('d/m',strtotime($date)) ?>.</p>
<p>À bientôt.</p>

<?php endif; ?>

+ 20
- 0
common/mail/cronRecapCommandes-text.php View File


<?php
if(count($commandes)):
?>

Bonjour,

Voici en pièce jointe le récapitulatif des <?= count($commandes) ?> commandes du <?= date('d/m',strtotime($date)) ?>.

À bientôt.

<?php else: ?>

Bonjour,

Vous n'avez aucune commande pour le <?= date('d/m',strtotime($date)) ?>.

À bientôt.

<?php endif; ?>

+ 51
- 1
common/mail/layouts/html.php View File

<meta http-equiv="Content-Type" content="text/html; charset=<?= Yii::$app->charset ?>" /> <meta http-equiv="Content-Type" content="text/html; charset=<?= Yii::$app->charset ?>" />
<title><?= Html::encode($this->title) ?></title> <title><?= Html::encode($this->title) ?></title>
<?php $this->head() ?> <?php $this->head() ?>
<style type="text/css">
body {
padding: 0px;
margin: 0px ;
font-family: Arial ;
font-size: 14px ;
background-color: white ;
}
a {
color: #BB8757 ;
}
#header {
background-color: #f8f1dd ;
border-bottom: 1px solid #e0e0e0 ;
height: 50px ;
text-align: center ;
}
#header .icon {
width: 70px ;
position: relative;
bottom: -17px ;
}
#content {
padding: 15px ;
background-color: white ;
}
#footer {
padding: 5px 15px ;
color: gray ;
border-top: dotted 1px #e0e0e0 ;
}
#link-boiteapain {
text-decoration: none ;
color: #BB8757 ;
}
</style>
</head> </head>
<body> <body>
<?php $this->beginBody() ?> <?php $this->beginBody() ?>
<?= $content ?>
<div id="header">
<img class="icon" src="http://www.laboiteapain.net/img/laboiteapain-mail2.png" alt="La boîte à pain" />
</div>
<div id="content">
<?= $content ?>
</div>
<div id="footer">
<p><a id="link-boiteapain" href="http://www.laboiteapain.net/">La boîte à pain</a> &bull; Plateforme de réservation de pain</p>
</div>
<?php $this->endBody() ?> <?php $this->endBody() ?>
</body> </body>
</html> </html>

+ 4
- 0
common/mail/layouts/text.php View File

<?php $this->beginPage() ?> <?php $this->beginPage() ?>
<?php $this->beginBody() ?> <?php $this->beginBody() ?>
<?= $content ?> <?= $content ?>

--
La boîte à pain / Plateforme de réservation de pain
http://www.laboiteapain.net/
<?php $this->endBody() ?> <?php $this->endBody() ?>
<?php $this->endPage() ?> <?php $this->endPage() ?>

+ 1
- 2
common/mail/passwordResetToken-html.php View File



<p><?= Html::a(Html::encode($resetLink), $resetLink) ?></p> <p><?= Html::a(Html::encode($resetLink), $resetLink) ?></p>
<p>À bientôt,<br />
La boîte à pain</p>
<p>À bientôt.</p>
</div> </div>

+ 1
- 2
common/mail/passwordResetToken-text.php View File



<?= $resetLink ?> <?= $resetLink ?>


À bientôt,
La boîte à pain
À bientôt.

+ 27
- 0
common/mail/signup-html.php View File

<?php

use yii\helpers\Html;
use common\models\User ;
use common\helpers\Url ;

?>

<p>Bonjour <?= Html::encode($user->prenom) ?>,</p>

<p>Votre inscription sur <strong>La boîte à pain</strong> a bien été prise en compte.</p>

<p>Voici votre identifiant de connexion : <br />
<strong><?= Html::encode($user->email) ?></strong></p>

<?php if($user->status == User::STATUS_BOULANGER): ?>
<p>Vous pouvez dès maintenant vous connecter à votre <a href="<?= Url::backend(); ?>">Espace boulanger</a> pour mettre
en place votre système de réservation.</p>
<?php else: ?>
<?php if(!is_null($etablissement)): ?>
<p>Vous pouvez maintenant <a href="<?= Url::frontend().'index.php?r=commande/create&id_etablissement='.$etablissement->id ?>">passer commande</a> dans votre boulangerie <strong><?= Html::encode($etablissement->nom); ?></strong>.</p>
<?php else: ?>
<p>Vous pouvez maintenant passer commande dans votre boulangerie.</p>
<?php endif; ?>
<?php endif; ?>

<p>À bientôt.</p>

+ 27
- 0
common/mail/signup-text.php View File

<?php

use common\models\User ;
use common\helpers\Url ;

?>

Bonjour <?= $user->prenom ?>,

Votre inscription sur La boîte à pain a bien été prise en compte.

Voici votre identifiant de connexion :
<?= $user->email ?>

<?php if($user->status == User::STATUS_BOULANGER): ?>
Vous pouvez dès maintenant vous connecter à votre Espace boulanger pour mettre en place votre système de réservation :
<?= Url::backend(); ?>
<?php else: ?>
<?php if(!is_null($etablissement)): ?>
Vous pouvez maintenant passer commande dans votre boulangerie "<?= $etablissement->nom ?>" :
<?= Url::frontend().'index.php?r=commande/create&id_etablissement='.$etablissement->id ?>
<?php else: ?>
Vous pouvez maintenant passer commande dans votre boulangerie.
<?php endif; ?>
<?php endif; ?>

À bientôt.

+ 1
- 1
console/config/params.php View File

<?php <?php
return [ return [
'adminEmail' => 'admin@example.com',
'adminEmail' => 'contact@laboiteapain.net',
]; ];

+ 1
- 1
frontend/config/params.php View File

<?php <?php
return [ return [
'adminEmail' => 'guillaume.bourgeois13@laposte.net',
'adminEmail' => 'contact@laboiteapain.net',
]; ];

+ 24
- 3
frontend/controllers/SiteController.php View File



public function actionIndex() public function actionIndex()
{ {
// redirection de l'utilisateur vers le tableau de bord s'il est connecté // redirection de l'utilisateur vers le tableau de bord s'il est connecté
if(!Yii::$app->user->isGuest) { if(!Yii::$app->user->isGuest) {
return $this->redirect(['commande/index']) ; return $this->redirect(['commande/index']) ;
$model = new ContactForm(); $model = new ContactForm();
if ($model->load(Yii::$app->request->post()) && $model->validate()) { if ($model->load(Yii::$app->request->post()) && $model->validate()) {
if ($model->sendEmail(Yii::$app->params['adminEmail'])) { if ($model->sendEmail(Yii::$app->params['adminEmail'])) {
Yii::$app->session->setFlash('success', 'Thank you for contacting us. We will respond to you as soon as possible.');
Yii::$app->session->setFlash('success', 'Votre message a bien été envoyé. Nous vous répondrons dès que possible.');
} else { } else {
Yii::$app->session->setFlash('error', 'There was an error sending email.');
Yii::$app->session->setFlash('error', 'Il y a eu une erreur lors de l\'envoi de votre message.');
} }


return $this->refresh(); return $this->refresh();
if ($model->load(Yii::$app->request->post())) { if ($model->load(Yii::$app->request->post())) {
if ($user = $model->signup()) { if ($user = $model->signup()) {
if (Yii::$app->getUser()->login($user)) { if (Yii::$app->getUser()->login($user)) {
//return $this->goHome();
$etablissement = null ;
if($model->id_etablissement)
{
$etablissement = Etablissement::findOne($model->id_etablissement) ;
}
Yii::$app->mailer->compose(
[
'html' => 'signup-html',
'text' => 'signup-text'
],
[
'user' => $user,
'etablissement' => $etablissement
])
->setTo($user->email)
->setFrom([Yii::$app->params['adminEmail'] => 'La boîte à pain'])
->setSubject('[La boîte à pain] Inscription')
->send();
$this->redirect(['commande/index']) ; $this->redirect(['commande/index']) ;
} }
} }

+ 7
- 3
frontend/models/ContactForm.php View File

public function sendEmail($email) public function sendEmail($email)
{ {
return Yii::$app->mailer->compose()
return Yii::$app->mailer->compose([
'html' => 'contact-html',
'text' => 'contact-text'],
[ 'content' => $this->body,
'nom' => $this->name
])
->setTo($email) ->setTo($email)
->setFrom([$this->email => $this->name]) ->setFrom([$this->email => $this->name])
->setSubject($this->subject)
->setTextBody($this->body)
->setSubject('[La boîte à pain] Contact : '.$this->subject)
->send(); ->send();
} }
} }

+ 0
- 17
frontend/models/SignupForm.php View File

$user->setPassword($this->password); $user->setPassword($this->password);
$user->generateAuthKey(); $user->generateAuthKey();
if ($user->save()) { if ($user->save()) {
// envoi d'un mail de confirmation
/*$message = "Bonjour,

Votre inscription sur le site de la boîte à pain a bien été prise en compte !

Ce compte vous permet de passer vos commandes directement sur le site internet.

Si vous avez des questions, n'hésitez pas à me contacter.

À bientôt,
Guillaume" ;
Yii::$app->mailer->compose()
->setTo($user->email)
->setFrom(['contact@laboiteapain.net' => 'Guillaume Bourgeois'])
->setSubject("Votre inscription sur la boîte à pain")
->setTextBody($message)
->send();*/
// on ajoute la boulangerie sélectionnée par l'user en favoris // on ajoute la boulangerie sélectionnée par l'user en favoris
if($this->option_client_boulanger == 'client') if($this->option_client_boulanger == 'client')

BIN
frontend/web/img/laboiteapain-mail.png View File

Before After
Width: 210  |  Height: 210  |  Size: 4.1KB

BIN
frontend/web/img/laboiteapain-mail2.png View File

Before After
Width: 250  |  Height: 250  |  Size: 4.8KB

Loading…
Cancel
Save