Commit d45d568200be7edd367fc2ae405c322e81453e78
1 parent
f6cc6c5f
Catalog
Showing
8 changed files
with
1015 additions
and
128 deletions
Show diff stats
1 | +<?php | ||
2 | + namespace frontend\controllers; | ||
3 | + | ||
4 | + use artbox\catalog\models\Category; | ||
5 | + use artbox\core\components\SeoComponent; | ||
6 | + use artbox\core\models\Page; | ||
7 | + use yii\data\ActiveDataProvider; | ||
8 | + use yii\db\ActiveQuery; | ||
9 | + use yii\web\Controller; | ||
10 | + use yii\web\NotFoundHttpException; | ||
11 | + use Yii; | ||
12 | + | ||
13 | + /** | ||
14 | + * Class CategoryController | ||
15 | + * | ||
16 | + * @package frontend\controllers | ||
17 | + */ | ||
18 | + class CategoryController extends Controller | ||
19 | + { | ||
20 | + /** | ||
21 | + * Show category by ID | ||
22 | + * | ||
23 | + * @param int $id | ||
24 | + * | ||
25 | + * @param string $filter | ||
26 | + * | ||
27 | + * @return string | ||
28 | + */ | ||
29 | + public function actionView($id, $filter = '') | ||
30 | + { | ||
31 | + $model = $this->findModel($id); | ||
32 | + /** | ||
33 | + * @var SeoComponent $seo | ||
34 | + */ | ||
35 | + $seo = Yii::$app->get('seo'); | ||
36 | + $seo->setModel($model->lang); | ||
37 | + $filterHelper = \Yii::$app->get('filter'); | ||
38 | + $filterHelper->setFilter($filter); | ||
39 | + $query = $filterHelper->buildQuery(); | ||
40 | + $dataProvider = new ActiveDataProvider( | ||
41 | + [ | ||
42 | + 'query' => $query, | ||
43 | + ] | ||
44 | + ); | ||
45 | + | ||
46 | + return $this->render( | ||
47 | + 'view', | ||
48 | + [ | ||
49 | + 'model' => $model, | ||
50 | + 'dataProvider' => $dataProvider, | ||
51 | + ] | ||
52 | + ); | ||
53 | + } | ||
54 | + | ||
55 | + /** | ||
56 | + * Find category by ID | ||
57 | + * | ||
58 | + * @param $id | ||
59 | + * | ||
60 | + * @return \artbox\core\models\Page | ||
61 | + * @throws \yii\web\NotFoundHttpException | ||
62 | + */ | ||
63 | + protected function findModel($id) | ||
64 | + { | ||
65 | + /** | ||
66 | + * @var SeoComponent $seo | ||
67 | + */ | ||
68 | + $seo = Yii::$app->get('seo'); | ||
69 | + /** | ||
70 | + * @var Page $model | ||
71 | + */ | ||
72 | + $model = Category::findWithFilters($id) | ||
73 | + ->with('lang') | ||
74 | + ->with('categories.lang') | ||
75 | + ->with( | ||
76 | + [ | ||
77 | + 'parent' => function ($query) { | ||
78 | + /** | ||
79 | + * @var ActiveQuery $query | ||
80 | + */ | ||
81 | + $query->with('lang', 'categories.lang'); | ||
82 | + }, | ||
83 | + ] | ||
84 | + ) | ||
85 | + ->one(); | ||
86 | + if (!empty( $model )) { | ||
87 | + if ($model->lang->alias_id !== $seo->aliasId) { | ||
88 | + throw new NotFoundHttpException('Wrong language'); | ||
89 | + } | ||
90 | + return $model; | ||
91 | + } else { | ||
92 | + throw new NotFoundHttpException('Model not found'); | ||
93 | + } | ||
94 | + } | ||
95 | + } | ||
0 | \ No newline at end of file | 96 | \ No newline at end of file |
frontend/controllers/SiteController.php
@@ -74,6 +74,18 @@ | @@ -74,6 +74,18 @@ | ||
74 | ->count(); | 74 | ->count(); |
75 | $brandCount = Brand::find() | 75 | $brandCount = Brand::find() |
76 | ->count(); | 76 | ->count(); |
77 | + $brands = Brand::find() | ||
78 | + ->where([ 'status' => true ]) | ||
79 | + ->andWhere( | ||
80 | + [ | ||
81 | + 'not', | ||
82 | + [ 'image_id' => null ], | ||
83 | + ] | ||
84 | + ) | ||
85 | + ->orderBy([ 'sort' => SORT_ASC ]) | ||
86 | + ->limit(6) | ||
87 | + ->with('image') | ||
88 | + ->all(); | ||
77 | return $this->render( | 89 | return $this->render( |
78 | 'index', | 90 | 'index', |
79 | [ | 91 | [ |
@@ -83,6 +95,7 @@ | @@ -83,6 +95,7 @@ | ||
83 | 'saleItems' => $saleItems, | 95 | 'saleItems' => $saleItems, |
84 | 'productCount' => $productCount, | 96 | 'productCount' => $productCount, |
85 | 'brandCount' => $brandCount, | 97 | 'brandCount' => $brandCount, |
98 | + 'brands' => $brands, | ||
86 | ] | 99 | ] |
87 | ); | 100 | ); |
88 | } | 101 | } |
1 | +<?php | ||
2 | + use artbox\catalog\helpers\FilterHelper; | ||
3 | + use artbox\catalog\models\Brand; | ||
4 | + use artbox\catalog\models\Category; | ||
5 | + use artbox\catalog\models\Product; | ||
6 | + use artbox\core\components\SeoComponent; | ||
7 | + use yii\bootstrap\Html; | ||
8 | + use yii\web\View; | ||
9 | + | ||
10 | + /** | ||
11 | + * @var View $this | ||
12 | + * @var Category $model | ||
13 | + * @var SeoComponent $seo | ||
14 | + * @var FilterHelper $filterHelper | ||
15 | + */ | ||
16 | + $seo = \Yii::$app->get('seo'); | ||
17 | + $filterHelper = \Yii::$app->get('filter'); | ||
18 | + $this->params[ 'breadcrumbs' ][] = $seo->title; | ||
19 | +?> | ||
20 | +<div id="content"> | ||
21 | + <div class="container"> | ||
22 | + | ||
23 | + <div class="row"> | ||
24 | + | ||
25 | + | ||
26 | + <!-- *** LEFT COLUMN *** | ||
27 | + _________________________________________________________ --> | ||
28 | + | ||
29 | + <div class="col-sm-3"> | ||
30 | + | ||
31 | + <!-- *** MENUS AND FILTERS *** | ||
32 | +_________________________________________________________ --> | ||
33 | + | ||
34 | + <div class="panel panel-default sidebar-menu"> | ||
35 | + <?php | ||
36 | + if (!empty( $model->parent_id ) || !empty( $model->categories )) { | ||
37 | + ?> | ||
38 | + <div class="panel-body"> | ||
39 | + <ul class="nav nav-pills nav-stacked category-menu"> | ||
40 | + <li> | ||
41 | + <?php | ||
42 | + if (!empty( $model->parent_id )) { | ||
43 | + echo Html::a( | ||
44 | + $model->parent->lang->title, | ||
45 | + [ | ||
46 | + 'view', | ||
47 | + 'id' => $model->parent_id, | ||
48 | + ] | ||
49 | + ); | ||
50 | + } else { | ||
51 | + echo Html::a($model->lang->title, '#'); | ||
52 | + } | ||
53 | + ?> | ||
54 | + <ul> | ||
55 | + <?php | ||
56 | + if (!empty( $model->parent_id )) { | ||
57 | + foreach ($model->parent->categories as $childCategory) { | ||
58 | + echo Html::tag( | ||
59 | + 'li', | ||
60 | + Html::a( | ||
61 | + $childCategory->lang->title, | ||
62 | + ( $childCategory->id === $model->id ) ? '#' : [ | ||
63 | + 'view', | ||
64 | + 'id' => $childCategory->id, | ||
65 | + ] | ||
66 | + ), | ||
67 | + [ | ||
68 | + 'class' => ( $childCategory->id === $model->id ) ? 'active' : '', | ||
69 | + ] | ||
70 | + ); | ||
71 | + } | ||
72 | + } else { | ||
73 | + foreach ($model->categories as $childCategory) { | ||
74 | + echo Html::tag( | ||
75 | + 'li', | ||
76 | + Html::a( | ||
77 | + $childCategory->lang->title, | ||
78 | + [ | ||
79 | + 'view', | ||
80 | + 'id' => $childCategory->id, | ||
81 | + ] | ||
82 | + ) | ||
83 | + ); | ||
84 | + } | ||
85 | + } | ||
86 | + ?> | ||
87 | + </ul> | ||
88 | + </li> | ||
89 | + </ul> | ||
90 | + </div> | ||
91 | + <?php | ||
92 | + } | ||
93 | + ?> | ||
94 | + | ||
95 | + <div class="panel-heading"> | ||
96 | + <h3 class="panel-title"><?php echo \Yii::t('app', 'Бренды'); ?></h3> | ||
97 | + </div> | ||
98 | + | ||
99 | + <div class="panel-body"> | ||
100 | + <div class="form-group"> | ||
101 | + <?php | ||
102 | + foreach ($filterHelper->getBrands($model) as $brand) { | ||
103 | + /** | ||
104 | + * @var Product $product | ||
105 | + * @var Brand $brand | ||
106 | + */ | ||
107 | + echo Html::tag( | ||
108 | + 'div', | ||
109 | + Html::a( | ||
110 | + $brand->lang->title, | ||
111 | + [ | ||
112 | + '/category/view', | ||
113 | + 'id' => $model->id, | ||
114 | + 'filter' => $filterHelper->buildLink($brand), | ||
115 | + ] | ||
116 | + ) | ||
117 | + ); | ||
118 | + } | ||
119 | + ?> | ||
120 | + </div> | ||
121 | + </div> | ||
122 | + </div> | ||
123 | + | ||
124 | + <?php | ||
125 | + foreach ($model->productOptionGroupCompls as $group) { | ||
126 | + ?> | ||
127 | + <div class="panel panel-default sidebar-menu"> | ||
128 | + <div class="panel-heading"> | ||
129 | + <h3><?php echo $group->lang->title; ?></h3> | ||
130 | + </div> | ||
131 | + <div class="panel-body"> | ||
132 | + <div class="form-group"> | ||
133 | + <?php | ||
134 | + foreach ($group->options as $option) { | ||
135 | + /** | ||
136 | + * @var Product $product | ||
137 | + */ | ||
138 | + echo Html::tag( | ||
139 | + 'div', | ||
140 | + Html::a( | ||
141 | + $option->lang->value, | ||
142 | + [ | ||
143 | + '/category/view', | ||
144 | + 'id' => $model->id, | ||
145 | + 'filter' => $filterHelper->buildLink($option), | ||
146 | + ] | ||
147 | + ) | ||
148 | + ); | ||
149 | + } | ||
150 | + ?> | ||
151 | + </div> | ||
152 | + </div> | ||
153 | + </div> | ||
154 | + <?php | ||
155 | + } | ||
156 | + foreach ($model->productOptionGroupExcls as $group) { | ||
157 | + ?> | ||
158 | + <div class="panel panel-default sidebar-menu"> | ||
159 | + <div class="panel-heading"> | ||
160 | + <h3><?php echo $group->lang->title; ?></h3> | ||
161 | + </div> | ||
162 | + <div class="panel-body"> | ||
163 | + <div class="form-group"> | ||
164 | + <?php | ||
165 | + foreach ($group->options as $option) { | ||
166 | + /** | ||
167 | + * @var Product $product | ||
168 | + */ | ||
169 | + echo Html::tag( | ||
170 | + 'div', | ||
171 | + Html::a( | ||
172 | + $option->lang->value, | ||
173 | + [ | ||
174 | + '/category/view', | ||
175 | + 'id' => $model->id, | ||
176 | + 'filter' => $filterHelper->buildLink($option), | ||
177 | + ] | ||
178 | + ) | ||
179 | + ); | ||
180 | + } | ||
181 | + ?> | ||
182 | + </div> | ||
183 | + </div> | ||
184 | + </div> | ||
185 | + <?php | ||
186 | + } | ||
187 | + foreach ($model->variantOptionGroupCompls as $group) { | ||
188 | + ?> | ||
189 | + <div class="panel panel-default sidebar-menu"> | ||
190 | + <div class="panel-heading"> | ||
191 | + <h3><?php echo $group->lang->title; ?></h3> | ||
192 | + </div> | ||
193 | + <div class="panel-body"> | ||
194 | + <div class="form-group"> | ||
195 | + <?php | ||
196 | + foreach ($group->options as $option) { | ||
197 | + /** | ||
198 | + * @var Product $product | ||
199 | + */ | ||
200 | + echo Html::tag( | ||
201 | + 'div', | ||
202 | + Html::a( | ||
203 | + $option->lang->value, | ||
204 | + [ | ||
205 | + '/category/view', | ||
206 | + 'id' => $model->id, | ||
207 | + 'filter' => $filterHelper->buildLink($option), | ||
208 | + ] | ||
209 | + ) | ||
210 | + ); | ||
211 | + } | ||
212 | + ?> | ||
213 | + </div> | ||
214 | + </div> | ||
215 | + </div> | ||
216 | + <?php | ||
217 | + } | ||
218 | + foreach ($model->variantOptionGroupExcls as $group) { | ||
219 | + ?> | ||
220 | + <div class="panel panel-default sidebar-menu"> | ||
221 | + <div class="panel-heading"> | ||
222 | + <h3><?php echo $group->lang->title; ?></h3> | ||
223 | + </div> | ||
224 | + <div class="panel-body"> | ||
225 | + <div class="form-group"> | ||
226 | + <?php | ||
227 | + foreach ($group->options as $option) { | ||
228 | + /** | ||
229 | + * @var Product $product | ||
230 | + */ | ||
231 | + echo Html::tag( | ||
232 | + 'div', | ||
233 | + Html::a( | ||
234 | + $option->lang->value, | ||
235 | + [ | ||
236 | + '/category/view', | ||
237 | + 'id' => $model->id, | ||
238 | + 'filter' => $filterHelper->buildLink($option), | ||
239 | + ] | ||
240 | + ) | ||
241 | + ); | ||
242 | + } | ||
243 | + ?> | ||
244 | + </div> | ||
245 | + </div> | ||
246 | + </div> | ||
247 | + <?php | ||
248 | + } | ||
249 | + ?> | ||
250 | + | ||
251 | + <!-- *** MENUS AND FILTERS END *** --> | ||
252 | + | ||
253 | + <!-- /.banner --> | ||
254 | + | ||
255 | + </div> | ||
256 | + <!-- /.col-md-3 --> | ||
257 | + | ||
258 | + <!-- *** LEFT COLUMN END *** --> | ||
259 | + | ||
260 | + <!-- *** RIGHT COLUMN *** | ||
261 | + _________________________________________________________ --> | ||
262 | + | ||
263 | + <div class="col-sm-9"> | ||
264 | + | ||
265 | + <div class="row products"> | ||
266 | + | ||
267 | + <div class="col-md-4 col-sm-6"> | ||
268 | + <div class="product"> | ||
269 | + <div class="image"> | ||
270 | + <a href="shop-product.html"> | ||
271 | + <img src="/img/product1.jpg" alt="" class="img-responsive image1"> | ||
272 | + </a> | ||
273 | + </div> | ||
274 | + <!-- /.image --> | ||
275 | + <div class="text"> | ||
276 | + <h3><a href="shop-product.html">Fur coat with very but very very long name</a></h3> | ||
277 | + <p class="price">$143.00</p> | ||
278 | + <p class="buttons"> | ||
279 | + <a href="shop-basket.html" class="btn btn-template-main"><i class="fa fa-shopping-cart"></i>В корзину</a> | ||
280 | + </p> | ||
281 | + </div> | ||
282 | + <!-- /.text --> | ||
283 | + </div> | ||
284 | + <!-- /.product --> | ||
285 | + </div> | ||
286 | + | ||
287 | + <div class="col-md-4 col-sm-6"> | ||
288 | + <div class="product"> | ||
289 | + <div class="image"> | ||
290 | + <a href="shop-product.html"> | ||
291 | + <img src="/img/product2.jpg" alt="" class="img-responsive image1"> | ||
292 | + </a> | ||
293 | + </div> | ||
294 | + <!-- /.image --> | ||
295 | + <div class="text"> | ||
296 | + <h3><a href="shop-product.html">White Blouse Armani</a></h3> | ||
297 | + <p class="price"> | ||
298 | + <del>$280</del> | ||
299 | + $143.00 | ||
300 | + </p> | ||
301 | + <p class="buttons"> | ||
302 | + <a href="shop-basket.html" class="btn btn-template-main"><i class="fa fa-shopping-cart"></i>В корзину</a> | ||
303 | + </p> | ||
304 | + </div> | ||
305 | + <!-- /.text --> | ||
306 | + | ||
307 | + <div class="ribbon sale"> | ||
308 | + <div class="theribbon">Скидки</div> | ||
309 | + <div class="ribbon-background"></div> | ||
310 | + </div> | ||
311 | + <!-- /.ribbon --> | ||
312 | + | ||
313 | + <div class="ribbon new"> | ||
314 | + <div class="theribbon">Новое</div> | ||
315 | + <div class="ribbon-background"></div> | ||
316 | + </div> | ||
317 | + <!-- /.ribbon --> | ||
318 | + </div> | ||
319 | + <!-- /.product --> | ||
320 | + </div> | ||
321 | + | ||
322 | + <div class="col-md-4 col-sm-6"> | ||
323 | + <div class="product"> | ||
324 | + <div class="image"> | ||
325 | + <a href="shop-product.html"> | ||
326 | + <img src="/img/product3.jpg" alt="" class="img-responsive image1"> | ||
327 | + </a> | ||
328 | + </div> | ||
329 | + <!-- /.image --> | ||
330 | + <div class="text"> | ||
331 | + <h3><a href="shop-product.html">Black Blouse Versace</a></h3> | ||
332 | + <p class="price">$143.00</p> | ||
333 | + <p class="buttons"> | ||
334 | + <a href="shop-basket.html" class="btn btn-template-main"><i class="fa fa-shopping-cart"></i>В корзину</a> | ||
335 | + </p> | ||
336 | + | ||
337 | + </div> | ||
338 | + <!-- /.text --> | ||
339 | + </div> | ||
340 | + <!-- /.product --> | ||
341 | + </div> | ||
342 | + | ||
343 | + <div class="col-md-4 col-sm-6"> | ||
344 | + <div class="product"> | ||
345 | + <div class="image"> | ||
346 | + <a href="shop-product.html"> | ||
347 | + <img src="/img/product3.jpg" alt="" class="img-responsive image1"> | ||
348 | + </a> | ||
349 | + </div> | ||
350 | + <!-- /.image --> | ||
351 | + <div class="text"> | ||
352 | + <h3><a href="shop-product.html">Black Blouse Versace</a></h3> | ||
353 | + <p class="price">$143.00</p> | ||
354 | + <p class="buttons"> | ||
355 | + <a href="shop-basket.html" class="btn btn-template-main"><i class="fa fa-shopping-cart"></i>В корзину</a> | ||
356 | + </p> | ||
357 | + | ||
358 | + </div> | ||
359 | + <!-- /.text --> | ||
360 | + </div> | ||
361 | + <!-- /.product --> | ||
362 | + </div> | ||
363 | + | ||
364 | + <div class="col-md-4 col-sm-6"> | ||
365 | + <div class="product"> | ||
366 | + <div class="image"> | ||
367 | + <a href="shop-product.html"> | ||
368 | + <img src="/img/product2.jpg" alt="" class="img-responsive image1"> | ||
369 | + </a> | ||
370 | + </div> | ||
371 | + <!-- /.image --> | ||
372 | + <div class="text"> | ||
373 | + <h3><a href="shop-product.html">White Blouse Versace</a></h3> | ||
374 | + <p class="price">$143.00</p> | ||
375 | + <p class="buttons"> | ||
376 | + <a href="shop-basket.html" class="btn btn-template-main"><i class="fa fa-shopping-cart"></i>В корзину</a> | ||
377 | + </p> | ||
378 | + | ||
379 | + </div> | ||
380 | + | ||
381 | + <!-- /.text --> | ||
382 | + | ||
383 | + <div class="ribbon new"> | ||
384 | + <div class="theribbon">Новое</div> | ||
385 | + <div class="ribbon-background"></div> | ||
386 | + </div> | ||
387 | + <!-- /.ribbon --> | ||
388 | + </div> | ||
389 | + <!-- /.product --> | ||
390 | + </div> | ||
391 | + | ||
392 | + <div class="col-md-4 col-sm-6"> | ||
393 | + <div class="product"> | ||
394 | + <div class="image"> | ||
395 | + <a href="shop-product.html"> | ||
396 | + <img src="/img/product1.jpg" alt="" class="img-responsive image1"> | ||
397 | + </a> | ||
398 | + </div> | ||
399 | + <!-- /.image --> | ||
400 | + <div class="text"> | ||
401 | + <h3><a href="shop-product.html">Fur coat</a></h3> | ||
402 | + <p class="price">$143.00</p> | ||
403 | + <p class="buttons"> | ||
404 | + <a href="shop-basket.html" class="btn btn-template-main"><i class="fa fa-shopping-cart"></i>В корзину</a> | ||
405 | + </p> | ||
406 | + | ||
407 | + </div> | ||
408 | + <!-- /.text --> | ||
409 | + </div> | ||
410 | + <!-- /.product --> | ||
411 | + </div> | ||
412 | + | ||
413 | + <div class="col-md-4 col-sm-6"> | ||
414 | + <div class="product"> | ||
415 | + <div class="image"> | ||
416 | + <a href="shop-product.html"> | ||
417 | + <img src="/img/product1.jpg" alt="" class="img-responsive image1"> | ||
418 | + </a> | ||
419 | + </div> | ||
420 | + <!-- /.image --> | ||
421 | + <div class="text"> | ||
422 | + <h3><a href="shop-product.html">Fur coat with very but very very long name</a></h3> | ||
423 | + <p class="price">$143.00</p> | ||
424 | + <p class="buttons"> | ||
425 | + <a href="shop-basket.html" class="btn btn-template-main"><i class="fa fa-shopping-cart"></i>В корзину</a> | ||
426 | + </p> | ||
427 | + </div> | ||
428 | + <!-- /.text --> | ||
429 | + </div> | ||
430 | + <!-- /.product --> | ||
431 | + </div> | ||
432 | + | ||
433 | + <div class="col-md-4 col-sm-6"> | ||
434 | + <div class="product"> | ||
435 | + <div class="image"> | ||
436 | + <a href="shop-product.html"> | ||
437 | + <img src="/img/product2.jpg" alt="" class="img-responsive image1"> | ||
438 | + </a> | ||
439 | + </div> | ||
440 | + <!-- /.image --> | ||
441 | + <div class="text"> | ||
442 | + <h3><a href="shop-product.html">White Blouse Armani</a></h3> | ||
443 | + <p class="price"> | ||
444 | + <del>$280</del> | ||
445 | + $143.00 | ||
446 | + </p> | ||
447 | + <p class="buttons"> | ||
448 | + <a href="shop-basket.html" class="btn btn-template-main"><i class="fa fa-shopping-cart"></i>В корзину</a> | ||
449 | + </p> | ||
450 | + </div> | ||
451 | + <!-- /.text --> | ||
452 | + | ||
453 | + <div class="ribbon sale"> | ||
454 | + <div class="theribbon">Скидки</div> | ||
455 | + <div class="ribbon-background"></div> | ||
456 | + </div> | ||
457 | + <!-- /.ribbon --> | ||
458 | + | ||
459 | + <div class="ribbon new"> | ||
460 | + <div class="theribbon">Новое</div> | ||
461 | + <div class="ribbon-background"></div> | ||
462 | + </div> | ||
463 | + <!-- /.ribbon --> | ||
464 | + </div> | ||
465 | + <!-- /.product --> | ||
466 | + </div> | ||
467 | + | ||
468 | + <div class="col-md-4 col-sm-6"> | ||
469 | + <div class="product"> | ||
470 | + <div class="image"> | ||
471 | + <a href="shop-product.html"> | ||
472 | + <img src="/img/product3.jpg" alt="" class="img-responsive image1"> | ||
473 | + </a> | ||
474 | + </div> | ||
475 | + <!-- /.image --> | ||
476 | + <div class="text"> | ||
477 | + <h3><a href="shop-product.html">Black Blouse Versace</a></h3> | ||
478 | + <p class="price">$143.00</p> | ||
479 | + <p class="buttons"> | ||
480 | + <a href="shop-basket.html" class="btn btn-template-main"><i class="fa fa-shopping-cart"></i>В корзину</a> | ||
481 | + </p> | ||
482 | + | ||
483 | + </div> | ||
484 | + <!-- /.text --> | ||
485 | + </div> | ||
486 | + <!-- /.product --> | ||
487 | + </div> | ||
488 | + | ||
489 | + <div class="col-md-4 col-sm-6"> | ||
490 | + <div class="product"> | ||
491 | + <div class="image"> | ||
492 | + <a href="shop-product.html"> | ||
493 | + <img src="/img/product3.jpg" alt="" class="img-responsive image1"> | ||
494 | + </a> | ||
495 | + </div> | ||
496 | + <!-- /.image --> | ||
497 | + <div class="text"> | ||
498 | + <h3><a href="shop-product.html">Black Blouse Versace</a></h3> | ||
499 | + <p class="price">$143.00</p> | ||
500 | + <p class="buttons"> | ||
501 | + <a href="shop-basket.html" class="btn btn-template-main"><i class="fa fa-shopping-cart"></i>В корзину</a> | ||
502 | + </p> | ||
503 | + | ||
504 | + </div> | ||
505 | + <!-- /.text --> | ||
506 | + </div> | ||
507 | + <!-- /.product --> | ||
508 | + </div> | ||
509 | + | ||
510 | + <div class="col-md-4 col-sm-6"> | ||
511 | + <div class="product"> | ||
512 | + <div class="image"> | ||
513 | + <a href="shop-product.html"> | ||
514 | + <img src="/img/product2.jpg" alt="" class="img-responsive image1"> | ||
515 | + </a> | ||
516 | + </div> | ||
517 | + <!-- /.image --> | ||
518 | + <div class="text"> | ||
519 | + <h3><a href="shop-product.html">White Blouse Versace</a></h3> | ||
520 | + <p class="price">$143.00</p> | ||
521 | + <p class="buttons"> | ||
522 | + <a href="shop-basket.html" class="btn btn-template-main"><i class="fa fa-shopping-cart"></i>В корзину</a> | ||
523 | + </p> | ||
524 | + | ||
525 | + </div> | ||
526 | + | ||
527 | + <!-- /.text --> | ||
528 | + | ||
529 | + <div class="ribbon new"> | ||
530 | + <div class="theribbon">Новое</div> | ||
531 | + <div class="ribbon-background"></div> | ||
532 | + </div> | ||
533 | + <!-- /.ribbon --> | ||
534 | + </div> | ||
535 | + <!-- /.product --> | ||
536 | + </div> | ||
537 | + | ||
538 | + <div class="col-md-4 col-sm-6"> | ||
539 | + <div class="product"> | ||
540 | + <div class="image"> | ||
541 | + <a href="shop-product.html"> | ||
542 | + <img src="/img/product1.jpg" alt="" class="img-responsive image1"> | ||
543 | + </a> | ||
544 | + </div> | ||
545 | + <!-- /.image --> | ||
546 | + <div class="text"> | ||
547 | + <h3><a href="shop-product.html">Fur coat</a></h3> | ||
548 | + <p class="price">$143.00</p> | ||
549 | + <p class="buttons"> | ||
550 | + <a href="shop-basket.html" class="btn btn-template-main"><i class="fa fa-shopping-cart"></i>В корзину</a> | ||
551 | + </p> | ||
552 | + | ||
553 | + </div> | ||
554 | + <!-- /.text --> | ||
555 | + </div> | ||
556 | + <!-- /.product --> | ||
557 | + </div> | ||
558 | + | ||
559 | + <div class="col-md-4 col-sm-6"> | ||
560 | + <div class="product"> | ||
561 | + <div class="image"> | ||
562 | + <a href="shop-product.html"> | ||
563 | + <img src="/img/product1.jpg" alt="" class="img-responsive image1"> | ||
564 | + </a> | ||
565 | + </div> | ||
566 | + <!-- /.image --> | ||
567 | + <div class="text"> | ||
568 | + <h3><a href="shop-product.html">Fur coat with very but very very long name</a></h3> | ||
569 | + <p class="price">$143.00</p> | ||
570 | + <p class="buttons"> | ||
571 | + <a href="shop-basket.html" class="btn btn-template-main"><i class="fa fa-shopping-cart"></i>В корзину</a> | ||
572 | + </p> | ||
573 | + </div> | ||
574 | + <!-- /.text --> | ||
575 | + </div> | ||
576 | + <!-- /.product --> | ||
577 | + </div> | ||
578 | + | ||
579 | + <div class="col-md-4 col-sm-6"> | ||
580 | + <div class="product"> | ||
581 | + <div class="image"> | ||
582 | + <a href="shop-product.html"> | ||
583 | + <img src="/img/product2.jpg" alt="" class="img-responsive image1"> | ||
584 | + </a> | ||
585 | + </div> | ||
586 | + <!-- /.image --> | ||
587 | + <div class="text"> | ||
588 | + <h3><a href="shop-product.html">White Blouse Armani</a></h3> | ||
589 | + <p class="price"> | ||
590 | + <del>$280</del> | ||
591 | + $143.00 | ||
592 | + </p> | ||
593 | + <p class="buttons"> | ||
594 | + <a href="shop-basket.html" class="btn btn-template-main"><i class="fa fa-shopping-cart"></i>В корзину</a> | ||
595 | + </p> | ||
596 | + </div> | ||
597 | + <!-- /.text --> | ||
598 | + | ||
599 | + <div class="ribbon sale"> | ||
600 | + <div class="theribbon">Скидки</div> | ||
601 | + <div class="ribbon-background"></div> | ||
602 | + </div> | ||
603 | + <!-- /.ribbon --> | ||
604 | + | ||
605 | + <div class="ribbon new"> | ||
606 | + <div class="theribbon">Новое</div> | ||
607 | + <div class="ribbon-background"></div> | ||
608 | + </div> | ||
609 | + <!-- /.ribbon --> | ||
610 | + </div> | ||
611 | + <!-- /.product --> | ||
612 | + </div> | ||
613 | + | ||
614 | + <div class="col-md-4 col-sm-6"> | ||
615 | + <div class="product"> | ||
616 | + <div class="image"> | ||
617 | + <a href="shop-product.html"> | ||
618 | + <img src="/img/product3.jpg" alt="" class="img-responsive image1"> | ||
619 | + </a> | ||
620 | + </div> | ||
621 | + <!-- /.image --> | ||
622 | + <div class="text"> | ||
623 | + <h3><a href="shop-product.html">Black Blouse Versace</a></h3> | ||
624 | + <p class="price">$143.00</p> | ||
625 | + <p class="buttons"> | ||
626 | + <a href="shop-basket.html" class="btn btn-template-main"><i class="fa fa-shopping-cart"></i>В корзину</a> | ||
627 | + </p> | ||
628 | + | ||
629 | + </div> | ||
630 | + <!-- /.text --> | ||
631 | + </div> | ||
632 | + <!-- /.product --> | ||
633 | + </div> | ||
634 | + | ||
635 | + <div class="col-md-4 col-sm-6"> | ||
636 | + <div class="product"> | ||
637 | + <div class="image"> | ||
638 | + <a href="shop-product.html"> | ||
639 | + <img src="/img/product3.jpg" alt="" class="img-responsive image1"> | ||
640 | + </a> | ||
641 | + </div> | ||
642 | + <!-- /.image --> | ||
643 | + <div class="text"> | ||
644 | + <h3><a href="shop-product.html">Black Blouse Versace</a></h3> | ||
645 | + <p class="price">$143.00</p> | ||
646 | + <p class="buttons"> | ||
647 | + <a href="shop-basket.html" class="btn btn-template-main"><i class="fa fa-shopping-cart"></i>В корзину</a> | ||
648 | + </p> | ||
649 | + | ||
650 | + </div> | ||
651 | + <!-- /.text --> | ||
652 | + </div> | ||
653 | + <!-- /.product --> | ||
654 | + </div> | ||
655 | + | ||
656 | + <div class="col-md-4 col-sm-6"> | ||
657 | + <div class="product"> | ||
658 | + <div class="image"> | ||
659 | + <a href="shop-product.html"> | ||
660 | + <img src="/img/product2.jpg" alt="" class="img-responsive image1"> | ||
661 | + </a> | ||
662 | + </div> | ||
663 | + <!-- /.image --> | ||
664 | + <div class="text"> | ||
665 | + <h3><a href="shop-product.html">White Blouse Versace</a></h3> | ||
666 | + <p class="price">$143.00</p> | ||
667 | + <p class="buttons"> | ||
668 | + <a href="shop-basket.html" class="btn btn-template-main"><i class="fa fa-shopping-cart"></i>В корзину</a> | ||
669 | + </p> | ||
670 | + | ||
671 | + </div> | ||
672 | + | ||
673 | + <!-- /.text --> | ||
674 | + | ||
675 | + <div class="ribbon new"> | ||
676 | + <div class="theribbon">Новое</div> | ||
677 | + <div class="ribbon-background"></div> | ||
678 | + </div> | ||
679 | + <!-- /.ribbon --> | ||
680 | + </div> | ||
681 | + <!-- /.product --> | ||
682 | + </div> | ||
683 | + | ||
684 | + <div class="col-md-4 col-sm-6"> | ||
685 | + <div class="product"> | ||
686 | + <div class="image"> | ||
687 | + <a href="shop-product.html"> | ||
688 | + <img src="/img/product1.jpg" alt="" class="img-responsive image1"> | ||
689 | + </a> | ||
690 | + </div> | ||
691 | + <!-- /.image --> | ||
692 | + <div class="text"> | ||
693 | + <h3><a href="shop-product.html">Fur coat</a></h3> | ||
694 | + <p class="price">$143.00</p> | ||
695 | + <p class="buttons"> | ||
696 | + <a href="shop-basket.html" class="btn btn-template-main"><i class="fa fa-shopping-cart"></i>В корзину</a> | ||
697 | + </p> | ||
698 | + | ||
699 | + </div> | ||
700 | + <!-- /.text --> | ||
701 | + </div> | ||
702 | + <!-- /.product --> | ||
703 | + </div> | ||
704 | + <!-- /.col-md-4 --> | ||
705 | + </div> | ||
706 | + <!-- /.products --> | ||
707 | + | ||
708 | + <div class="pages"> | ||
709 | + <!-- | ||
710 | + <p class="loadMore"> | ||
711 | + <a href="#" class="btn btn-template-main"><i class="fa fa-chevron-down"></i> Load more</a> | ||
712 | + </p> | ||
713 | + --> | ||
714 | + <ul class="pagination"> | ||
715 | + <li><a href="#">«</a> | ||
716 | + </li> | ||
717 | + <li class="active"><a href="#">1</a> | ||
718 | + </li> | ||
719 | + <li><a href="#">2</a> | ||
720 | + </li> | ||
721 | + <li><a href="#">3</a> | ||
722 | + </li> | ||
723 | + <li><a href="#">4</a> | ||
724 | + </li> | ||
725 | + <li><a href="#">5</a> | ||
726 | + </li> | ||
727 | + <li><a href="#">»</a> | ||
728 | + </li> | ||
729 | + </ul> | ||
730 | + </div> | ||
731 | + | ||
732 | + | ||
733 | + </div> | ||
734 | + <!-- /.col-md-9 --> | ||
735 | + | ||
736 | + <!-- *** RIGHT COLUMN END *** --> | ||
737 | + | ||
738 | + </div> | ||
739 | + | ||
740 | + </div> | ||
741 | + <!-- /.container --> | ||
742 | +</div> | ||
743 | +<!-- /#content --> |
1 | +<?php | ||
2 | + use artbox\catalog\models\Category; | ||
3 | + use yii\bootstrap\Html; | ||
4 | + use yii\web\View; | ||
5 | + | ||
6 | + /** | ||
7 | + * @var View $this | ||
8 | + * @var bool $isHome | ||
9 | + */ | ||
10 | + $categories = Category::find() | ||
11 | + ->with('categories.lang', 'lang') | ||
12 | + ->where([ 'level' => 0 ]) | ||
13 | + ->all(); | ||
14 | +?> | ||
15 | +<ul class="dropdown-menu <?php echo $isHome ? 'sidebar' : 'multi-level'; ?>" role="menu" aria-labelledby="dLabel" <?php echo $isHome ? 'id="home-category-anchor"' : ''; ?>> | ||
16 | + <?php | ||
17 | + foreach ($categories as $category) { | ||
18 | + ?> | ||
19 | + <li class="dropdown-submenu"> | ||
20 | + <?php | ||
21 | + echo Html::a( | ||
22 | + $category->lang->title, | ||
23 | + [ | ||
24 | + 'category/view', | ||
25 | + 'id' => $category->id, | ||
26 | + ], | ||
27 | + [ | ||
28 | + 'tabindex' => -1, | ||
29 | + ] | ||
30 | + ); | ||
31 | + if ( !empty( $category->categories ) ) { | ||
32 | + ?> | ||
33 | + <ul class="dropdown-menu"> | ||
34 | + <?php | ||
35 | + foreach ($category->categories as $childCategory) { | ||
36 | + echo Html::tag( | ||
37 | + 'li', | ||
38 | + Html::a( | ||
39 | + $childCategory->lang->title, | ||
40 | + [ | ||
41 | + 'category/view', | ||
42 | + 'id' => $childCategory->id, | ||
43 | + ] | ||
44 | + ) | ||
45 | + ); | ||
46 | + } | ||
47 | + } | ||
48 | + ?> | ||
49 | + </ul> | ||
50 | + </li> | ||
51 | + <?php | ||
52 | + } | ||
53 | + ?> | ||
54 | +</ul> |
frontend/views/layouts/main.php
@@ -182,10 +182,20 @@ | @@ -182,10 +182,20 @@ | ||
182 | <div class="navbar-collapse collapse navbar-left" id="navigation"> | 182 | <div class="navbar-collapse collapse navbar-left" id="navigation"> |
183 | <ul class="nav navbar-nav navbar-left"> | 183 | <ul class="nav navbar-nav navbar-left"> |
184 | <li class="main-nav-item active"> | 184 | <li class="main-nav-item active"> |
185 | - <a href="#home-category-anchor"><span class="btn-like"><?php echo \Yii::t( | 185 | + <a href="#home-category-anchor" <?php echo $isHome ? '' : 'role="button" class="dropdown-toggle" data-toggle="dropdown" data-hover="dropdown" data-delay="200"'; ?>><span class="btn-like"><?php echo \Yii::t( |
186 | 'app', | 186 | 'app', |
187 | 'Каталог' | 187 | 'Каталог' |
188 | ); ?><i class="fa fa-bars" aria-hidden="true"></i></span></a> | 188 | ); ?><i class="fa fa-bars" aria-hidden="true"></i></span></a> |
189 | + <?php | ||
190 | + if (!$isHome) { | ||
191 | + echo $this->render( | ||
192 | + '_category_menu', | ||
193 | + [ | ||
194 | + 'isHome' => $isHome, | ||
195 | + ] | ||
196 | + ); | ||
197 | + } | ||
198 | + ?> | ||
189 | </li> | 199 | </li> |
190 | <li class="main-nav-item"> | 200 | <li class="main-nav-item"> |
191 | <?php | 201 | <?php |
@@ -382,19 +392,11 @@ _________________________________________________________ --> | @@ -382,19 +392,11 @@ _________________________________________________________ --> | ||
382 | ?> | 392 | ?> |
383 | <div id="heading-breadcrumbs"> | 393 | <div id="heading-breadcrumbs"> |
384 | <div class="container"> | 394 | <div class="container"> |
385 | - <div class="row"> | ||
386 | - <div class="col-md-7"> | ||
387 | - <h1><?= $seo->h1 ?></h1> | ||
388 | - </div> | ||
389 | - <div class="col-md-5"> | ||
390 | - <?= Breadcrumbs::widget( | ||
391 | - [ | ||
392 | - 'links' => isset( $this->params[ 'breadcrumbs' ] ) ? $this->params[ 'breadcrumbs' ] : [], | ||
393 | - ] | ||
394 | - ) ?> | ||
395 | - | ||
396 | - </div> | ||
397 | - </div> | 395 | + <?= Breadcrumbs::widget( |
396 | + [ | ||
397 | + 'links' => isset( $this->params[ 'breadcrumbs' ] ) ? $this->params[ 'breadcrumbs' ] : [], | ||
398 | + ] | ||
399 | + ) ?> | ||
398 | </div> | 400 | </div> |
399 | </div> | 401 | </div> |
400 | <?php | 402 | <?php |
@@ -411,11 +413,11 @@ _________________________________________________________ --> | @@ -411,11 +413,11 @@ _________________________________________________________ --> | ||
411 | <div class="container"> | 413 | <div class="container"> |
412 | <div class="col-md-3 col-sm-6"> | 414 | <div class="col-md-3 col-sm-6"> |
413 | <h4><?php echo \Yii::t('app', 'About us'); ?></h4> | 415 | <h4><?php echo \Yii::t('app', 'About us'); ?></h4> |
414 | - | 416 | + |
415 | <p><?php echo $settings->about; ?></p> | 417 | <p><?php echo $settings->about; ?></p> |
416 | - | 418 | + |
417 | <hr> | 419 | <hr> |
418 | - | 420 | + |
419 | <h4>Join our monthly newsletter</h4> | 421 | <h4>Join our monthly newsletter</h4> |
420 | <?php | 422 | <?php |
421 | $newsletterForm = ActiveForm::begin( | 423 | $newsletterForm = ActiveForm::begin( |
@@ -462,7 +464,7 @@ _________________________________________________________ --> | @@ -462,7 +464,7 @@ _________________________________________________________ --> | ||
462 | $newsletterForm::end(); | 464 | $newsletterForm::end(); |
463 | ?> | 465 | ?> |
464 | <hr class="hidden-md hidden-lg hidden-sm"> | 466 | <hr class="hidden-md hidden-lg hidden-sm"> |
465 | - | 467 | + |
466 | </div> | 468 | </div> |
467 | <!-- /.col-md-3 --> | 469 | <!-- /.col-md-3 --> |
468 | 470 | ||
@@ -474,7 +476,7 @@ _________________________________________________________ --> | @@ -474,7 +476,7 @@ _________________________________________________________ --> | ||
474 | <div class="item same-height-row clearfix"> | 476 | <div class="item same-height-row clearfix"> |
475 | <div class="image same-height-always"> | 477 | <div class="image same-height-always"> |
476 | <a href="#"> | 478 | <a href="#"> |
477 | - <img class="img-responsive" src="img/detailsquare.jpg" alt=""> | 479 | + <img class="img-responsive" src="/img/detailsquare.jpg" alt=""> |
478 | </a> | 480 | </a> |
479 | </div> | 481 | </div> |
480 | <div class="name same-height-always"> | 482 | <div class="name same-height-always"> |
@@ -485,7 +487,7 @@ _________________________________________________________ --> | @@ -485,7 +487,7 @@ _________________________________________________________ --> | ||
485 | <div class="item same-height-row clearfix"> | 487 | <div class="item same-height-row clearfix"> |
486 | <div class="image same-height-always"> | 488 | <div class="image same-height-always"> |
487 | <a href="#"> | 489 | <a href="#"> |
488 | - <img class="img-responsive" src="img/detailsquare.jpg" alt=""> | 490 | + <img class="img-responsive" src="/img/detailsquare.jpg" alt=""> |
489 | </a> | 491 | </a> |
490 | </div> | 492 | </div> |
491 | <div class="name same-height-always"> | 493 | <div class="name same-height-always"> |
@@ -496,7 +498,7 @@ _________________________________________________________ --> | @@ -496,7 +498,7 @@ _________________________________________________________ --> | ||
496 | <div class="item same-height-row clearfix"> | 498 | <div class="item same-height-row clearfix"> |
497 | <div class="image same-height-always"> | 499 | <div class="image same-height-always"> |
498 | <a href="#"> | 500 | <a href="#"> |
499 | - <img class="img-responsive" src="img/detailsquare.jpg" alt=""> | 501 | + <img class="img-responsive" src="/img/detailsquare.jpg" alt=""> |
500 | </a> | 502 | </a> |
501 | </div> | 503 | </div> |
502 | <div class="name same-height-always"> | 504 | <div class="name same-height-always"> |
@@ -544,32 +546,32 @@ _________________________________________________________ --> | @@ -544,32 +546,32 @@ _________________________________________________________ --> | ||
544 | <div class="photostream"> | 546 | <div class="photostream"> |
545 | <div> | 547 | <div> |
546 | <a href="#"> | 548 | <a href="#"> |
547 | - <img src="img/detailsquare.jpg" class="img-responsive" alt="#"> | 549 | + <img src="/img/detailsquare.jpg" class="img-responsive" alt="#"> |
548 | </a> | 550 | </a> |
549 | </div> | 551 | </div> |
550 | <div> | 552 | <div> |
551 | <a href="#"> | 553 | <a href="#"> |
552 | - <img src="img/detailsquare2.jpg" class="img-responsive" alt="#"> | 554 | + <img src="/img/detailsquare2.jpg" class="img-responsive" alt="#"> |
553 | </a> | 555 | </a> |
554 | </div> | 556 | </div> |
555 | <div> | 557 | <div> |
556 | <a href="#"> | 558 | <a href="#"> |
557 | - <img src="img/detailsquare3.jpg" class="img-responsive" alt="#"> | 559 | + <img src="/img/detailsquare3.jpg" class="img-responsive" alt="#"> |
558 | </a> | 560 | </a> |
559 | </div> | 561 | </div> |
560 | <div> | 562 | <div> |
561 | <a href="#"> | 563 | <a href="#"> |
562 | - <img src="img/detailsquare3.jpg" class="img-responsive" alt="#"> | 564 | + <img src="/img/detailsquare3.jpg" class="img-responsive" alt="#"> |
563 | </a> | 565 | </a> |
564 | </div> | 566 | </div> |
565 | <div> | 567 | <div> |
566 | <a href="#"> | 568 | <a href="#"> |
567 | - <img src="img/detailsquare2.jpg" class="img-responsive" alt="#"> | 569 | + <img src="/img/detailsquare2.jpg" class="img-responsive" alt="#"> |
568 | </a> | 570 | </a> |
569 | </div> | 571 | </div> |
570 | <div> | 572 | <div> |
571 | <a href="#"> | 573 | <a href="#"> |
572 | - <img src="img/detailsquare.jpg" class="img-responsive" alt="#"> | 574 | + <img src="/img/detailsquare.jpg" class="img-responsive" alt="#"> |
573 | </a> | 575 | </a> |
574 | </div> | 576 | </div> |
575 | </div> | 577 | </div> |
frontend/views/site/_slider_product.php
@@ -75,7 +75,7 @@ | @@ -75,7 +75,7 @@ | ||
75 | if ($product->is(1)) { | 75 | if ($product->is(1)) { |
76 | ?> | 76 | ?> |
77 | <div class="ribbon new"> | 77 | <div class="ribbon new"> |
78 | - <div class="theribbon">Новое</div> | 78 | + <div class="theribbon"><?php echo \Yii::t('app', 'Новое'); ?></div> |
79 | <div class="ribbon-background"></div> | 79 | <div class="ribbon-background"></div> |
80 | </div> | 80 | </div> |
81 | <?php | 81 | <?php |
@@ -83,7 +83,7 @@ | @@ -83,7 +83,7 @@ | ||
83 | if ($product->is(2)) { | 83 | if ($product->is(2)) { |
84 | ?> | 84 | ?> |
85 | <div class="ribbon sale"> | 85 | <div class="ribbon sale"> |
86 | - <div class="theribbon">Акция</div> | 86 | + <div class="theribbon"><?php echo \Yii::t('app', 'Акция'); ?></div> |
87 | <div class="ribbon-background"></div> | 87 | <div class="ribbon-background"></div> |
88 | </div> | 88 | </div> |
89 | <?php | 89 | <?php |
frontend/views/site/index.php
1 | <?php | 1 | <?php |
2 | + use artbox\catalog\models\Brand; | ||
2 | use artbox\catalog\models\Category; | 3 | use artbox\catalog\models\Category; |
3 | use artbox\catalog\models\Product; | 4 | use artbox\catalog\models\Product; |
5 | + use artbox\core\components\SeoComponent; | ||
4 | use yii\bootstrap\Html; | 6 | use yii\bootstrap\Html; |
5 | use yii\web\View; | 7 | use yii\web\View; |
6 | 8 | ||
7 | /** | 9 | /** |
8 | - * @var View $this | ||
9 | - * @var Category[] $categories | ||
10 | - * @var Product[] $topItems | ||
11 | - * @var Product[] $newItems | ||
12 | - * @var Product[] $saleItems | ||
13 | - * @var int $brandCount | ||
14 | - * @var int $productCount | 10 | + * @var View $this |
11 | + * @var Category[] $categories | ||
12 | + * @var Product[] $topItems | ||
13 | + * @var Product[] $newItems | ||
14 | + * @var Product[] $saleItems | ||
15 | + * @var int $brandCount | ||
16 | + * @var int $productCount | ||
17 | + * @var Brand[] $brands | ||
18 | + * @var SeoComponent $seo | ||
15 | */ | 19 | */ |
16 | $this->title = 'My Yii Application'; | 20 | $this->title = 'My Yii Application'; |
21 | + $seo = Yii::$app->get('seo'); | ||
17 | ?> | 22 | ?> |
18 | <section class="category-carousel-box"> | 23 | <section class="category-carousel-box"> |
19 | <!-- *** HOMEPAGE CAROUSEL *** | 24 | <!-- *** HOMEPAGE CAROUSEL *** |
@@ -22,46 +27,14 @@ _________________________________________________________ --> | @@ -22,46 +27,14 @@ _________________________________________________________ --> | ||
22 | 27 | ||
23 | <div class="row"> | 28 | <div class="row"> |
24 | <div class="col-sm-3"> | 29 | <div class="col-sm-3"> |
25 | - <ul class="dropdown-menu sidebar" role="menu" aria-labelledby="dLabel" id="home-category-anchor"> | ||
26 | - <?php | ||
27 | - foreach ($categories as $category) { | ||
28 | - ?> | ||
29 | - <li class="dropdown-submenu"> | ||
30 | - <?php | ||
31 | - echo Html::a( | ||
32 | - $category->lang->title, | ||
33 | - [ | ||
34 | - 'category/view', | ||
35 | - 'id' => $category->id, | ||
36 | - ], | ||
37 | - [ | ||
38 | - 'tabindex' => -1, | ||
39 | - ] | ||
40 | - ); | ||
41 | - if ( !empty( $category->categories ) ) { | ||
42 | - ?> | ||
43 | - <ul class="dropdown-menu"> | ||
44 | - <?php | ||
45 | - foreach ($category->categories as $childCategory) { | ||
46 | - echo Html::tag( | ||
47 | - 'li', | ||
48 | - Html::a( | ||
49 | - $childCategory->lang->title, | ||
50 | - [ | ||
51 | - 'category/view', | ||
52 | - 'id' => $childCategory->id, | ||
53 | - ] | ||
54 | - ) | ||
55 | - ); | ||
56 | - } | ||
57 | - } | ||
58 | - ?> | ||
59 | - </ul> | ||
60 | - </li> | ||
61 | - <?php | ||
62 | - } | ||
63 | - ?> | ||
64 | - </ul> | 30 | + <?php |
31 | + echo $this->render( | ||
32 | + '@frontend/views/layouts/_category_menu', | ||
33 | + [ | ||
34 | + 'isHome' => true, | ||
35 | + ] | ||
36 | + ); | ||
37 | + ?> | ||
65 | </div> | 38 | </div> |
66 | 39 | ||
67 | <div class="col-sm-9"> | 40 | <div class="col-sm-9"> |
@@ -116,7 +89,7 @@ _________________________________________________________ --> | @@ -116,7 +89,7 @@ _________________________________________________________ --> | ||
116 | <div class="heading text-center"> | 89 | <div class="heading text-center"> |
117 | <h2><?php echo \Yii::t('app', 'Новинки'); ?></h2> | 90 | <h2><?php echo \Yii::t('app', 'Новинки'); ?></h2> |
118 | </div> | 91 | </div> |
119 | - | 92 | + |
120 | <div class="product-carousel"> | 93 | <div class="product-carousel"> |
121 | <div class="homepage owl-carousel"> | 94 | <div class="homepage owl-carousel"> |
122 | <?php | 95 | <?php |
@@ -214,7 +187,7 @@ _________________________________________________________ --> | @@ -214,7 +187,7 @@ _________________________________________________________ --> | ||
214 | <div class="icon"><i class="fa fa-cubes"></i> | 187 | <div class="icon"><i class="fa fa-cubes"></i> |
215 | </div> | 188 | </div> |
216 | <h4><span class="counter"><?php echo $productCount; ?></span><br> | 189 | <h4><span class="counter"><?php echo $productCount; ?></span><br> |
217 | - | 190 | + |
218 | Позиций товаров</h4> | 191 | Позиций товаров</h4> |
219 | </div> | 192 | </div> |
220 | </div> | 193 | </div> |
@@ -223,7 +196,7 @@ _________________________________________________________ --> | @@ -223,7 +196,7 @@ _________________________________________________________ --> | ||
223 | <div class="icon"><i class="fa fa-tags"></i> | 196 | <div class="icon"><i class="fa fa-tags"></i> |
224 | </div> | 197 | </div> |
225 | <h4><span class="counter"><?php echo $brandCount; ?></span><br> | 198 | <h4><span class="counter"><?php echo $brandCount; ?></span><br> |
226 | - | 199 | + |
227 | Брендов</h4> | 200 | Брендов</h4> |
228 | </div> | 201 | </div> |
229 | </div> | 202 | </div> |
@@ -232,7 +205,7 @@ _________________________________________________________ --> | @@ -232,7 +205,7 @@ _________________________________________________________ --> | ||
232 | <div class="icon"><i class="fa fa-copy"></i> | 205 | <div class="icon"><i class="fa fa-copy"></i> |
233 | </div> | 206 | </div> |
234 | <h4><span class="counter">12</span> ... <span class="counter">36</span><br> | 207 | <h4><span class="counter">12</span> ... <span class="counter">36</span><br> |
235 | - | 208 | + |
236 | Месяцев Гарантия </h4> | 209 | Месяцев Гарантия </h4> |
237 | </div> | 210 | </div> |
238 | </div> | 211 | </div> |
@@ -242,57 +215,61 @@ _________________________________________________________ --> | @@ -242,57 +215,61 @@ _________________________________________________________ --> | ||
242 | <!-- /.container --> | 215 | <!-- /.container --> |
243 | </section> | 216 | </section> |
244 | <!-- /.bar --> | 217 | <!-- /.bar --> |
245 | - | ||
246 | -<section class="bar background-gray no-mb"> | ||
247 | - <div class="container"> | ||
248 | - <div class="row"> | ||
249 | - <div class="col-md-12"> | ||
250 | - <div class="heading text-center"> | ||
251 | - <h2>Бренды</h2> | ||
252 | - </div> | 218 | +<?php |
219 | + if (!empty( $brands )) { | ||
220 | + ?> | ||
221 | + <section class="bar background-gray no-mb"> | ||
222 | + <div class="container"> | ||
223 | + <div class="row"> | ||
224 | + <div class="col-md-12"> | ||
225 | + <div class="heading text-center"> | ||
226 | + <h2><?php echo \Yii::t('app', 'Бренды'); ?></h2> | ||
227 | + </div> | ||
228 | + | ||
229 | + <ul class="owl-carousel customers"> | ||
230 | + <?php | ||
231 | + foreach ($brands as $brand) { | ||
232 | + echo Html::tag( | ||
233 | + 'div', | ||
234 | + Html::img( | ||
235 | + $brand->image->getUrl(), | ||
236 | + [ | ||
237 | + 'class' => 'img-responsive', | ||
238 | + ] | ||
239 | + ), | ||
240 | + [ | ||
241 | + 'class' => 'item', | ||
242 | + ] | ||
243 | + ); | ||
244 | + } | ||
245 | + ?> | ||
246 | + </ul> | ||
247 | + <!-- /.owl-carousel --> | ||
248 | + </div> | ||
253 | 249 | ||
254 | - <ul class="owl-carousel customers"> | ||
255 | - <li class="item"> | ||
256 | - <img src="/img/customer-1.png" alt="" class="img-responsive"> | ||
257 | - </li> | ||
258 | - <li class="item"> | ||
259 | - <img src="/img/customer-2.png" alt="" class="img-responsive"> | ||
260 | - </li> | ||
261 | - <li class="item"> | ||
262 | - <img src="/img/customer-3.png" alt="" class="img-responsive"> | ||
263 | - </li> | ||
264 | - <li class="item"> | ||
265 | - <img src="/img/customer-4.png" alt="" class="img-responsive"> | ||
266 | - </li> | ||
267 | - <li class="item"> | ||
268 | - <img src="/img/customer-5.png" alt="" class="img-responsive"> | ||
269 | - </li> | ||
270 | - <li class="item"> | ||
271 | - <img src="/img/customer-6.png" alt="" class="img-responsive"> | ||
272 | - </li> | ||
273 | - </ul> | ||
274 | - <!-- /.owl-carousel --> | 250 | + </div> |
275 | </div> | 251 | </div> |
276 | - | ||
277 | - </div> | ||
278 | - </div> | ||
279 | -</section> | ||
280 | - | 252 | + </section> |
253 | + <?php | ||
254 | + } | ||
255 | +?> | ||
256 | +<?php | ||
257 | + /* Полезные статьи | ||
281 | <section class="bar background-white no-mb"> | 258 | <section class="bar background-white no-mb"> |
282 | <div class="container"> | 259 | <div class="container"> |
283 | - | 260 | + |
284 | <div class="col-md-12"> | 261 | <div class="col-md-12"> |
285 | <div class="heading text-center"> | 262 | <div class="heading text-center"> |
286 | <h2>Полезные статьи</h2> | 263 | <h2>Полезные статьи</h2> |
287 | </div> | 264 | </div> |
288 | - | 265 | + |
289 | <p class="lead">Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. Vestibulum tortor quam, feugiat vitae, ultricies eget, tempor sit amet, ante. Donec eu libero sit amet quam egestas semper. Aenean ultricies | 266 | <p class="lead">Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. Vestibulum tortor quam, feugiat vitae, ultricies eget, tempor sit amet, ante. Donec eu libero sit amet quam egestas semper. Aenean ultricies |
290 | mi vitae est. Mauris placerat eleifend leo. <span class="accent">Check our blog!</span> | 267 | mi vitae est. Mauris placerat eleifend leo. <span class="accent">Check our blog!</span> |
291 | </p> | 268 | </p> |
292 | - | 269 | + |
293 | <!-- *** BLOG HOMEPAGE *** | 270 | <!-- *** BLOG HOMEPAGE *** |
294 | _________________________________________________________ --> | 271 | _________________________________________________________ --> |
295 | - | 272 | + |
296 | <div class="row"> | 273 | <div class="row"> |
297 | <div class="col-md-3 col-sm-6"> | 274 | <div class="col-md-3 col-sm-6"> |
298 | <div class="box-image-text blog"> | 275 | <div class="box-image-text blog"> |
@@ -320,7 +297,7 @@ _________________________________________________________ --> | @@ -320,7 +297,7 @@ _________________________________________________________ --> | ||
320 | <!-- /.box-image-text --> | 297 | <!-- /.box-image-text --> |
321 | 298 | ||
322 | </div> | 299 | </div> |
323 | - | 300 | + |
324 | <div class="col-md-3 col-sm-6"> | 301 | <div class="col-md-3 col-sm-6"> |
325 | <div class="box-image-text blog"> | 302 | <div class="box-image-text blog"> |
326 | <div class="top"> | 303 | <div class="top"> |
@@ -345,9 +322,9 @@ _________________________________________________________ --> | @@ -345,9 +322,9 @@ _________________________________________________________ --> | ||
345 | </div> | 322 | </div> |
346 | </div> | 323 | </div> |
347 | <!-- /.box-image-text --> | 324 | <!-- /.box-image-text --> |
348 | - | 325 | + |
349 | </div> | 326 | </div> |
350 | - | 327 | + |
351 | <div class="col-md-3 col-sm-6"> | 328 | <div class="col-md-3 col-sm-6"> |
352 | <div class="box-image-text blog"> | 329 | <div class="box-image-text blog"> |
353 | <div class="top"> | 330 | <div class="top"> |
@@ -372,9 +349,9 @@ _________________________________________________________ --> | @@ -372,9 +349,9 @@ _________________________________________________________ --> | ||
372 | </div> | 349 | </div> |
373 | </div> | 350 | </div> |
374 | <!-- /.box-image-text --> | 351 | <!-- /.box-image-text --> |
375 | - | 352 | + |
376 | </div> | 353 | </div> |
377 | - | 354 | + |
378 | <div class="col-md-3 col-sm-6"> | 355 | <div class="col-md-3 col-sm-6"> |
379 | <div class="box-image-text blog"> | 356 | <div class="box-image-text blog"> |
380 | <div class="top"> | 357 | <div class="top"> |
@@ -399,25 +376,27 @@ _________________________________________________________ --> | @@ -399,25 +376,27 @@ _________________________________________________________ --> | ||
399 | </div> | 376 | </div> |
400 | </div> | 377 | </div> |
401 | <!-- /.box-image-text --> | 378 | <!-- /.box-image-text --> |
402 | - | 379 | + |
403 | </div> | 380 | </div> |
404 | - | 381 | + |
405 | </div> | 382 | </div> |
406 | <!-- /.row --> | 383 | <!-- /.row --> |
407 | - | 384 | + |
408 | <!-- *** BLOG HOMEPAGE END *** --> | 385 | <!-- *** BLOG HOMEPAGE END *** --> |
409 | 386 | ||
410 | </div> | 387 | </div> |
411 | - | 388 | + |
412 | </div> | 389 | </div> |
413 | <!-- /.container --> | 390 | <!-- /.container --> |
414 | </section> | 391 | </section> |
415 | <!-- /.bar --> | 392 | <!-- /.bar --> |
393 | + */ | ||
394 | +?> | ||
416 | 395 | ||
417 | <section class="bar background-gray no-mb"> | 396 | <section class="bar background-gray no-mb"> |
418 | <div class="container"> | 397 | <div class="container"> |
419 | <div class="col-md-12"> | 398 | <div class="col-md-12"> |
420 | - SEO тексты тут | 399 | + <?php echo $seo->text; ?> |
421 | </div> | 400 | </div> |
422 | </div> | 401 | </div> |
423 | </section> | 402 | </section> |
frontend/web/css/style.css