Commit 9ec47b63d8c5e11f9c6158f286376c047aeabd8f

Authored by Administrator
1 parent 573db3b2

big commti

backend/views/event/_form.php
@@ -90,6 +90,10 @@ use mihaildev\elfinder\ElFinder; @@ -90,6 +90,10 @@ use mihaildev\elfinder\ElFinder;
90 90
91 <?= $form->field($model, 'status')->checkbox() ?> 91 <?= $form->field($model, 'status')->checkbox() ?>
92 92
  93 + <?= $form->field($model, 'sale')->checkbox() ?>
  94 +
  95 + <?= $form->field($model, 'percent')->textInput() ?>
  96 +
93 97
94 98
95 <div class="form-group"> 99 <div class="form-group">
common/models/Event.php
@@ -5,6 +5,8 @@ use common\behaviors\SaveImgBehavior; @@ -5,6 +5,8 @@ use common\behaviors\SaveImgBehavior;
5 use common\modules\product\models\Product; 5 use common\modules\product\models\Product;
6 use Yii; 6 use Yii;
7 use yii\behaviors\TimestampBehavior; 7 use yii\behaviors\TimestampBehavior;
  8 +use yii\helpers\ArrayHelper;
  9 +
8 /** 10 /**
9 * This is the model class for table "event". 11 * This is the model class for table "event".
10 * 12 *
@@ -89,7 +91,7 @@ class Event extends \yii\db\ActiveRecord @@ -89,7 +91,7 @@ class Event extends \yii\db\ActiveRecord
89 { 91 {
90 return [ 92 return [
91 [['body', 'seo_text'], 'string'], 93 [['body', 'seo_text'], 'string'],
92 - [['created_at', 'updated_at' ], 'integer'], 94 + [['created_at', 'updated_at','percent','sale' ], 'integer'],
93 [['name', 'alias', 'image', 'meta_title', 'description', 'h1','end_at','banner'], 'string', 'max' => 255], 95 [['name', 'alias', 'image', 'meta_title', 'description', 'h1','end_at','banner'], 'string', 'max' => 255],
94 [['name','body'], 'required'], 96 [['name','body'], 'required'],
95 [['imageUpload'], 'safe'], 97 [['imageUpload'], 'safe'],
@@ -118,6 +120,8 @@ class Event extends \yii\db\ActiveRecord @@ -118,6 +120,8 @@ class Event extends \yii\db\ActiveRecord
118 'end_at' => Yii::t('app', 'end_at'), 120 'end_at' => Yii::t('app', 'end_at'),
119 'status' => Yii::t('app', 'Статус акции'), 121 'status' => Yii::t('app', 'Статус акции'),
120 'products_file' => Yii::t('app', 'Загрузка файла'), 122 'products_file' => Yii::t('app', 'Загрузка файла'),
  123 + 'sale' => Yii::t('app', 'Распродажа'),
  124 + 'percent' => Yii::t('app', 'Процент'),
121 ]; 125 ];
122 } 126 }
123 127
@@ -139,5 +143,9 @@ class Event extends \yii\db\ActiveRecord @@ -139,5 +143,9 @@ class Event extends \yii\db\ActiveRecord
139 return $this->hasMany(Product::className(),['product_id' => 'product_id'] )->viaTable('events_to_products', ['event_id' => 'event_id']); 143 return $this->hasMany(Product::className(),['product_id' => 'product_id'] )->viaTable('events_to_products', ['event_id' => 'event_id']);
140 } 144 }
141 145
  146 + public static function getSaleEvents(){
  147 + return ArrayHelper::toArray(self::find()->select('percent')->distinct('percent')->where('sale=true AND percent IS NOT NULL')->all());
  148 + }
  149 +
142 150
143 } 151 }
frontend/controllers/EventController.php
@@ -39,6 +39,18 @@ class EventController extends Controller @@ -39,6 +39,18 @@ class EventController extends Controller
39 ]); 39 ]);
40 } 40 }
41 41
  42 + public function actionSale($percent)
  43 + {
  44 +
  45 + $model = Event::find()->where(['percent'=>$percent])->one();
  46 + $productProvider = new ActiveDataProvider([
  47 + 'query' => $model->getProducts(),
  48 + ]);
  49 + return $this->render('show', [
  50 + 'productProvider' => $productProvider,
  51 + 'model' => $model,
  52 + ]);
  53 + }
42 54
43 protected function findModel($alias) 55 protected function findModel($alias)
44 { 56 {
frontend/views/layouts/main-menu.php
@@ -5,6 +5,8 @@ use yii\helpers\Html; @@ -5,6 +5,8 @@ use yii\helpers\Html;
5 use yii\helpers\Url; 5 use yii\helpers\Url;
6 6
7 $models = Category::find()->all(); 7 $models = Category::find()->all();
  8 +
  9 +
8 ?> 10 ?>
9 11
10 12
frontend/views/layouts/main.php
@@ -11,6 +11,8 @@ use common\models\Basket; @@ -11,6 +11,8 @@ use common\models\Basket;
11 use yii\web\View; 11 use yii\web\View;
12 use yii\widgets\Breadcrumbs; 12 use yii\widgets\Breadcrumbs;
13 use frontend\widgets\Seo; 13 use frontend\widgets\Seo;
  14 +use common\models\Event;
  15 +
14 AppAsset::register($this); 16 AppAsset::register($this);
15 ?> 17 ?>
16 <?php $this->beginPage() ?> 18 <?php $this->beginPage() ?>
@@ -84,10 +86,9 @@ use frontend\widgets\Seo; @@ -84,10 +86,9 @@ use frontend\widgets\Seo;
84 <a href="#" class="new_cat_link">Распродажа</a> 86 <a href="#" class="new_cat_link">Распродажа</a>
85 <div> 87 <div>
86 <ul> 88 <ul>
87 - <li><a href="#">Скидка -50%</a></li>  
88 - <li><a href="#">Скидка -60%</a></li>  
89 - <li><a href="#">Скидка -30%</a></li>  
90 - <li><a href="#">Скидка -40%</a></li> 89 + <?php foreach(Event::getSaleEvents() as $sale):?>
  90 + <li><?php echo Html::a('Скидка -'.$sale['percent'].'%',Url::to (['event/sale', 'percent' => $sale['percent']])) ?></li>
  91 + <?php endforeach;?>
91 </ul> 92 </ul>
92 </div> 93 </div>
93 </li> 94 </li>