@@ -48,7 +48,7 @@ class MailForm extends Model | |||
{ | |||
public $subject; | |||
public $body; | |||
public $message; | |||
/** | |||
* @inheritdoc | |||
@@ -56,8 +56,7 @@ class MailForm extends Model | |||
public function rules() | |||
{ | |||
return [ | |||
// name, email, subject and body are required | |||
[['subject', 'body'], 'required', 'message' => 'Champs obligatoire'], | |||
[['subject', 'message'], 'required', 'message' => 'Champs obligatoire'], | |||
]; | |||
} | |||
@@ -68,24 +67,50 @@ class MailForm extends Model | |||
{ | |||
return [ | |||
'subject' => 'Sujet', | |||
'body' => 'Message', | |||
'message' => 'Message', | |||
]; | |||
} | |||
/** | |||
* Sends an email to the specified email address using the information collected by this model. | |||
* Envoie un email aux utilisateurs d'un point de vente ou à tous les | |||
* utilisateurs d'un producteur. | |||
* | |||
* @param string $email the target email address | |||
* @return boolean whether the email was sent | |||
* @param integer $idPointSale ID du point de vente | |||
*/ | |||
public function sendEmail($email) | |||
public function sendEmail($usersArray) | |||
{ | |||
return Yii::$app->mailer->compose() | |||
->setTo($email) | |||
->setFrom(['contact@laboiteapain.net' => 'Laboîte à pain']) | |||
->setSubject($this->subject) | |||
->setTextBody($this->body) | |||
->send(); | |||
$producer = Producer::getCurrent() ; | |||
$mj = new \Mailjet\Client( | |||
$producer->getApiKeyMailjet('public'), | |||
$producer->getApiKeyMailjet('private'), | |||
true, | |||
['version' => 'v3.1'] | |||
); | |||
$body = ['Messages' => []] ; | |||
foreach($usersArray as $user) { | |||
$body['Messages'][] = [ | |||
'From' => [ | |||
'Email' => "contact@laboiteapain.net", | |||
'Name' => $producer->name | |||
], | |||
'To' => [ | |||
[ | |||
'Email' => $user['email'], | |||
'Name' => $user['name'].' '.$user['lastname'] | |||
] | |||
], | |||
'Subject' => $this->subject, | |||
'TextPart' => $this->message, | |||
'HTMLPart' => nl2br($this->message) | |||
] ; | |||
} | |||
$response = $mj->post(\Mailjet\Resources::$Email, ['body' => $body]); | |||
return $response->success() ; | |||
} | |||
} |
@@ -37,6 +37,7 @@ termes. | |||
*/ | |||
use yii\helpers\Html ; | |||
use yii\widgets\ActiveForm; | |||
$this->setTitle('Liste des emails') ; | |||
$this->addBreadcrumb(['label' => 'Utilisateurs', 'url' => ['user/index']]) ; | |||
@@ -44,7 +45,6 @@ $this->addBreadcrumb($this->getTitle()) ; | |||
?> | |||
<h3><?= count($usersArray); ?> utilisateurs</h3> | |||
<ul id="tabs-points-sale" class="nav nav-tabs" role="tablist"> | |||
<li class="<?php if(!isset($pointSale)): ?>active<?php endif; ?>"> | |||
<a href="<?= Yii::$app->urlManager->createUrl(['user/mail']); ?>">Tous</a> | |||
@@ -56,5 +56,34 @@ $this->addBreadcrumb($this->getTitle()) ; | |||
<?php endforeach; ?> | |||
</ul> | |||
<?= implode(', ', $usersArray); ?> | |||
<div id=""> | |||
<div class="col-md-6"> | |||
<div class="panel panel-default"> | |||
<div class="panel-heading"> | |||
<h3 class="panel-title">Envoyer un message</h3> | |||
</div> | |||
<div class="panel-body"> | |||
<?php $form = ActiveForm::begin(); ?> | |||
<?= $form->field($mailForm, 'subject')->textInput() ; ?> | |||
<?= $form->field($mailForm, 'message')->textarea(['rows' => '15']) ; ?> | |||
<div class="form-group"> | |||
<?= Html::submitButton( 'Envoyer', ['class' => 'btn btn-primary']) ?> | |||
</div> | |||
<?php ActiveForm::end(); ?> | |||
</div> | |||
</div> | |||
</div> | |||
<div class="col-md-6"> | |||
<div class="panel panel-default"> | |||
<div class="panel-heading"> | |||
<h3 class="panel-title">Liste des emails <span class="label label-default"><?= count($usersArray); ?></span></h3> | |||
</div> | |||
<div class="panel-body"> | |||
<?= implode(', ', $usersArray); ?> | |||
</div> | |||
</div> | |||
</div> | |||
<div class="clr"></div> | |||
</div> | |||
@@ -1,60 +0,0 @@ | |||
<?php | |||
/** | |||
Copyright La boîte à pain (2018) | |||
contact@laboiteapain.net | |||
Ce logiciel est un programme informatique servant à aider les producteurs | |||
à distribuer leur production en circuits courts. | |||
Ce logiciel est régi par la licence CeCILL soumise au droit français et | |||
respectant les principes de diffusion des logiciels libres. Vous pouvez | |||
utiliser, modifier et/ou redistribuer ce programme sous les conditions | |||
de la licence CeCILL telle que diffusée par le CEA, le CNRS et l'INRIA | |||
sur le site "http://www.cecill.info". | |||
En contrepartie de l'accessibilité au code source et des droits de copie, | |||
de modification et de redistribution accordés par cette licence, il n'est | |||
offert aux utilisateurs qu'une garantie limitée. Pour les mêmes raisons, | |||
seule une responsabilité restreinte pèse sur l'auteur du programme, le | |||
titulaire des droits patrimoniaux et les concédants successifs. | |||
A cet égard l'attention de l'utilisateur est attirée sur les risques | |||
associés au chargement, à l'utilisation, à la modification et/ou au | |||
développement et à la reproduction du logiciel par l'utilisateur étant | |||
donné sa spécificité de logiciel libre, qui peut le rendre complexe à | |||
manipuler et qui le réserve donc à des développeurs et des professionnels | |||
avertis possédant des connaissances informatiques approfondies. Les | |||
utilisateurs sont donc invités à charger et tester l'adéquation du | |||
logiciel à leurs besoins dans des conditions permettant d'assurer la | |||
sécurité de leurs systèmes et ou de leurs données et, plus généralement, | |||
à l'utiliser et l'exploiter dans les mêmes conditions de sécurité. | |||
Le fait que vous puissiez accéder à cet en-tête signifie que vous avez | |||
pris connaissance de la licence CeCILL, et que vous en avez accepté les | |||
termes. | |||
*/ | |||
use yii\helpers\Html ; | |||
$this->setTitle('Envoyer un email') ; | |||
$this->addBreadcrumb(['label' => 'Utilisateurs', 'url' => ['user/index']]) ; | |||
$this->addBreadcrumb($this->getTitle()) ; | |||
?> | |||
<h3><?= count($usersArray); ?> utilisateurs</h3> | |||
<ul id="tabs-points-sale" class="nav nav-tabs" role="tablist"> | |||
<li class="<?php if(!isset($pointSale)): ?>active<?php endif; ?>"> | |||
<a href="<?= Yii::$app->urlManager->createUrl(['user/mail']); ?>">Tous</a> | |||
</li> | |||
<?php foreach($pointsSaleArray as $thePointSale): ?> | |||
<li class="<?php if(isset($pointSale) && $pointSale->id == $thePointSale->id): ?>active<?php endif; ?>"> | |||
<a href="<?= Yii::$app->urlManager->createUrl(['user/mail','idPointSale'=>$thePointSale->id]); ?>"><?= Html::encode($thePointSale->name) ?></a> | |||
</li> | |||
<?php endforeach; ?> | |||
</ul> | |||
<?= implode(', ', $usersArray); ?> | |||
@@ -1906,3 +1906,8 @@ termes. | |||
-webkit-transform: scale(1.1); | |||
transform: scale(1.1); | |||
} | |||
/* line 3, ../sass/user/_emails.scss */ | |||
.user-mail #tabs-points-sale { | |||
margin-bottom: 20px; | |||
} |
@@ -1336,4 +1336,5 @@ a { | |||
@import "subscription/_index.scss" ; | |||
@import "product/_index.scss" ; | |||
@import "stats/_products.scss" ; | |||
@import "distribution/_index.scss" ; | |||
@import "distribution/_index.scss" ; | |||
@import "user/_emails.scss" ; |
@@ -0,0 +1,7 @@ | |||
.user-mail { | |||
#tabs-points-sale { | |||
margin-bottom: 20px ; | |||
} | |||
} | |||