{ | { | ||||
public $subject; | public $subject; | ||||
public $body; | |||||
public $message; | |||||
/** | /** | ||||
* @inheritdoc | * @inheritdoc | ||||
public function rules() | public function rules() | ||||
{ | { | ||||
return [ | return [ | ||||
// name, email, subject and body are required | |||||
[['subject', 'body'], 'required', 'message' => 'Champs obligatoire'], | |||||
[['subject', 'message'], 'required', 'message' => 'Champs obligatoire'], | |||||
]; | ]; | ||||
} | } | ||||
{ | { | ||||
return [ | return [ | ||||
'subject' => 'Sujet', | '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() ; | |||||
} | } | ||||
} | } |
*/ | */ | ||||
use yii\helpers\Html ; | use yii\helpers\Html ; | ||||
use yii\widgets\ActiveForm; | |||||
$this->setTitle('Liste des emails') ; | $this->setTitle('Liste des emails') ; | ||||
$this->addBreadcrumb(['label' => 'Utilisateurs', 'url' => ['user/index']]) ; | $this->addBreadcrumb(['label' => 'Utilisateurs', 'url' => ['user/index']]) ; | ||||
?> | ?> | ||||
<h3><?= count($usersArray); ?> utilisateurs</h3> | |||||
<ul id="tabs-points-sale" class="nav nav-tabs" role="tablist"> | <ul id="tabs-points-sale" class="nav nav-tabs" role="tablist"> | ||||
<li class="<?php if(!isset($pointSale)): ?>active<?php endif; ?>"> | <li class="<?php if(!isset($pointSale)): ?>active<?php endif; ?>"> | ||||
<a href="<?= Yii::$app->urlManager->createUrl(['user/mail']); ?>">Tous</a> | <a href="<?= Yii::$app->urlManager->createUrl(['user/mail']); ?>">Tous</a> | ||||
<?php endforeach; ?> | <?php endforeach; ?> | ||||
</ul> | </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> | |||||
<?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); ?> | |||||
-webkit-transform: scale(1.1); | -webkit-transform: scale(1.1); | ||||
transform: scale(1.1); | transform: scale(1.1); | ||||
} | } | ||||
/* line 3, ../sass/user/_emails.scss */ | |||||
.user-mail #tabs-points-sale { | |||||
margin-bottom: 20px; | |||||
} |
@import "subscription/_index.scss" ; | @import "subscription/_index.scss" ; | ||||
@import "product/_index.scss" ; | @import "product/_index.scss" ; | ||||
@import "stats/_products.scss" ; | @import "stats/_products.scss" ; | ||||
@import "distribution/_index.scss" ; | |||||
@import "distribution/_index.scss" ; | |||||
@import "user/_emails.scss" ; |
.user-mail { | |||||
#tabs-points-sale { | |||||
margin-bottom: 20px ; | |||||
} | |||||
} | |||||