Commit 020c69f520f564ace05d8a61eb7e22ce991eaaae

Authored by Karnovsky A
1 parent 0cc2a675

Base-product#5 functional

common/modules/product/models/BrandQuery.php
@@ -31,4 +31,15 @@ class BrandQuery extends \yii\db\ActiveQuery @@ -31,4 +31,15 @@ class BrandQuery extends \yii\db\ActiveQuery
31 { 31 {
32 return parent::one($db); 32 return parent::one($db);
33 } 33 }
  34 +
  35 + /**
  36 + * Select brand by alias
  37 + * @param $slug
  38 + * @return $this
  39 + */
  40 + public function byAlias($alias)
  41 + {
  42 + $this->andFilterWhere(['alias' => $alias]);
  43 + return $this;
  44 + }
34 } 45 }
frontend/config/main.php
@@ -47,6 +47,7 @@ return [ @@ -47,6 +47,7 @@ return [
47 'enablePrettyUrl' => true, 47 'enablePrettyUrl' => true,
48 'showScriptName' => false, 48 'showScriptName' => false,
49 'rules' => [ 49 'rules' => [
  50 +// 'catalog' => 'catalog/category',
50 'catalog/<alias:[A-Za-z0-9_-]+>' => 'catalog/category', 51 'catalog/<alias:[A-Za-z0-9_-]+>' => 'catalog/category',
51 'product/<alias:[A-Za-z0-9_-]+>' => 'catalog/product', 52 'product/<alias:[A-Za-z0-9_-]+>' => 'catalog/product',
52 'brand' => 'catalog/brands', 53 'brand' => 'catalog/brands',
frontend/controllers/CatalogController.php
@@ -20,6 +20,10 @@ use yii\web\HttpException; @@ -20,6 +20,10 @@ use yii\web\HttpException;
20 20
21 class CatalogController extends \yii\web\Controller 21 class CatalogController extends \yii\web\Controller
22 { 22 {
  23 + public function actionSearch() {
  24 +
  25 + }
  26 +
23 public function actionCategory($alias) 27 public function actionCategory($alias)
24 { 28 {
25 $category = CategorySearch::findByAlias($alias); 29 $category = CategorySearch::findByAlias($alias);
@@ -127,6 +131,17 @@ class CatalogController extends \yii\web\Controller @@ -127,6 +131,17 @@ class CatalogController extends \yii\web\Controller
127 } 131 }
128 } 132 }
129 133
  134 + if (($_brands = \Yii::$app->request->get('brand')) != false && is_array($_brands) && count($_brands) > 0) {
  135 + $_brands = Brand::find()->where(['in', 'alias', $_brands])->all();
  136 + $bids = [];
  137 + foreach ($_brands as $brand) {
  138 + $bids[] = $brand->brand_id;
  139 + }
  140 + if (count($bids)) {
  141 + $query->andWhere([Product::tableName() .'.brand_id' => $bids]);
  142 + }
  143 + }
  144 +
130 $count = $query->count(); 145 $count = $query->count();
131 146
132 $pages = new Pagination(['totalCount' => $count, 'pageSize' => $per_page]); 147 $pages = new Pagination(['totalCount' => $count, 'pageSize' => $per_page]);
frontend/views/catalog/products.php
@@ -55,8 +55,8 @@ $this-&gt;params[&#39;breadcrumbs&#39;][] = $category-&gt;name; @@ -55,8 +55,8 @@ $this-&gt;params[&#39;breadcrumbs&#39;][] = $category-&gt;name;
55 <div class="price_filter"> 55 <div class="price_filter">
56 <?php foreach($brands as $brand) :?> 56 <?php foreach($brands as $brand) :?>
57 <div class="checkbox"> 57 <div class="checkbox">
58 - <label><input type="checkbox" name="think" value="ruuki" /></label>  
59 - <a href="<?= \yii\helpers\Url::to(['catalog/brand', 'alias' => $brand->alias])?>"><?= $brand->name?> (<?= $brand->getProducts()->count()?>)</a> 58 + <label><input type="checkbox" name="brand[]" value="<?= $brand->alias?>"<?= isset($_GET['brand']) && in_array($brand->alias, $_GET['brand']) ? ' checked' : ''?> /></label>
  59 + <a href="#<?php /*= \yii\helpers\Url::to(['brand', 'alias' => $brand->alias])*/?>"><?= $brand->name?><!-- (<?php /*= $brand->getProducts()->count()*/?>)--></a>
60 </div> 60 </div>
61 <?php endforeach?> 61 <?php endforeach?>
62 <!--<div class="checkbox see_all"> 62 <!--<div class="checkbox see_all">
@@ -257,24 +257,13 @@ $this-&gt;params[&#39;breadcrumbs&#39;][] = $category-&gt;name; @@ -257,24 +257,13 @@ $this-&gt;params[&#39;breadcrumbs&#39;][] = $category-&gt;name;
257 <?php endif?> 257 <?php endif?>
258 <hr> 258 <hr>
259 259
  260 + <?php if(!empty($category->description)) :?>
260 <div class="description"> 261 <div class="description">
261 - <h2>Преимущества металлочерепицы:</h2>  
262 - <p>  
263 - На рынке стройматериалов представлено множество кровельных покрытий, от привычного всем рубероида до современной гибкой черепицы на основе стекловолоконных композитов. Все они имеют свои преимущества и сферы применения. Но металлочерепица на протяжении многих лет удерживает лидерские позиции по уровню продаж, и этzо объясняется несколькими причинами:  
264 - </p>  
265 - <h4>Кровля из металлочерепицы</h4>  
266 - <p class="margin_bottom_20">  
267 - <span class="bold">1. Малый вес.</span> Эта характеристика дает ощутимую финансовую выгоду. Вам не придется усиливать стропильные конструкции, значит, удастся сэкономить на пиломатериалах. Легкость металлочерепицы для кровли упрощает транспортировку и монтаж, позволяет отказаться от дорогостоящих услуг подъемной и грузовой спецтехники.  
268 - </p>  
269 - <p class="margin_bottom_20">  
270 - <span class="bold">2. Прочность.</span> В отличие от рулонных и гибких материалов, металлочерепица устойчива к механическим повреждениям. Ее крайне сложно поцарапать и практически невозможно сломать. Высокие технические характеристики говорят и о хорошей несущей способности материала.  
271 - </p>  
272 - <p class="margin_bottom_20">  
273 - <span class="bold">3. Эстетичность.</span> Металлочерепица придает крыше законченный, аккуратный вид. Дом выглядит просто роскошно. Подбирая оригинальные цветовые сочетания, дизайнерам удается с помощью  
274 - </p> 262 + <?= $category->description?>
275 263
276 <div class="empty_padding_400"></div> 264 <div class="empty_padding_400"></div>
277 </div> 265 </div>
  266 + <?php endif?>
278 </div> 267 </div>
279 </div> 268 </div>
280 </div> 269 </div>
frontend/views/layouts/main.php
@@ -54,9 +54,11 @@ AppAsset::register($this); @@ -54,9 +54,11 @@ AppAsset::register($this);
54 <?= Html::a(Html::img('/images/bau_logo.png',['border'=>'0']), ['/'],['class'=>'head_up_cell bau_logo'])?> 54 <?= Html::a(Html::img('/images/bau_logo.png',['border'=>'0']), ['/'],['class'=>'head_up_cell bau_logo'])?>
55 <div class="head_up_cell srch"> 55 <div class="head_up_cell srch">
56 <div class="search_head"> 56 <div class="search_head">
57 - <div class="srch_head_desc">Введите запрос <a href="#">Шифер</a> <a href="#">Рубероид</a></div>  
58 - <input type="text" name="search_head">  
59 - <button><div class="search_img"></div></button> 57 + <form action="<?= Url::to('catalog')?>">
  58 + <div class="srch_head_desc">Введите запрос <a href="#" onclick="$('#search-head').val('Шифер');return false;">Шифер</a> <a href="#" onclick="$('#search-head').val('Рубероид');return false;">Рубероид</a></div>
  59 + <input type="text" name="word" id="search-head">
  60 + <button><div class="search_img"></div></button>
  61 + </form>
60 </div> 62 </div>
61 </div> 63 </div>
62 <div class="head_up_cell phn"> 64 <div class="head_up_cell phn">