Commit 020c69f520f564ace05d8a61eb7e22ce991eaaae
1 parent
0cc2a675
Base-product#5 functional
Showing
5 changed files
with
37 additions
and
19 deletions
Show diff stats
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->params['breadcrumbs'][] = $category->name; | @@ -55,8 +55,8 @@ $this->params['breadcrumbs'][] = $category->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->params['breadcrumbs'][] = $category->name; | @@ -257,24 +257,13 @@ $this->params['breadcrumbs'][] = $category->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"> |