@@ -21,9 +21,12 @@ class MailerService | |||
$message->send(); | |||
} | |||
public function sendAdmin(string $subject, string $view, array $params = []) | |||
public function sendAdmin(string $subject, string $view, array $params = [], string $replyTo = null) | |||
{ | |||
$message = $this->composeBase(\Yii::$app->parameterBag->get('adminEmail'), $view, $params); | |||
if($replyTo) { | |||
$message->setReplyTo($replyTo); | |||
} | |||
$this->initMessageFromSite($message, $subject); | |||
$message->send(); | |||
} |
@@ -137,6 +137,11 @@ class UserSolver extends AbstractService implements SolverInterface | |||
return null; | |||
} | |||
public function isCurrentGuest(): bool | |||
{ | |||
return \Yii::$app->user->isGuest; | |||
} | |||
/** | |||
* Retourne si l'utilisateur courant est connecté ou non. | |||
* |
@@ -0,0 +1,49 @@ | |||
<?php | |||
/** | |||
Copyright distrib (2018) | |||
contact@opendistrib.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; | |||
?> | |||
<p>Un nouvel avis vient d'être envoyé par <em><?= Html::encode($username) ?></em> :</p><br /> | |||
<div> | |||
<?= Html::encode($message) ?> | |||
</div> | |||
@@ -0,0 +1,47 @@ | |||
<?php | |||
/** | |||
Copyright distrib (2018) | |||
contact@opendistrib.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; | |||
?> | |||
Un nouvel avis vient d'être envoyé par <?= Html::encode($username) ?> : | |||
<?= Html::encode($message) ?> | |||
@@ -39,6 +39,7 @@ | |||
namespace frontend\controllers; | |||
use common\helpers\GlobalParam; | |||
use frontend\forms\OpinionForm; | |||
use frontend\forms\ProducerCodeForm; | |||
use GuzzleHttp\Client; | |||
use Yii; | |||
@@ -294,22 +295,16 @@ class SiteController extends FrontendController | |||
public function actionContact() | |||
{ | |||
$model = new ContactForm(); | |||
$messageSent = false; | |||
if ($model->load(Yii::$app->request->post()) && $model->validate()) { | |||
if ($model->sendEmail(Yii::$app->parameterBag->get('adminEmail'))) { | |||
$this->setFlash('success', 'Votre message a bien été envoyé. Nous vous répondrons dès que possible.'); | |||
} | |||
else { | |||
$this->setFlash('error', 'Il y a eu une erreur lors de l\'envoi de votre message.'); | |||
} | |||
return $this->refresh(); | |||
} | |||
else { | |||
return $this->render('contact', [ | |||
'model' => $model, | |||
]); | |||
$model->sendEmail(Yii::$app->parameterBag->get('adminEmail')); | |||
$messageSent = true; | |||
} | |||
return $this->render('contact', [ | |||
'model' => $model, | |||
'messageSent' => $messageSent, | |||
]); | |||
} | |||
/** | |||
@@ -501,6 +496,32 @@ class SiteController extends FrontendController | |||
]); | |||
} | |||
public function actionOpinion() | |||
{ | |||
$userManager = $this->getUserManager(); | |||
$userCurrent = $this->getUserCurrent(); | |||
$model = new OpinionForm(); | |||
$opinionSent = false; | |||
if ($model->load(Yii::$app->request->post()) && $model->validate()) { | |||
// @TODO : placer l'envoi de l'email dans un service dédié | |||
\Yii::$app->mailerService->sendAdmin( | |||
'Nouvel avis', | |||
'newOpinionAdmin', | |||
[ | |||
'username' => $userCurrent ? $userManager->getUsername($userCurrent) : $model->name, | |||
'message' => $model->message, | |||
], | |||
$userCurrent ? $userCurrent->email : $model->email | |||
); | |||
$opinionSent = true; | |||
} | |||
return $this->render('opinion', [ | |||
'model' => $model, | |||
'opinionSent' => $opinionSent | |||
]); | |||
} | |||
/** | |||
* Affiche les mentions légales. | |||
*/ |
@@ -0,0 +1,87 @@ | |||
<?php | |||
/** | |||
Copyright distrib (2018) | |||
contact@opendistrib.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. | |||
*/ | |||
namespace frontend\forms; | |||
use common\logic\User\User\Wrapper\UserManager; | |||
use Yii; | |||
use yii\base\Model; | |||
/** | |||
* ContactForm is the model behind the contact form. | |||
*/ | |||
class OpinionForm extends Model | |||
{ | |||
public $name; | |||
public $email; | |||
public $message; | |||
public $verifyCode; | |||
public $isTest; | |||
/** | |||
* @inheritdoc | |||
*/ | |||
public function rules() | |||
{ | |||
$userManager = UserManager::getInstance(); | |||
return [ | |||
[['message'], 'required', 'message' => 'Champs obligatoire'], | |||
[['name', 'email'], 'required', 'message' => 'Champs obligatoire', 'when' => function($model) use($userManager) { | |||
return $userManager->isCurrentGuest(); | |||
}], | |||
['email', 'email', 'message' => 'Email incorrect'], | |||
['isTest', 'string'], | |||
['verifyCode', 'captcha', 'message' => 'Veuillez recopier le code de vérification', 'when' => function($model) use($userManager) { | |||
return $model->isTest != 'isTest' && $userManager->isCurrentGuest(); | |||
}], | |||
]; | |||
} | |||
/** | |||
* @inheritdoc | |||
*/ | |||
public function attributeLabels() | |||
{ | |||
return [ | |||
'name' => 'Nom', | |||
'email' => 'Email', | |||
'message' => 'Message', | |||
'verifyCode' => 'Code de vérification', | |||
]; | |||
} | |||
} |
@@ -169,6 +169,7 @@ if ($userManager->isCurrentProducer()) { | |||
<footer id="footer"> | |||
<div class="container"> | |||
<a href="<?php echo $this->getUrlManager()->createUrl('site/service'); ?>">Fonctionnalités, services & tarifs</a> <span class="bull">•</span> | |||
<a href="<?php echo $this->getUrlManager()->createUrl('site/opinion'); ?>">Avis & suggestions</a> <span class="bull">•</span> | |||
<a href="<?php echo $this->getUrlManager()->createUrl('site/mentions'); ?>">Mentions légales</a> <span class="bull">•</span> | |||
<a href="<?php echo $this->getUrlManager()->createUrl('site/cgv'); ?>">Conditions générales de service</a> <span class="bull">•</span> | |||
<a href="<?php echo $this->getUrlManager()->createUrl('site/source-code'); ?>">Code source</a> |
@@ -45,34 +45,40 @@ use yii\captcha\Captcha; | |||
$this->setTitle('Contact'); | |||
$this->setIcon('envelope'); | |||
$this->setMeta('description', 'Pour toute remarque ou demande d\'information, nous vous proposons d\'utiliser ce formulaire de contact.') ; | |||
$this->setMeta('description', 'Pour toute demande d\'information, nous vous proposons d\'utiliser ce formulaire de contact.') ; | |||
$this->params['breadcrumbs'][] = $this->title; | |||
?> | |||
<div class="site-contact"> | |||
<div class="row"> | |||
<div class="col-lg-5"> | |||
<div class="alert alert-info"> | |||
Ce formulaire de contact vous permet de joindre le développeur de la plateforme Opendistrib. | |||
Si vous souhaitez joindre un producteur, merci de le faire directement depuis son espace producteur. | |||
</div> | |||
<div class="panel panel-default"> | |||
<div class="panel-body"> | |||
<?php $form = ActiveForm::begin(['id' => 'contact-form']); ?> | |||
<?= $form->field($model, 'name') ?> | |||
<?= $form->field($model, 'email') ?> | |||
<?= $form->field($model, 'subject') ?> | |||
<?= $form->field($model, 'body')->textArea(['rows' => 6]) ?> | |||
<?= $form->field($model, 'verifyCode')->widget(Captcha::className(), [ | |||
'template' => '<div class="row"><div class="col-lg-3">{image}</div><div class="col-lg-6">{input}</div></div>', | |||
]) ?> | |||
<?= $form->field($model, 'isTest')->hiddenInput() ?> | |||
<div class="form-group submit"> | |||
<?= Html::submitButton('Envoyer', ['class' => 'btn btn-primary', 'name' => 'contact-button']) ?> | |||
<div class="col-lg-6"> | |||
<?php if($messageSent): ?> | |||
<div class="alert alert-success text-center"> | |||
Merci pour votre message, je vous réponds dès que possible. | |||
</div> | |||
<?php else: ?> | |||
<div class="alert alert-warning"> | |||
Ce formulaire de contact vous permet de joindre le développeur de la plateforme Opendistrib. | |||
Si vous souhaitez joindre un producteur, merci de le faire directement depuis son espace producteur. | |||
</div> | |||
<div class="panel panel-default"> | |||
<div class="panel-body"> | |||
<?php $form = ActiveForm::begin(['id' => 'contact-form']); ?> | |||
<?= $form->field($model, 'name') ?> | |||
<?= $form->field($model, 'email') ?> | |||
<?= $form->field($model, 'subject') ?> | |||
<?= $form->field($model, 'body')->textArea(['rows' => 6]) ?> | |||
<?= $form->field($model, 'verifyCode')->widget(Captcha::className(), [ | |||
'template' => '<div class="row"><div class="col-lg-3">{image}</div><div class="col-lg-6">{input}</div></div>', | |||
]) ?> | |||
<?= $form->field($model, 'isTest')->hiddenInput() ?> | |||
<div class="form-group submit"> | |||
<?= Html::submitButton('Envoyer', ['class' => 'btn btn-primary', 'name' => 'contact-button']) ?> | |||
</div> | |||
<?php ActiveForm::end(); ?> | |||
</div> | |||
<?php ActiveForm::end(); ?> | |||
</div> | |||
</div> | |||
<?php endif; ?> | |||
</div> | |||
</div> | |||
@@ -0,0 +1,87 @@ | |||
<?php | |||
/** | |||
Copyright distrib (2018) | |||
contact@opendistrib.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; | |||
use yii\bootstrap\ActiveForm; | |||
use yii\captcha\Captcha; | |||
/* @var $this yii\web\View */ | |||
/* @var $form yii\bootstrap\ActiveForm */ | |||
$this->setTitle('Avis & suggestions'); | |||
$this->setIcon('star'); | |||
//$this->setMeta('description', '') ; | |||
$this->params['breadcrumbs'][] = $this->title; | |||
?> | |||
<div class="site-opinion"> | |||
<div class="row"> | |||
<div class="col-lg-6"> | |||
<?php if($opinionSent): ?> | |||
<div class="alert alert-success text-center"> | |||
Merci pour votre participation, je vous fais un retour dès que possible. | |||
</div> | |||
<?php else: ?> | |||
<div class="alert alert-warning"> | |||
Vous pouvez utiliser ce formulaire pour m'envoyer toutes vos remarques et suggestions d'amélioration. | |||
</div> | |||
<div class="panel panel-default"> | |||
<div class="panel-body"> | |||
<?php $form = ActiveForm::begin(['id' => 'opinion-form']); ?> | |||
<?php if (Yii::$app->user->isGuest): ?> | |||
<?= $form->field($model, 'name') ?> | |||
<?= $form->field($model, 'email') ?> | |||
<?php endif; ?> | |||
<?= $form->field($model, 'message')->textArea(['rows' => 6]) ?> | |||
<?php if (Yii::$app->user->isGuest): ?> | |||
<?= $form->field($model, 'verifyCode')->widget(Captcha::className(), [ | |||
'template' => '<div class="row"><div class="col-lg-3">{image}</div><div class="col-lg-6">{input}</div></div>', | |||
]) ?> | |||
<?php endif; ?> | |||
<?= $form->field($model, 'isTest')->hiddenInput() ?> | |||
<div class="form-group submit"> | |||
<?= Html::submitButton('Envoyer', ['class' => 'btn btn-primary', 'name' => 'opinion-button']) ?> | |||
</div> | |||
<?php ActiveForm::end(); ?> | |||
</div> | |||
</div> | |||
<?php endif; ?> | |||
</div> | |||
</div> | |||
</div> |
@@ -1326,7 +1326,7 @@ nav#menu-producer ul li a:hover { | |||
} | |||
/* line 1395, ../sass/screen.scss */ | |||
.site-contact .col-lg-5 { | |||
.site-contact .col-lg-6 { | |||
margin: 0px auto; | |||
float: none; | |||
} | |||
@@ -1335,12 +1335,26 @@ nav#menu-producer ul li a:hover { | |||
text-align: center; | |||
} | |||
/* line 1407, ../sass/screen.scss */ | |||
/* line 1406, ../sass/screen.scss */ | |||
.site-opinion .col-lg-6 { | |||
margin: 0px auto; | |||
float: none; | |||
} | |||
/* line 1411, ../sass/screen.scss */ | |||
.site-opinion .field-opinionform-istest { | |||
display: none; | |||
} | |||
/* line 1415, ../sass/screen.scss */ | |||
.site-opinion .form-group.submit { | |||
text-align: center; | |||
} | |||
/* line 1422, ../sass/screen.scss */ | |||
#site-prices .panel p { | |||
padding-bottom: 0px; | |||
} | |||
/* line 1414, ../sass/screen.scss */ | |||
/* line 1429, ../sass/screen.scss */ | |||
#contact-form .field-contactform-istest { | |||
display: none; | |||
} |
@@ -1392,7 +1392,7 @@ nav#menu-producer { | |||
} | |||
.site-contact { | |||
.col-lg-5 { | |||
.col-lg-6 { | |||
margin: 0px auto; | |||
float: none; | |||
} | |||
@@ -1402,6 +1402,21 @@ nav#menu-producer { | |||
} | |||
} | |||
.site-opinion { | |||
.col-lg-6 { | |||
margin: 0px auto; | |||
float: none; | |||
} | |||
.field-opinionform-istest { | |||
display: none; | |||
} | |||
.form-group.submit { | |||
text-align: center; | |||
} | |||
} | |||
#site-prices { | |||
.panel { | |||
p { |
@@ -277,6 +277,7 @@ if (!Yii::$app->user->isGuest) { | |||
<footer id="footer" class="container"> | |||
<div class="content"> | |||
<a href="<?php echo \Yii::$app->urlManagerFrontend->createAbsoluteUrl(['site/index']); ?>">Opendistrib</a> • | |||
<a href="<?php echo \Yii::$app->urlManagerFrontend->createAbsoluteUrl(['site/opinion']); ?>">Avis & suggestions</a> • | |||
<a href="<?php echo \Yii::$app->urlManagerFrontend->createAbsoluteUrl(['site/mentions']); ?>">Mentions | |||
légales</a> • | |||
<a href="<?php echo \Yii::$app->urlManagerFrontend->createAbsoluteUrl(['site/cgv']); ?>">CGS</a> • |