You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

81 lines
2.1KB

  1. <?php
  2. namespace producer\controllers;
  3. class SiteController extends ProducerBaseController {
  4. /**
  5. * @inheritdoc
  6. */
  7. public function behaviors() {
  8. return [];
  9. }
  10. public function actions() {
  11. return [
  12. 'error' => [
  13. 'class' => 'yii\web\ErrorAction',
  14. ],
  15. 'captcha' => [
  16. 'class' => 'yii\captcha\CaptchaAction',
  17. 'fixedVerifyCode' => YII_ENV_TEST ? 'testme' : null,
  18. ],
  19. ];
  20. }
  21. /**
  22. *
  23. * Affiche la page d'accueil des producteurs comprenant une image, une
  24. * description et la liste des points de vente.
  25. *
  26. * @return ProducerView
  27. */
  28. public function actionIndex() {
  29. $etablissement = Etablissement::findOne([
  30. 'slug' => Yii::$app->getRequest()->getQueryParam('slug_producer')
  31. ]) ;
  32. $points_vente = [] ;
  33. if($etablissement) {
  34. $points_vente = PointVente::find()
  35. ->where([
  36. 'id_etablissement' => $etablissement->id,
  37. ])
  38. ->all() ;
  39. }
  40. return $this->render('index',[
  41. 'points_vente' => $points_vente
  42. ]) ;
  43. }
  44. /**
  45. *
  46. * Affiche et traite le formulaire de contact dédié aux producteurs
  47. *
  48. * @return ProducerView
  49. */
  50. public function actionContact() {
  51. $model = new ContactForm();
  52. $producer = $this->getProducer() ;
  53. if ($model->load(Yii::$app->request->post()) && $model->validate()) {
  54. if (is_array($producer->contact) && $model->sendEmail($producer->contact[0]->email)) {
  55. Yii::$app->session->setFlash('success', 'Votre message a bien été envoyé.');
  56. }
  57. else {
  58. Yii::$app->session->setFlash('error', 'Il y a eu une erreur lors de l\'envoi de votre message.');
  59. }
  60. return $this->refresh();
  61. }
  62. else {
  63. return $this->render('contact', [
  64. 'model' => $model,
  65. ]);
  66. }
  67. }
  68. }
  69. ?>