Commit dec66dbe9a1f2ea10b3e7f4866765b497ef1cd15

Authored by Timur Kastemirov
1 parent dc2e8308

feedback subject

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' => [
backend/controllers/FeedbackController.php 0 → 100644
  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
backend/views/feedback/_form.php 0 → 100755
  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>
backend/views/feedback/create.php 0 → 100755
  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>
backend/views/feedback/index.php 0 → 100755
  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(); ?>
backend/views/feedback/update.php 0 → 100755
  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(); ?>
backend/views/feedback/view.php 0 → 100755
  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
@@ -4,4 +4,5 @@ @@ -4,4 +4,5 @@
4 'About us' => 'О нас', 4 'About us' => 'О нас',
5 'Home' => 'Главная', 5 'Home' => 'Главная',
6 'Close' => 'Закрыть', 6 'Close' => 'Закрыть',
  7 + 'subject' => 'Тема письма',
7 ]; 8 ];
8 \ No newline at end of file 9 \ No newline at end of file
common/models/Feedback.php 0 → 100644
  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 @@ _________________________________________________________ --&gt; @@ -348,6 +348,14 @@ _________________________________________________________ --&gt;
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