Commit dec66dbe9a1f2ea10b3e7f4866765b497ef1cd15
1 parent
dc2e8308
feedback subject
Showing
13 changed files
with
468 additions
and
16 deletions
Show diff stats
backend/config/main.php
@@ -21,7 +21,6 @@ | @@ -21,7 +21,6 @@ | ||
21 | 'page' => 'artbox\core\controllers\PageController', | 21 | 'page' => 'artbox\core\controllers\PageController', |
22 | 'alias' => 'artbox\core\controllers\AliasController', | 22 | 'alias' => 'artbox\core\controllers\AliasController', |
23 | 'seo' => 'artbox\core\controllers\SeoController', | 23 | 'seo' => 'artbox\core\controllers\SeoController', |
24 | - 'feedback' => 'artbox\core\controllers\FeedbackController', | ||
25 | ], | 24 | ], |
26 | 'components' => [ | 25 | 'components' => [ |
27 | 'assetManager' => [ | 26 | 'assetManager' => [ |
1 | +<?php | ||
2 | + namespace backend\controllers; | ||
3 | + | ||
4 | + use artbox\core\controllers\FeedbackController as FeedbackCoreController; | ||
5 | + | ||
6 | + /** | ||
7 | + * Created by PhpStorm. | ||
8 | + * User: timur | ||
9 | + * Date: 29.11.17 | ||
10 | + * Time: 15:18 | ||
11 | + */ | ||
12 | + class FeedbackController extends FeedbackCoreController | ||
13 | + { | ||
14 | + public function getViewPath() | ||
15 | + { | ||
16 | + return \Yii::getAlias('@backend/views/feedback'); | ||
17 | + } | ||
18 | + } | ||
0 | \ No newline at end of file | 19 | \ No newline at end of file |
1 | +<?php | ||
2 | + | ||
3 | + use yii\helpers\Html; | ||
4 | + use yii\widgets\ActiveForm; | ||
5 | + | ||
6 | + /* @var $this yii\web\View */ | ||
7 | + /* @var $model artbox\core\models\Feedback */ | ||
8 | + /* @var $form yii\widgets\ActiveForm */ | ||
9 | +?> | ||
10 | + | ||
11 | +<div class="feedback-form"> | ||
12 | + | ||
13 | + <?php $form = ActiveForm::begin(); ?> | ||
14 | + | ||
15 | + <?= $form->field($model, 'name') | ||
16 | + ->textInput([ 'maxlength' => true ]) ?> | ||
17 | + | ||
18 | + <?= $form->field($model, 'email') | ||
19 | + ->textInput([ 'maxlength' => true ]) ?> | ||
20 | + | ||
21 | + <?= $form->field($model, 'phone') | ||
22 | + ->textInput([ 'maxlength' => true ]) ?> | ||
23 | + | ||
24 | + <?= $form->field($model, 'message') | ||
25 | + ->textarea([ 'rows' => 6 ]) ?> | ||
26 | + | ||
27 | + <?= $form->field($model, 'status') | ||
28 | + ->checkbox( | ||
29 | + [ | ||
30 | + 'class' => 'flat', | ||
31 | + ] | ||
32 | + ) ?> | ||
33 | + | ||
34 | + <div class="form-group"> | ||
35 | + <?= Html::submitButton( | ||
36 | + $model->isNewRecord ? Yii::t('core', 'Create') : Yii::t('core', 'Update'), | ||
37 | + [ 'class' => $model->isNewRecord ? 'btn btn-success' : 'btn btn-primary' ] | ||
38 | + ) ?> | ||
39 | + </div> | ||
40 | + | ||
41 | + <?php ActiveForm::end(); ?> | ||
42 | + | ||
43 | +</div> |
1 | +<?php | ||
2 | + | ||
3 | + use yii\helpers\Html; | ||
4 | + | ||
5 | + /* @var $this yii\web\View */ | ||
6 | + /* @var $model artbox\core\models\Feedback */ | ||
7 | + | ||
8 | + $this->title = Yii::t('core', 'Create Feedback'); | ||
9 | + $this->params[ 'breadcrumbs' ][] = [ | ||
10 | + 'label' => Yii::t('core', 'Feedbacks'), | ||
11 | + 'url' => [ 'index' ], | ||
12 | + ]; | ||
13 | + $this->params[ 'breadcrumbs' ][] = $this->title; | ||
14 | +?> | ||
15 | +<div class="feedback-create"> | ||
16 | + | ||
17 | + <h1><?= Html::encode($this->title) ?></h1> | ||
18 | + | ||
19 | + <?= $this->render( | ||
20 | + '_form', | ||
21 | + [ | ||
22 | + 'model' => $model, | ||
23 | + ] | ||
24 | + ) ?> | ||
25 | + | ||
26 | +</div> |
1 | +<?php | ||
2 | + | ||
3 | + use artbox\core\models\Feedback; | ||
4 | + use yii\data\ActiveDataProvider; | ||
5 | + use yii\helpers\Html; | ||
6 | + use yii\web\View; | ||
7 | + use yiister\gentelella\widgets\grid\GridView; | ||
8 | + use yiister\gentelella\widgets\Panel; | ||
9 | + | ||
10 | + /** | ||
11 | + * @var View $this | ||
12 | + * @var ActiveDataProvider $dataProvider | ||
13 | + */ | ||
14 | + | ||
15 | + $this->title = Yii::t('core', 'Feedbacks'); | ||
16 | + $this->params[ 'breadcrumbs' ][] = $this->title; | ||
17 | +?> | ||
18 | + | ||
19 | +<?php $panel = Panel::begin( | ||
20 | + [ | ||
21 | + 'header' => $this->title, | ||
22 | + 'options' => [ | ||
23 | + 'class' => 'x_panel feedback-index', | ||
24 | + ], | ||
25 | + ] | ||
26 | +) ?> | ||
27 | + | ||
28 | +<?= GridView::widget( | ||
29 | + [ | ||
30 | + 'dataProvider' => $dataProvider, | ||
31 | + 'rowOptions' => function (Feedback $model) { | ||
32 | + if ($model->status) { | ||
33 | + return []; | ||
34 | + } else { | ||
35 | + return [ | ||
36 | + 'class' => 'success', | ||
37 | + ]; | ||
38 | + } | ||
39 | + }, | ||
40 | + 'columns' => [ | ||
41 | + [ 'class' => 'yii\grid\SerialColumn' ], | ||
42 | + | ||
43 | + 'name', | ||
44 | + 'email', | ||
45 | + 'phone', | ||
46 | + [ | ||
47 | + 'attribute' => 'created_at', | ||
48 | + 'format' => [ | ||
49 | + 'datetime', | ||
50 | + 'php:d.m.Y H:i', | ||
51 | + ], | ||
52 | + ], | ||
53 | + [ | ||
54 | + 'class' => 'yii\grid\ActionColumn', | ||
55 | + 'buttons' => [ | ||
56 | + 'viewed' => function (string $url, Feedback $model) { | ||
57 | + if ($model->status) { | ||
58 | + return Html::tag( | ||
59 | + 'span', | ||
60 | + '', | ||
61 | + [ | ||
62 | + 'class' => 'glyphicon glyphicon-ok', | ||
63 | + ] | ||
64 | + ); | ||
65 | + } else { | ||
66 | + return Html::a( | ||
67 | + Html::tag( | ||
68 | + 'span', | ||
69 | + '', | ||
70 | + [ | ||
71 | + 'class' => 'glyphicon glyphicon-flag', | ||
72 | + ] | ||
73 | + ), | ||
74 | + $url, | ||
75 | + [ | ||
76 | + 'class' => 'viewed-toggle', | ||
77 | + ] | ||
78 | + ); | ||
79 | + } | ||
80 | + }, | ||
81 | + ], | ||
82 | + 'template' => '{viewed} {view} {update} {delete}', | ||
83 | + ], | ||
84 | + ], | ||
85 | + ] | ||
86 | +); ?> | ||
87 | + | ||
88 | +<?php $panel::end(); ?> |
1 | +<?php | ||
2 | + | ||
3 | + use yiister\gentelella\widgets\Panel; | ||
4 | + | ||
5 | + /* @var $this yii\web\View */ | ||
6 | + /* @var $model artbox\core\models\Feedback */ | ||
7 | + | ||
8 | + $this->title = Yii::t( | ||
9 | + 'core', | ||
10 | + 'Update {modelClass}: ', | ||
11 | + [ | ||
12 | + 'modelClass' => 'Feedback', | ||
13 | + ] | ||
14 | + ) . $model->name; | ||
15 | + $this->params[ 'breadcrumbs' ][] = [ | ||
16 | + 'label' => Yii::t('core', 'Feedbacks'), | ||
17 | + 'url' => [ 'index' ], | ||
18 | + ]; | ||
19 | + $this->params[ 'breadcrumbs' ][] = [ | ||
20 | + 'label' => $model->name, | ||
21 | + 'url' => [ | ||
22 | + 'view', | ||
23 | + 'id' => $model->id, | ||
24 | + ], | ||
25 | + ]; | ||
26 | + $this->params[ 'breadcrumbs' ][] = Yii::t('core', 'Update'); | ||
27 | +?> | ||
28 | + | ||
29 | +<?php $panel = Panel::begin( | ||
30 | + [ | ||
31 | + 'header' => $this->title, | ||
32 | + 'options' => [ | ||
33 | + 'class' => 'x_panel feedback-update', | ||
34 | + ], | ||
35 | + ] | ||
36 | +) ?> | ||
37 | + | ||
38 | +<?= $this->render( | ||
39 | + '_form', | ||
40 | + [ | ||
41 | + 'model' => $model, | ||
42 | + ] | ||
43 | +) ?> | ||
44 | + | ||
45 | +<?php $panel::end(); ?> |
1 | +<?php | ||
2 | + | ||
3 | + use yii\helpers\Html; | ||
4 | + use yii\widgets\DetailView; | ||
5 | + use yiister\gentelella\widgets\Panel; | ||
6 | + | ||
7 | + /* @var $this yii\web\View */ | ||
8 | + /* @var $model artbox\core\models\Feedback */ | ||
9 | + | ||
10 | + $this->title = $model->name; | ||
11 | + $this->params[ 'breadcrumbs' ][] = [ | ||
12 | + 'label' => Yii::t('core', 'Feedbacks'), | ||
13 | + 'url' => [ 'index' ], | ||
14 | + ]; | ||
15 | + $this->params[ 'breadcrumbs' ][] = $this->title; | ||
16 | +?> | ||
17 | + | ||
18 | +<?php $panel = Panel::begin( | ||
19 | + [ | ||
20 | + 'header' => $this->title, | ||
21 | + 'options' => [ | ||
22 | + 'class' => 'x_panel feedback-view', | ||
23 | + ], | ||
24 | + ] | ||
25 | +); ?> | ||
26 | + | ||
27 | +<p> | ||
28 | + <?= Html::a( | ||
29 | + Yii::t('core', 'Update'), | ||
30 | + [ | ||
31 | + 'update', | ||
32 | + 'id' => $model->id, | ||
33 | + ], | ||
34 | + [ 'class' => 'btn btn-primary' ] | ||
35 | + ) ?> | ||
36 | + <?= Html::a( | ||
37 | + Yii::t('core', 'Delete'), | ||
38 | + [ | ||
39 | + 'delete', | ||
40 | + 'id' => $model->id, | ||
41 | + ], | ||
42 | + [ | ||
43 | + 'class' => 'btn btn-danger', | ||
44 | + 'data' => [ | ||
45 | + 'confirm' => Yii::t('core', 'Are you sure you want to delete this item?'), | ||
46 | + 'method' => 'post', | ||
47 | + ], | ||
48 | + ] | ||
49 | + ) ?> | ||
50 | +</p> | ||
51 | + | ||
52 | +<?= DetailView::widget( | ||
53 | + [ | ||
54 | + 'model' => $model, | ||
55 | + 'attributes' => [ | ||
56 | + 'id', | ||
57 | + 'name', | ||
58 | + 'email:email', | ||
59 | + 'phone', | ||
60 | + 'message:ntext', | ||
61 | + 'subject', | ||
62 | + [ | ||
63 | + 'attribute' => 'created_at', | ||
64 | + 'format' => [ | ||
65 | + 'datetime', | ||
66 | + 'php:d.m.Y H:i', | ||
67 | + ], | ||
68 | + ], | ||
69 | + 'ip', | ||
70 | + 'url:url', | ||
71 | + 'status:boolean', | ||
72 | + ], | ||
73 | + ] | ||
74 | +) ?> | ||
75 | + | ||
76 | +<?php $panel::end(); ?> |
common/messages/ru/app.php
1 | +<?php | ||
2 | + | ||
3 | + namespace common\models; | ||
4 | + | ||
5 | + use artbox\core\models\Feedback as FeedbackCore; | ||
6 | + /** | ||
7 | + * Created by PhpStorm. | ||
8 | + * User: timur | ||
9 | + * Date: 29.11.17 | ||
10 | + * Time: 14:48 | ||
11 | + * | ||
12 | + * @property $subject | ||
13 | + */ | ||
14 | + class Feedback extends FeedbackCore | ||
15 | + { | ||
16 | + | ||
17 | + public function scenarios() | ||
18 | + { | ||
19 | + $scenarios = parent::scenarios(); | ||
20 | + $scenarios = array_merge( | ||
21 | + $scenarios, | ||
22 | + [ | ||
23 | + self::SCENARIO_FEEDBACK => [ | ||
24 | + 'name', | ||
25 | + 'email', | ||
26 | + 'message', | ||
27 | + 'returnUrl', | ||
28 | + 'subject' | ||
29 | + ], | ||
30 | + self::SCENARIO_CALLBACK => [ | ||
31 | + 'name', | ||
32 | + 'phone', | ||
33 | + 'message', | ||
34 | + 'returnUrl', | ||
35 | + 'subject' | ||
36 | + ], | ||
37 | + ] | ||
38 | + ); | ||
39 | + return $scenarios; | ||
40 | + } | ||
41 | + | ||
42 | + public function rules() | ||
43 | + { | ||
44 | + return [ | ||
45 | + [ | ||
46 | + [ | ||
47 | + 'name', | ||
48 | + 'email', | ||
49 | + 'phone', | ||
50 | + ], | ||
51 | + 'required', | ||
52 | + 'on' => self::SCENARIO_DEFAULT, | ||
53 | + ], | ||
54 | + [ | ||
55 | + [ | ||
56 | + 'name', | ||
57 | + 'email', | ||
58 | + ], | ||
59 | + 'required', | ||
60 | + 'on' => self::SCENARIO_FEEDBACK, | ||
61 | + ], | ||
62 | + [ | ||
63 | + [ | ||
64 | + 'phone', | ||
65 | + 'name', | ||
66 | + ], | ||
67 | + 'required', | ||
68 | + 'on' => self::SCENARIO_CALLBACK, | ||
69 | + ], | ||
70 | + [ | ||
71 | + [ 'email' ], | ||
72 | + 'email', | ||
73 | + ], | ||
74 | + // [ | ||
75 | + // [ 'phone' ], | ||
76 | + // 'match', | ||
77 | + // 'pattern' => '/^\+38\(\d{3}\)\d{3}-\d{2}-\d{2}$/', | ||
78 | + // ], | ||
79 | + [ | ||
80 | + [ | ||
81 | + 'name', | ||
82 | + 'phone', | ||
83 | + 'email', | ||
84 | + 'subject', | ||
85 | + ], | ||
86 | + 'string', | ||
87 | + 'max' => 255, | ||
88 | + ], | ||
89 | + [ | ||
90 | + [ | ||
91 | + 'message', | ||
92 | + ], | ||
93 | + 'string', | ||
94 | + ], | ||
95 | + [ | ||
96 | + [ | ||
97 | + 'status', | ||
98 | + ], | ||
99 | + 'boolean', | ||
100 | + ], | ||
101 | + [ | ||
102 | + 'returnUrl', | ||
103 | + 'safe', | ||
104 | + ], | ||
105 | + ]; | ||
106 | + } | ||
107 | + | ||
108 | + public function attributeLabels() | ||
109 | + { | ||
110 | + return array_merge( | ||
111 | + parent::attributeLabels(), | ||
112 | + [ | ||
113 | + 'subject' => \Yii::t('app', 'subject'), | ||
114 | + ] | ||
115 | + ); | ||
116 | + } | ||
117 | + | ||
118 | + } | ||
0 | \ No newline at end of file | 119 | \ No newline at end of file |
console/migrations/m171129_124331_add_subject_column_to_feedback_table.php
0 → 100644
1 | +<?php | ||
2 | + | ||
3 | +use yii\db\Migration; | ||
4 | + | ||
5 | +/** | ||
6 | + * Handles adding subject to table `feedback`. | ||
7 | + */ | ||
8 | +class m171129_124331_add_subject_column_to_feedback_table extends Migration | ||
9 | +{ | ||
10 | + /** | ||
11 | + * @inheritdoc | ||
12 | + */ | ||
13 | + public function up() | ||
14 | + { | ||
15 | + $this->addColumn('feedback', 'subject', $this->string(255)); | ||
16 | + } | ||
17 | + | ||
18 | + /** | ||
19 | + * @inheritdoc | ||
20 | + */ | ||
21 | + public function down() | ||
22 | + { | ||
23 | + $this->dropColumn('feedback', 'subject'); | ||
24 | + } | ||
25 | +} |
frontend/controllers/SiteController.php
1 | <?php | 1 | <?php |
2 | namespace frontend\controllers; | 2 | namespace frontend\controllers; |
3 | 3 | ||
4 | - use artbox\core\models\Feedback; | 4 | + use common\models\Feedback; |
5 | use common\models\Settings; | 5 | use common\models\Settings; |
6 | use Yii; | 6 | use Yii; |
7 | use yii\web\BadRequestHttpException; | 7 | use yii\web\BadRequestHttpException; |
@@ -108,23 +108,26 @@ | @@ -108,23 +108,26 @@ | ||
108 | if ($model->load(Yii::$app->request->post()) && $model->save()) { | 108 | if ($model->load(Yii::$app->request->post()) && $model->save()) { |
109 | 109 | ||
110 | $mailer = \Yii::$app->mailer->compose( | 110 | $mailer = \Yii::$app->mailer->compose( |
111 | - 'feedback', | ||
112 | - [ | ||
113 | - 'model' => $model, | ||
114 | - ] | ||
115 | - ) | ||
116 | - ->setFrom('tamerlan8.05.92@gmail.com') | 111 | + 'feedback', |
112 | + [ | ||
113 | + 'model' => $model, | ||
114 | + ] | ||
115 | + ) | ||
116 | + ->setFrom('clud.net.mails@gmail.com') | ||
117 | ->setTo( | 117 | ->setTo( |
118 | [ | 118 | [ |
119 | - 'tamerlan8.05.92@gmail.com', | ||
120 | - 'kazimirova.artweb@gmail.com', | ||
121 | - | 119 | + //'tamerlan8.05.92@gmail.com', |
120 | + 'sales@cloud.net.ua', | ||
121 | + 'info@erp.oblako.cloudbank.biz', | ||
122 | + //'kazimirova.artweb@gmail.com', | ||
123 | + | ||
122 | ] | 124 | ] |
123 | - ); | 125 | + ) |
126 | + ->setSubject($model->subject); | ||
124 | if($mailer->send()){ | 127 | if($mailer->send()){ |
125 | - | 128 | + |
126 | \Yii::$app->response->setStatusCode(200); | 129 | \Yii::$app->response->setStatusCode(200); |
127 | - | 130 | + |
128 | return [ | 131 | return [ |
129 | 'success' => true, | 132 | 'success' => true, |
130 | 'message' => 'Success message', | 133 | 'message' => 'Success message', |
@@ -137,9 +140,9 @@ | @@ -137,9 +140,9 @@ | ||
137 | ]; | 140 | ]; |
138 | } | 141 | } |
139 | else{ | 142 | else{ |
140 | - | 143 | + |
141 | \Yii::$app->response->setStatusCode(500); | 144 | \Yii::$app->response->setStatusCode(500); |
142 | - | 145 | + |
143 | return [ | 146 | return [ |
144 | 'success' => false, | 147 | 'success' => false, |
145 | 'error' => 'mail didn\'t send', | 148 | 'error' => 'mail didn\'t send', |
frontend/views/layouts/main.php
@@ -348,6 +348,14 @@ _________________________________________________________ --> | @@ -348,6 +348,14 @@ _________________________________________________________ --> | ||
348 | ] | 348 | ] |
349 | ); ?> | 349 | ); ?> |
350 | 350 | ||
351 | + <?= \yii\helpers\Html::hiddenInput( | ||
352 | + 'Feedback[subject]', | ||
353 | + 'default Val', | ||
354 | + [ | ||
355 | + 'class' => 't_subject' | ||
356 | + ] | ||
357 | + )?> | ||
358 | + | ||
351 | <?= $form->field($feedback, 'name') | 359 | <?= $form->field($feedback, 'name') |
352 | ->textInput(); ?> | 360 | ->textInput(); ?> |
353 | 361 |
frontend/web/js/script.js
@@ -117,6 +117,7 @@ $( | @@ -117,6 +117,7 @@ $( | ||
117 | e.preventDefault(); | 117 | e.preventDefault(); |
118 | var text_title = $(this).data('modalname'); | 118 | var text_title = $(this).data('modalname'); |
119 | $(".modal-header .modal-title").html(text_title); | 119 | $(".modal-header .modal-title").html(text_title); |
120 | + $(".t_subject").val(text_title); | ||
120 | } | 121 | } |
121 | ); | 122 | ); |
122 | $('.but-first') | 123 | $('.but-first') |
@@ -140,6 +141,7 @@ $( | @@ -140,6 +141,7 @@ $( | ||
140 | .on('click', function(){ | 141 | .on('click', function(){ |
141 | var modaltitle = $(this).data('modalname'); | 142 | var modaltitle = $(this).data('modalname'); |
142 | $(".modal-title").html(modaltitle); | 143 | $(".modal-title").html(modaltitle); |
144 | + $(".t_subject").val(modaltitle); | ||
143 | }); | 145 | }); |
144 | } | 146 | } |
145 | ); | 147 | ); |
146 | \ No newline at end of file | 148 | \ No newline at end of file |