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 31 {
32 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 47 'enablePrettyUrl' => true,
48 48 'showScriptName' => false,
49 49 'rules' => [
  50 +// 'catalog' => 'catalog/category',
50 51 'catalog/<alias:[A-Za-z0-9_-]+>' => 'catalog/category',
51 52 'product/<alias:[A-Za-z0-9_-]+>' => 'catalog/product',
52 53 'brand' => 'catalog/brands',
... ...
frontend/controllers/CatalogController.php
... ... @@ -20,6 +20,10 @@ use yii\web\HttpException;
20 20  
21 21 class CatalogController extends \yii\web\Controller
22 22 {
  23 + public function actionSearch() {
  24 +
  25 + }
  26 +
23 27 public function actionCategory($alias)
24 28 {
25 29 $category = CategorySearch::findByAlias($alias);
... ... @@ -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 145 $count = $query->count();
131 146  
132 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 55 <div class="price_filter">
56 56 <?php foreach($brands as $brand) :?>
57 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 60 </div>
61 61 <?php endforeach?>
62 62 <!--<div class="checkbox see_all">
... ... @@ -257,24 +257,13 @@ $this-&gt;params[&#39;breadcrumbs&#39;][] = $category-&gt;name;
257 257 <?php endif?>
258 258 <hr>
259 259  
  260 + <?php if(!empty($category->description)) :?>
260 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 264 <div class="empty_padding_400"></div>
277 265 </div>
  266 + <?php endif?>
278 267 </div>
279 268 </div>
280 269 </div>
... ...
frontend/views/layouts/main.php
... ... @@ -54,9 +54,11 @@ AppAsset::register($this);
54 54 <?= Html::a(Html::img('/images/bau_logo.png',['border'=>'0']), ['/'],['class'=>'head_up_cell bau_logo'])?>
55 55 <div class="head_up_cell srch">
56 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 62 </div>
61 63 </div>
62 64 <div class="head_up_cell phn">
... ...