From dec66dbe9a1f2ea10b3e7f4866765b497ef1cd15 Mon Sep 17 00:00:00 2001 From: timur Date: Wed, 29 Nov 2017 15:55:37 +0200 Subject: [PATCH] feedback subject --- backend/config/main.php | 1 - backend/controllers/FeedbackController.php | 18 ++++++++++++++++++ backend/views/feedback/_form.php | 43 +++++++++++++++++++++++++++++++++++++++++++ backend/views/feedback/create.php | 26 ++++++++++++++++++++++++++ backend/views/feedback/index.php | 88 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ backend/views/feedback/update.php | 45 +++++++++++++++++++++++++++++++++++++++++++++ backend/views/feedback/view.php | 76 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ common/messages/ru/app.php | 1 + common/models/Feedback.php | 118 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ console/migrations/m171129_124331_add_subject_column_to_feedback_table.php | 25 +++++++++++++++++++++++++ frontend/controllers/SiteController.php | 33 ++++++++++++++++++--------------- frontend/views/layouts/main.php | 8 ++++++++ frontend/web/js/script.js | 2 ++ 13 files changed, 468 insertions(+), 16 deletions(-) create mode 100644 backend/controllers/FeedbackController.php create mode 100755 backend/views/feedback/_form.php create mode 100755 backend/views/feedback/create.php create mode 100755 backend/views/feedback/index.php create mode 100755 backend/views/feedback/update.php create mode 100755 backend/views/feedback/view.php create mode 100644 common/models/Feedback.php create mode 100644 console/migrations/m171129_124331_add_subject_column_to_feedback_table.php diff --git a/backend/config/main.php b/backend/config/main.php index 82916e0..35d222c 100755 --- a/backend/config/main.php +++ b/backend/config/main.php @@ -21,7 +21,6 @@ 'page' => 'artbox\core\controllers\PageController', 'alias' => 'artbox\core\controllers\AliasController', 'seo' => 'artbox\core\controllers\SeoController', - 'feedback' => 'artbox\core\controllers\FeedbackController', ], 'components' => [ 'assetManager' => [ diff --git a/backend/controllers/FeedbackController.php b/backend/controllers/FeedbackController.php new file mode 100644 index 0000000..c38da2d --- /dev/null +++ b/backend/controllers/FeedbackController.php @@ -0,0 +1,18 @@ + + +
+ + + + field($model, 'name') + ->textInput([ 'maxlength' => true ]) ?> + + field($model, 'email') + ->textInput([ 'maxlength' => true ]) ?> + + field($model, 'phone') + ->textInput([ 'maxlength' => true ]) ?> + + field($model, 'message') + ->textarea([ 'rows' => 6 ]) ?> + + field($model, 'status') + ->checkbox( + [ + 'class' => 'flat', + ] + ) ?> + +
+ isNewRecord ? Yii::t('core', 'Create') : Yii::t('core', 'Update'), + [ 'class' => $model->isNewRecord ? 'btn btn-success' : 'btn btn-primary' ] + ) ?> +
+ + + +
diff --git a/backend/views/feedback/create.php b/backend/views/feedback/create.php new file mode 100755 index 0000000..5453996 --- /dev/null +++ b/backend/views/feedback/create.php @@ -0,0 +1,26 @@ +title = Yii::t('core', 'Create Feedback'); + $this->params[ 'breadcrumbs' ][] = [ + 'label' => Yii::t('core', 'Feedbacks'), + 'url' => [ 'index' ], + ]; + $this->params[ 'breadcrumbs' ][] = $this->title; +?> +
+ +

title) ?>

+ + render( + '_form', + [ + 'model' => $model, + ] + ) ?> + +
diff --git a/backend/views/feedback/index.php b/backend/views/feedback/index.php new file mode 100755 index 0000000..657c549 --- /dev/null +++ b/backend/views/feedback/index.php @@ -0,0 +1,88 @@ +title = Yii::t('core', 'Feedbacks'); + $this->params[ 'breadcrumbs' ][] = $this->title; +?> + + $this->title, + 'options' => [ + 'class' => 'x_panel feedback-index', + ], + ] +) ?> + + $dataProvider, + 'rowOptions' => function (Feedback $model) { + if ($model->status) { + return []; + } else { + return [ + 'class' => 'success', + ]; + } + }, + 'columns' => [ + [ 'class' => 'yii\grid\SerialColumn' ], + + 'name', + 'email', + 'phone', + [ + 'attribute' => 'created_at', + 'format' => [ + 'datetime', + 'php:d.m.Y H:i', + ], + ], + [ + 'class' => 'yii\grid\ActionColumn', + 'buttons' => [ + 'viewed' => function (string $url, Feedback $model) { + if ($model->status) { + return Html::tag( + 'span', + '', + [ + 'class' => 'glyphicon glyphicon-ok', + ] + ); + } else { + return Html::a( + Html::tag( + 'span', + '', + [ + 'class' => 'glyphicon glyphicon-flag', + ] + ), + $url, + [ + 'class' => 'viewed-toggle', + ] + ); + } + }, + ], + 'template' => '{viewed} {view} {update} {delete}', + ], + ], + ] +); ?> + + diff --git a/backend/views/feedback/update.php b/backend/views/feedback/update.php new file mode 100755 index 0000000..dcc15dc --- /dev/null +++ b/backend/views/feedback/update.php @@ -0,0 +1,45 @@ +title = Yii::t( + 'core', + 'Update {modelClass}: ', + [ + 'modelClass' => 'Feedback', + ] + ) . $model->name; + $this->params[ 'breadcrumbs' ][] = [ + 'label' => Yii::t('core', 'Feedbacks'), + 'url' => [ 'index' ], + ]; + $this->params[ 'breadcrumbs' ][] = [ + 'label' => $model->name, + 'url' => [ + 'view', + 'id' => $model->id, + ], + ]; + $this->params[ 'breadcrumbs' ][] = Yii::t('core', 'Update'); +?> + + $this->title, + 'options' => [ + 'class' => 'x_panel feedback-update', + ], + ] +) ?> + +render( + '_form', + [ + 'model' => $model, + ] +) ?> + + diff --git a/backend/views/feedback/view.php b/backend/views/feedback/view.php new file mode 100755 index 0000000..188173d --- /dev/null +++ b/backend/views/feedback/view.php @@ -0,0 +1,76 @@ +title = $model->name; + $this->params[ 'breadcrumbs' ][] = [ + 'label' => Yii::t('core', 'Feedbacks'), + 'url' => [ 'index' ], + ]; + $this->params[ 'breadcrumbs' ][] = $this->title; +?> + + $this->title, + 'options' => [ + 'class' => 'x_panel feedback-view', + ], + ] +); ?> + +

+ $model->id, + ], + [ 'class' => 'btn btn-primary' ] + ) ?> + $model->id, + ], + [ + 'class' => 'btn btn-danger', + 'data' => [ + 'confirm' => Yii::t('core', 'Are you sure you want to delete this item?'), + 'method' => 'post', + ], + ] + ) ?> +

+ + $model, + 'attributes' => [ + 'id', + 'name', + 'email:email', + 'phone', + 'message:ntext', + 'subject', + [ + 'attribute' => 'created_at', + 'format' => [ + 'datetime', + 'php:d.m.Y H:i', + ], + ], + 'ip', + 'url:url', + 'status:boolean', + ], + ] +) ?> + + diff --git a/common/messages/ru/app.php b/common/messages/ru/app.php index e81bb96..8bb67b9 100755 --- a/common/messages/ru/app.php +++ b/common/messages/ru/app.php @@ -4,4 +4,5 @@ 'About us' => 'О нас', 'Home' => 'Главная', 'Close' => 'Закрыть', + 'subject' => 'Тема письма', ]; \ No newline at end of file diff --git a/common/models/Feedback.php b/common/models/Feedback.php new file mode 100644 index 0000000..075dc69 --- /dev/null +++ b/common/models/Feedback.php @@ -0,0 +1,118 @@ + [ + 'name', + 'email', + 'message', + 'returnUrl', + 'subject' + ], + self::SCENARIO_CALLBACK => [ + 'name', + 'phone', + 'message', + 'returnUrl', + 'subject' + ], + ] + ); + return $scenarios; + } + + public function rules() + { + return [ + [ + [ + 'name', + 'email', + 'phone', + ], + 'required', + 'on' => self::SCENARIO_DEFAULT, + ], + [ + [ + 'name', + 'email', + ], + 'required', + 'on' => self::SCENARIO_FEEDBACK, + ], + [ + [ + 'phone', + 'name', + ], + 'required', + 'on' => self::SCENARIO_CALLBACK, + ], + [ + [ 'email' ], + 'email', + ], + // [ + // [ 'phone' ], + // 'match', + // 'pattern' => '/^\+38\(\d{3}\)\d{3}-\d{2}-\d{2}$/', + // ], + [ + [ + 'name', + 'phone', + 'email', + 'subject', + ], + 'string', + 'max' => 255, + ], + [ + [ + 'message', + ], + 'string', + ], + [ + [ + 'status', + ], + 'boolean', + ], + [ + 'returnUrl', + 'safe', + ], + ]; + } + + public function attributeLabels() + { + return array_merge( + parent::attributeLabels(), + [ + 'subject' => \Yii::t('app', 'subject'), + ] + ); + } + + } \ No newline at end of file diff --git a/console/migrations/m171129_124331_add_subject_column_to_feedback_table.php b/console/migrations/m171129_124331_add_subject_column_to_feedback_table.php new file mode 100644 index 0000000..f195c9d --- /dev/null +++ b/console/migrations/m171129_124331_add_subject_column_to_feedback_table.php @@ -0,0 +1,25 @@ +addColumn('feedback', 'subject', $this->string(255)); + } + + /** + * @inheritdoc + */ + public function down() + { + $this->dropColumn('feedback', 'subject'); + } +} diff --git a/frontend/controllers/SiteController.php b/frontend/controllers/SiteController.php index 9ce4d5f..f5ef515 100755 --- a/frontend/controllers/SiteController.php +++ b/frontend/controllers/SiteController.php @@ -1,7 +1,7 @@ load(Yii::$app->request->post()) && $model->save()) { $mailer = \Yii::$app->mailer->compose( - 'feedback', - [ - 'model' => $model, - ] - ) - ->setFrom('tamerlan8.05.92@gmail.com') + 'feedback', + [ + 'model' => $model, + ] + ) + ->setFrom('clud.net.mails@gmail.com') ->setTo( [ - 'tamerlan8.05.92@gmail.com', - 'kazimirova.artweb@gmail.com', - + //'tamerlan8.05.92@gmail.com', + 'sales@cloud.net.ua', + 'info@erp.oblako.cloudbank.biz', + //'kazimirova.artweb@gmail.com', + ] - ); + ) + ->setSubject($model->subject); if($mailer->send()){ - + \Yii::$app->response->setStatusCode(200); - + return [ 'success' => true, 'message' => 'Success message', @@ -137,9 +140,9 @@ ]; } else{ - + \Yii::$app->response->setStatusCode(500); - + return [ 'success' => false, 'error' => 'mail didn\'t send', diff --git a/frontend/views/layouts/main.php b/frontend/views/layouts/main.php index d2a9ed7..fd600a3 100755 --- a/frontend/views/layouts/main.php +++ b/frontend/views/layouts/main.php @@ -348,6 +348,14 @@ _________________________________________________________ --> ] ); ?> + 't_subject' + ] + )?> + field($feedback, 'name') ->textInput(); ?> diff --git a/frontend/web/js/script.js b/frontend/web/js/script.js index 9dc8a35..01c6463 100755 --- a/frontend/web/js/script.js +++ b/frontend/web/js/script.js @@ -117,6 +117,7 @@ $( e.preventDefault(); var text_title = $(this).data('modalname'); $(".modal-header .modal-title").html(text_title); + $(".t_subject").val(text_title); } ); $('.but-first') @@ -140,6 +141,7 @@ $( .on('click', function(){ var modaltitle = $(this).data('modalname'); $(".modal-title").html(modaltitle); + $(".t_subject").val(modaltitle); }); } ); \ No newline at end of file -- libgit2 0.21.4