Blame view

frontend/controllers/SiteController.php 5.16 KB
a0e8d4e0   Alexey Boroda   first commit
1
2
  <?php
      namespace frontend\controllers;
464ede30   Alexey Boroda   -Global comments
3
      
a0e8d4e0   Alexey Boroda   first commit
4
      use artbox\core\models\Feedback;
fa19d5d8   Eugeny Galkovskiy   Страница Цены
5
      use artbox\core\models\Page;
464ede30   Alexey Boroda   -Global comments
6
      use artbox\webcomment\models\CommentModel;
a0e8d4e0   Alexey Boroda   first commit
7
8
9
10
11
12
13
      use common\models\Settings;
      use Yii;
      use yii\filters\VerbFilter;
      use yii\swiftmailer\Mailer;
      use yii\web\BadRequestHttpException;
      use yii\web\Controller;
      use yii\web\Response;
464ede30   Alexey Boroda   -Global comments
14
      
a0e8d4e0   Alexey Boroda   first commit
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
      /**
       * Site controller
       */
      class SiteController extends Controller
      {
          /**
           * @inheritdoc
           */
          public function actions()
          {
              return [
                  'error' => [
                      'class' => 'yii\web\ErrorAction',
                  ],
              ];
          }
464ede30   Alexey Boroda   -Global comments
31
          
a0e8d4e0   Alexey Boroda   first commit
32
33
34
35
36
37
38
39
40
41
42
43
44
45
          /**
           * @inheritdoc
           */
          public function behaviors()
          {
              return [
                  'verbs' => [
                      'class'   => VerbFilter::className(),
                      'actions' => [
                          'feedback' => [ 'post' ],
                      ],
                  ],
              ];
          }
464ede30   Alexey Boroda   -Global comments
46
          
a0e8d4e0   Alexey Boroda   first commit
47
48
49
50
51
52
53
54
55
          /**
           * Displays homepage.
           *
           * @return mixed
           */
          public function actionIndex()
          {
              return $this->render('index');
          }
464ede30   Alexey Boroda   -Global comments
56
          
a0e8d4e0   Alexey Boroda   first commit
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
          /**
           * Displays contact page.
           *
           * @return mixed
           */
          public function actionContact()
          {
              $contact = new Feedback();
              return $this->render(
                  'contact',
                  [
                      'contact' => $contact,
                  ]
              );
          }
464ede30   Alexey Boroda   -Global comments
72
          
a0e8d4e0   Alexey Boroda   first commit
73
74
75
76
77
78
79
80
81
          /**
           * Displays about page.
           *
           * @return mixed
           */
          public function actionAbout()
          {
              return $this->render('about');
          }
464ede30   Alexey Boroda   -Global comments
82
          
a0e8d4e0   Alexey Boroda   first commit
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
          /**
           * Action to view robots.txt file dinamycli
           *
           * @return string
           */
          public function actionRobots()
          {
              $response = \Yii::$app->response;
              /**
               * @var Settings $settings
               */
              $settings = Settings::find()
                                  ->one();
              $temp = tmpfile();
              fwrite($temp, $settings->robots);
              $meta = stream_get_meta_data($temp);
              $response->format = $response::FORMAT_RAW;
              $response->headers->set('Content-Type', 'text/plain');
              return $this->renderFile($meta[ 'uri' ]);
          }
464ede30   Alexey Boroda   -Global comments
103
          
a0e8d4e0   Alexey Boroda   first commit
104
105
106
          public function actionFeedback()
          {
              Yii::$app->response->format = Response::FORMAT_JSON;
464ede30   Alexey Boroda   -Global comments
107
              
a0e8d4e0   Alexey Boroda   first commit
108
109
110
111
112
              /**
               * @var Mailer $mailer
               */
              $mailer = \Yii::$app->get('smtpmailer');
              $settings = Settings::getInstance();
464ede30   Alexey Boroda   -Global comments
113
              
a0e8d4e0   Alexey Boroda   first commit
114
115
116
117
118
              if (empty(Yii::$app->request->post())) {
                  throw new BadRequestHttpException();
              } else {
                  $model = new Feedback();
                  if ($model->load(Yii::$app->request->post()) && $model->save()) {
464ede30   Alexey Boroda   -Global comments
119
                      
a0e8d4e0   Alexey Boroda   first commit
120
121
122
123
124
125
126
127
128
129
                      $mailer->compose(
                          'feedback',
                          [
                              'model' => $model,
                          ]
                      )
                             ->setFrom('artbox@domain.com')
                             ->setTo($settings->email)
                             ->setSubject(\Yii::t('app', 'Feedback'))
                             ->send();
464ede30   Alexey Boroda   -Global comments
130
                      
a0e8d4e0   Alexey Boroda   first commit
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
                      return [
                          'success' => true,
                          'message' => 'Success message',
                          'alert'   => '<div class="alert alert-success">
              <h3>Success</h3>
              <p>
                Success text
              </p>
            </div>',
                      ];
                  } else {
                      return [
                          'success' => false,
                          'error'   => $model->errors,
                      ];
                  }
              }
          }
464ede30   Alexey Boroda   -Global comments
149
150
151
          
          public function actionAppment()
          {
6afa0829   Eugeny Galkovskiy   Запись на приём
152
153
              return $this->render('appment');
          }
464ede30   Alexey Boroda   -Global comments
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
          
          public function actionPrice()
          {
              $page_stom = Page::find()
                               ->with('lang')
                               ->where([ 'id' => 3 ])
                               ->one();
              $page_cosm = Page::find()
                               ->with('lang')
                               ->where([ 'id' => 4 ])
                               ->one();
              
              return $this->render(
                  'price',
                  [
                      'page_stom' => $page_stom,
                      'page_cosm' => $page_cosm,
                  ]
              );
          }
          
          public function actionComments()
          {
              $model = new CommentModel(
                  [
                      'id' => 1,
                  ]
              );
              
              $this->view->params[ 'breadcrumbs' ][] = \Yii::t('app', 'Комментарии');
              
              return $this->render(
                  'comments',
                  [
                      'model' => $model,
                  ]
              );
d5c6be95   Eugeny Galkovskiy   Страница Цены
191
          }
a0e8d4e0   Alexey Boroda   first commit
192
      }