Commit e66561dcb60b49a28e45026cb8fa919ebcb1e760
Merge remote-tracking branch 'origin/master'
Showing
13 changed files
with
985 additions
and
588 deletions
Show diff stats
backend/web/assets/.gitignore deleted
frontend/config/main.php
| @@ -64,7 +64,9 @@ | @@ -64,7 +64,9 @@ | ||
| 64 | 'route' => 'category/view', | 64 | 'route' => 'category/view', |
| 65 | 'defaults' => [ 'filter' => '' ], | 65 | 'defaults' => [ 'filter' => '' ], |
| 66 | ], | 66 | ], |
| 67 | - 'robots.txt' => 'site/robots', | 67 | + 'special/<type:(new|sale)>' => 'special/index', |
| 68 | + 'special/<category>/<type:(new|sale)>' => 'special/category', | ||
| 69 | + 'robots.txt' => 'site/robots', | ||
| 68 | ], | 70 | ], |
| 69 | ], | 71 | ], |
| 70 | ], | 72 | ], |
| 1 | +<?php | ||
| 2 | + | ||
| 3 | + namespace frontend\controllers; | ||
| 4 | + | ||
| 5 | + use artbox\catalog\models\Category; | ||
| 6 | + use artbox\catalog\models\Product; | ||
| 7 | + use yii\data\ActiveDataProvider; | ||
| 8 | + use yii\web\Controller; | ||
| 9 | + use yii\web\NotFoundHttpException; | ||
| 10 | + | ||
| 11 | + /** | ||
| 12 | + * Class SpecialController | ||
| 13 | + * | ||
| 14 | + * @package frontend\controllers | ||
| 15 | + */ | ||
| 16 | + class SpecialController extends Controller | ||
| 17 | + { | ||
| 18 | + /** | ||
| 19 | + * Show all specials by type | ||
| 20 | + * | ||
| 21 | + * @param string $type | ||
| 22 | + * | ||
| 23 | + * @return string | ||
| 24 | + */ | ||
| 25 | + public function actionIndex($type) | ||
| 26 | + { | ||
| 27 | + $query = Category::find() | ||
| 28 | + ->with('lang.alias') | ||
| 29 | + ->innerJoinWith('products', false) | ||
| 30 | + ->groupBy('category.id'); | ||
| 31 | + if ($type === 'new') { | ||
| 32 | + $query->where('product.mask & 2 != 0'); | ||
| 33 | + $productQuery = Product::find() | ||
| 34 | + ->where('product.mask & 2 != 0'); | ||
| 35 | + } else { | ||
| 36 | + $query->where('product.mask & 4 != 0'); | ||
| 37 | + $productQuery = Product::find() | ||
| 38 | + ->where('product.mask & 4 != 0'); | ||
| 39 | + } | ||
| 40 | + $categories = $query->all(); | ||
| 41 | + $dataProvider = new ActiveDataProvider( | ||
| 42 | + [ | ||
| 43 | + 'query' => $productQuery, | ||
| 44 | + ] | ||
| 45 | + ); | ||
| 46 | + return $this->render( | ||
| 47 | + 'index', | ||
| 48 | + [ | ||
| 49 | + 'categories' => $categories, | ||
| 50 | + 'dataProvider' => $dataProvider, | ||
| 51 | + ] | ||
| 52 | + ); | ||
| 53 | + } | ||
| 54 | + | ||
| 55 | + /** | ||
| 56 | + * Show specials by type and category | ||
| 57 | + * | ||
| 58 | + * @param $type | ||
| 59 | + * @param $category | ||
| 60 | + * | ||
| 61 | + * @return string | ||
| 62 | + */ | ||
| 63 | + public function actionCategory($type, $category) | ||
| 64 | + { | ||
| 65 | + $model = $this->findCategory($category); | ||
| 66 | + $query = Product::find() | ||
| 67 | + ->with('variants', 'image') | ||
| 68 | + ->innerJoinWith('categories', 'false') | ||
| 69 | + ->where([ 'product_to_category.category_id' => $model->id ]) | ||
| 70 | + ->orderBy( | ||
| 71 | + [ | ||
| 72 | + 'product.sort' => SORT_ASC, | ||
| 73 | + 'product.created_at' => SORT_DESC, | ||
| 74 | + ] | ||
| 75 | + ); | ||
| 76 | + if ($type === 'new') { | ||
| 77 | + $query->andWhere('product.mask & 2 != 0'); | ||
| 78 | + } elseif ($type === 'sale') { | ||
| 79 | + $query->andWhere('product.mask & 4 != 0'); | ||
| 80 | + } | ||
| 81 | + $dataProvider = new ActiveDataProvider( | ||
| 82 | + [ | ||
| 83 | + 'query' => $query, | ||
| 84 | + ] | ||
| 85 | + ); | ||
| 86 | + return $this->render( | ||
| 87 | + 'category', | ||
| 88 | + [ | ||
| 89 | + 'model' => $model, | ||
| 90 | + 'dataProvider' => $dataProvider, | ||
| 91 | + ] | ||
| 92 | + ); | ||
| 93 | + } | ||
| 94 | + | ||
| 95 | + /** | ||
| 96 | + * @param string $category | ||
| 97 | + * | ||
| 98 | + * @return Category | ||
| 99 | + * @throws \yii\web\NotFoundHttpException | ||
| 100 | + */ | ||
| 101 | + protected function findCategory(string $category) | ||
| 102 | + { | ||
| 103 | + /** | ||
| 104 | + * @var Category $model | ||
| 105 | + */ | ||
| 106 | + $model = Category::find() | ||
| 107 | + ->innerJoinWith('lang.alias', false) | ||
| 108 | + ->where([ 'alias.value' => $category ]) | ||
| 109 | + ->one(); | ||
| 110 | + if (!empty($model)) { | ||
| 111 | + return $model; | ||
| 112 | + } else { | ||
| 113 | + throw new NotFoundHttpException('Model not found'); | ||
| 114 | + } | ||
| 115 | + } | ||
| 116 | + } | ||
| 0 | \ No newline at end of file | 117 | \ No newline at end of file |
frontend/views/category/_product_item.php
| @@ -5,89 +5,89 @@ | @@ -5,89 +5,89 @@ | ||
| 5 | use yii\web\View; | 5 | use yii\web\View; |
| 6 | 6 | ||
| 7 | /** | 7 | /** |
| 8 | - * @var View $this | ||
| 9 | - * @var Product $product | 8 | + * @var View $this |
| 9 | + * @var Product $product | ||
| 10 | */ | 10 | */ |
| 11 | ?> | 11 | ?> |
| 12 | <div class="col-md-4 col-sm-6"> | 12 | <div class="col-md-4 col-sm-6"> |
| 13 | - <div class="product"> | ||
| 14 | - <div class="image"> | ||
| 15 | - <?php | ||
| 16 | - echo Html::a( | ||
| 17 | - Html::img( | ||
| 18 | - ImageHelper::set( | ||
| 19 | - $product->image ? $product->image->getPath() : '@frontend/web/img/no-image.png' | ||
| 20 | - ) | ||
| 21 | - ->fillResize(260, 260) | ||
| 22 | - ->render(), | ||
| 23 | - [ | ||
| 24 | - 'class' => 'img-responsive-image1', | ||
| 25 | - ] | ||
| 26 | - ), | 13 | + <div class="product"> |
| 14 | + <div class="image"> | ||
| 15 | + <?php | ||
| 16 | + echo Html::a( | ||
| 17 | + Html::img( | ||
| 18 | + ImageHelper::set( | ||
| 19 | + $product->image ? $product->image->getPath() : '@frontend/web/img/no-image.png' | ||
| 20 | + ) | ||
| 21 | + ->fillResize(260, 260) | ||
| 22 | + ->render(), | ||
| 27 | [ | 23 | [ |
| 28 | - 'product/view', | ||
| 29 | - 'id' => $product->id, | 24 | + 'class' => 'img-responsive-image1', |
| 30 | ] | 25 | ] |
| 31 | - ); | ||
| 32 | - ?> | ||
| 33 | - </div> | ||
| 34 | - <!-- /.image --> | ||
| 35 | - <div class="text"> | ||
| 36 | - <h3> | ||
| 37 | - <?php | ||
| 38 | - echo Html::a( | ||
| 39 | - $product->lang->title, | ||
| 40 | - [ | ||
| 41 | - 'product/view', | ||
| 42 | - 'id' => $product->id, | ||
| 43 | - ] | ||
| 44 | - ); | ||
| 45 | - ?> | ||
| 46 | - </h3> | ||
| 47 | - <p class="price"> | ||
| 48 | - <?php | ||
| 49 | - if ($product->variants[ 0 ]->price_old) { | ||
| 50 | - echo Html::tag('del', $product->variants[ 0 ]->price_old); | ||
| 51 | - } | ||
| 52 | - echo $product->variants[ 0 ]->price; | ||
| 53 | - ?></p> | ||
| 54 | - <p class="buttons"> | ||
| 55 | - <?php | ||
| 56 | - echo Html::a( | ||
| 57 | - Html::tag( | ||
| 58 | - 'i', | ||
| 59 | - '', | ||
| 60 | - [ | ||
| 61 | - 'class' => 'fa fa-shopping-cart', | ||
| 62 | - ] | ||
| 63 | - ) . \Yii::t('app', 'В корзину'), | ||
| 64 | - '#', | ||
| 65 | - [ 'class' => 'btn btn-template-main' ] | ||
| 66 | - ); | ||
| 67 | - ?> | ||
| 68 | - </p> | ||
| 69 | - </div> | ||
| 70 | - <!-- /.text --> | ||
| 71 | - <?php | ||
| 72 | - if ($product->is(1)) { | ||
| 73 | - ?> | ||
| 74 | - <div class="ribbon new"> | ||
| 75 | - <div class="theribbon"><?php echo \Yii::t('app', 'Новое'); ?></div> | ||
| 76 | - <div class="ribbon-background"></div> | ||
| 77 | - </div> | ||
| 78 | - <?php | ||
| 79 | - } | ||
| 80 | - if ($product->is(2)) { | ||
| 81 | - ?> | ||
| 82 | - <div class="ribbon sale"> | ||
| 83 | - <div class="theribbon"><?php echo \Yii::t('app', 'Акция'); ?></div> | ||
| 84 | - <div class="ribbon-background"></div> | ||
| 85 | - </div> | ||
| 86 | - <?php | ||
| 87 | - } | 26 | + ), |
| 27 | + [ | ||
| 28 | + 'product/view', | ||
| 29 | + 'id' => $product->id, | ||
| 30 | + ] | ||
| 31 | + ); | ||
| 88 | ?> | 32 | ?> |
| 89 | - | ||
| 90 | - <!-- /.ribbon --> | ||
| 91 | </div> | 33 | </div> |
| 92 | - <!-- /.product --> | 34 | + <!-- /.image --> |
| 35 | + <div class="text"> | ||
| 36 | + <h3> | ||
| 37 | + <?php | ||
| 38 | + echo Html::a( | ||
| 39 | + $product->lang->title, | ||
| 40 | + [ | ||
| 41 | + 'product/view', | ||
| 42 | + 'id' => $product->id, | ||
| 43 | + ] | ||
| 44 | + ); | ||
| 45 | + ?> | ||
| 46 | + </h3> | ||
| 47 | + <p class="price"> | ||
| 48 | + <?php | ||
| 49 | + if ($product->variants[ 0 ]->price_old) { | ||
| 50 | + echo Html::tag('del', $product->variants[ 0 ]->price_old . ' грн.'); | ||
| 51 | + } | ||
| 52 | + echo ( $product->variants[ 0 ]->price ? : 0 ) . ' грн.'; | ||
| 53 | + ?></p> | ||
| 54 | + <p class="buttons"> | ||
| 55 | + <?php | ||
| 56 | + echo Html::a( | ||
| 57 | + Html::tag( | ||
| 58 | + 'i', | ||
| 59 | + '', | ||
| 60 | + [ | ||
| 61 | + 'class' => 'fa fa-shopping-cart', | ||
| 62 | + ] | ||
| 63 | + ) . \Yii::t('app', 'В корзину'), | ||
| 64 | + '#', | ||
| 65 | + [ 'class' => 'btn btn-template-main' ] | ||
| 66 | + ); | ||
| 67 | + ?> | ||
| 68 | + </p> | ||
| 69 | + </div> | ||
| 70 | + <!-- /.text --> | ||
| 71 | + <?php | ||
| 72 | + if ($product->is('new')) { | ||
| 73 | + ?> | ||
| 74 | + <div class="ribbon new"> | ||
| 75 | + <div class="theribbon"><?php echo \Yii::t('app', 'Новое'); ?></div> | ||
| 76 | + <div class="ribbon-background"></div> | ||
| 77 | + </div> | ||
| 78 | + <?php | ||
| 79 | + } | ||
| 80 | + if ($product->is('akcia')) { | ||
| 81 | + ?> | ||
| 82 | + <div class="ribbon sale"> | ||
| 83 | + <div class="theribbon"><?php echo \Yii::t('app', 'Акция'); ?></div> | ||
| 84 | + <div class="ribbon-background"></div> | ||
| 85 | + </div> | ||
| 86 | + <?php | ||
| 87 | + } | ||
| 88 | + ?> | ||
| 89 | + | ||
| 90 | + <!-- /.ribbon --> | ||
| 91 | + </div> | ||
| 92 | + <!-- /.product --> | ||
| 93 | </div> | 93 | </div> |
frontend/views/category/view.php
| @@ -96,11 +96,41 @@ _________________________________________________________ --> | @@ -96,11 +96,41 @@ _________________________________________________________ --> | ||
| 96 | <?php | 96 | <?php |
| 97 | } | 97 | } |
| 98 | ?> | 98 | ?> |
| 99 | + | ||
| 100 | + <?php | ||
| 101 | + if (!empty($filterHelper->getFilter())) { | ||
| 102 | + echo Html::a( | ||
| 103 | + Html::icon( | ||
| 104 | + 'times-circle', | ||
| 105 | + [ | ||
| 106 | + 'prefix' => 'fa fa-', | ||
| 107 | + ] | ||
| 108 | + ) . Html::tag( | ||
| 109 | + 'span', | ||
| 110 | + \Yii::t('app', 'Сбросить фильтр'), | ||
| 111 | + [ | ||
| 112 | + 'class' => 'hidden-sm', | ||
| 113 | + ] | ||
| 114 | + ), | ||
| 115 | + [ | ||
| 116 | + 'view', | ||
| 117 | + 'category' => $model->lang->alias->value, | ||
| 118 | + ], | ||
| 119 | + [ | ||
| 120 | + 'class' => 'btn btn-xs btn-danger', | ||
| 121 | + ] | ||
| 122 | + ); | ||
| 123 | + } | ||
| 124 | + ?> | ||
| 99 | 125 | ||
| 100 | <?php | 126 | <?php |
| 101 | $brands = $filterHelper->getBrands($model); | 127 | $brands = $filterHelper->getBrands($model); |
| 102 | if (!empty($brands)) { | 128 | if (!empty($brands)) { |
| 103 | ?> | 129 | ?> |
| 130 | + <a class="btn btn-xs btn-danger reset-filters" href="#"> | ||
| 131 | + <i class="fa fa-times-circle"></i> | ||
| 132 | + <span class="hidden-sm">Сбросить все фильтры</span> | ||
| 133 | + </a> | ||
| 104 | <div class="panel-heading"> | 134 | <div class="panel-heading"> |
| 105 | <h3 class="panel-title"><?php echo \Yii::t('app', 'Бренды'); ?></h3> | 135 | <h3 class="panel-title"><?php echo \Yii::t('app', 'Бренды'); ?></h3> |
| 106 | </div> | 136 | </div> |
frontend/views/layouts/main.php
| @@ -77,526 +77,527 @@ | @@ -77,526 +77,527 @@ | ||
| 77 | ?> | 77 | ?> |
| 78 | 78 | ||
| 79 | <?php $this->beginPage() ?> | 79 | <?php $this->beginPage() ?> |
| 80 | - | ||
| 81 | - <!DOCTYPE html> | ||
| 82 | - <html lang="<?= \Yii::$app->language ?>"> | ||
| 83 | - <head> | ||
| 84 | - <meta charset="<?= \Yii::$app->charset ?>"> | ||
| 85 | - <meta name="viewport" content="width=device-width, initial-scale=1"> | ||
| 86 | - <?= Html::csrfMetaTags() ?> | ||
| 87 | - <title><?= Html::encode($seo->title) ?></title> | ||
| 88 | - <?php $this->head() ?> | ||
| 89 | - </head> | ||
| 90 | - <body> | ||
| 91 | - <?php $this->beginBody() ?> | ||
| 92 | - <!-- Google Analytics --> | ||
| 93 | - <script> | ||
| 94 | - (function(i, s, o, g, r, a, m) { | ||
| 95 | - i[ 'GoogleAnalyticsObject' ] = r; | ||
| 96 | - i[ r ] = i[ r ] || function() { | ||
| 97 | - (i[ r ].q = i[ r ].q || []).push(arguments) | ||
| 98 | - }, i[ r ].l = 1 * new Date(); | ||
| 99 | - a = s.createElement(o), m = s.getElementsByTagName(o)[ 0 ]; | ||
| 100 | - a.async = 1; | ||
| 101 | - a.src = g; | ||
| 102 | - m.parentNode.insertBefore(a, m) | ||
| 103 | - })(window, document, 'script', 'https://www.google-analytics.com/analytics.js', 'ga'); | ||
| 104 | - | ||
| 105 | - ga('create', <?=$settings->ga_code?>, 'auto'); | ||
| 106 | - ga('send', 'pageview'); | 80 | + |
| 81 | + <!DOCTYPE html> | ||
| 82 | + <html lang="<?= \Yii::$app->language ?>"> | ||
| 83 | + <head> | ||
| 84 | + <meta charset="<?= \Yii::$app->charset ?>"> | ||
| 85 | + <meta name="viewport" content="width=device-width, initial-scale=1"> | ||
| 86 | + <?= Html::csrfMetaTags() ?> | ||
| 87 | + <title><?= Html::encode($seo->title) ?></title> | ||
| 88 | + <?php $this->head() ?> | ||
| 89 | + </head> | ||
| 90 | + <body> | ||
| 91 | + <?php $this->beginBody() ?> | ||
| 92 | + <!-- Google Analytics --> | ||
| 93 | + <script> | ||
| 94 | + (function(i, s, o, g, r, a, m) { | ||
| 95 | + i[ 'GoogleAnalyticsObject' ] = r; | ||
| 96 | + i[ r ] = i[ r ] || function() { | ||
| 97 | + (i[ r ].q = i[ r ].q || []).push(arguments) | ||
| 98 | + }, i[ r ].l = 1 * new Date(); | ||
| 99 | + a = s.createElement(o), m = s.getElementsByTagName(o)[ 0 ]; | ||
| 100 | + a.async = 1; | ||
| 101 | + a.src = g; | ||
| 102 | + m.parentNode.insertBefore(a, m) | ||
| 103 | + })(window, document, 'script', 'https://www.google-analytics.com/analytics.js', 'ga'); | ||
| 104 | + | ||
| 105 | + ga('create', <?=$settings->ga_code?>, 'auto'); | ||
| 106 | + ga('send', 'pageview'); | ||
| 107 | + | ||
| 108 | + </script> | ||
| 109 | + <div id="all"> | ||
| 110 | + <header> | ||
| 111 | + | ||
| 112 | + <!-- *** TOP *** | ||
| 113 | +_________________________________________________________ --> | ||
| 114 | + <div id="top" class="hidden-sm hidden-xs"> | ||
| 115 | + <div class="container"> | ||
| 116 | + <div class="row"> | ||
| 117 | + <div class="col-xs-6 left-top-nav"> | ||
| 118 | + <?php | ||
| 119 | + foreach ($pages as $page) { | ||
| 120 | + echo Html::a( | ||
| 121 | + $page->lang->title, | ||
| 122 | + [ | ||
| 123 | + 'page/view', | ||
| 124 | + 'id' => $page->id, | ||
| 125 | + ] | ||
| 126 | + ); | ||
| 127 | + } | ||
| 128 | + ?> | ||
| 129 | + </div> | ||
| 130 | + <div class="col-xs-6 right-top-nav"> | ||
| 131 | + <div class="inline-block lang-link"> | ||
| 132 | + <?php | ||
| 133 | + echo LangLink::widget(); | ||
| 134 | + ?> | ||
| 135 | + </div> | ||
| 136 | + <div class="inline-block"> | ||
| 137 | + <span class="top-phone"><i class="fa fa-phone"></i> <?php echo $settings->phone; ?></span> | ||
| 138 | + <a href="#" class="link-underline_dott"> | ||
| 139 | + Обратный звонок | ||
| 140 | + </a> | ||
| 141 | + </div> | ||
| 142 | + <div class="inline-block login"> | ||
| 143 | + <a href="#" data-toggle="modal" data-target="#login-modal"><i class="fa fa-sign-in"></i> | ||
| 144 | + <span>Вход</span></a> | ||
| 145 | + </div> | ||
| 146 | + </div> | ||
| 147 | + </div> | ||
| 148 | + </div> | ||
| 149 | + </div> | ||
| 150 | + | ||
| 151 | + <!-- *** TOP END *** --> | ||
| 152 | + | ||
| 153 | + <!-- *** NAVBAR *** | ||
| 154 | + _________________________________________________________ --> | ||
| 155 | + | ||
| 156 | + <div class="navbar-affixed-top" data-spy="affix" data-offset-top="200"> | ||
| 107 | 157 | ||
| 108 | - </script> | ||
| 109 | - <div id="all"> | ||
| 110 | - <header> | ||
| 111 | - | ||
| 112 | - <!-- *** TOP *** | ||
| 113 | - _________________________________________________________ --> | ||
| 114 | - <div id="top" class="hidden-sm hidden-xs"> | ||
| 115 | - <div class="container"> | ||
| 116 | - <div class="row"> | ||
| 117 | - <div class="col-xs-6 left-top-nav"> | ||
| 118 | - <?php | ||
| 119 | - foreach ($pages as $page) { | ||
| 120 | - echo Html::a( | ||
| 121 | - $page->lang->title, | ||
| 122 | - [ | ||
| 123 | - 'page/view', | ||
| 124 | - 'id' => $page->id, | ||
| 125 | - ] | ||
| 126 | - ); | ||
| 127 | - } | ||
| 128 | - ?> | ||
| 129 | - </div> | ||
| 130 | - <div class="col-xs-6 right-top-nav"> | ||
| 131 | - <div class="inline-block lang-link"> | ||
| 132 | - <?php | ||
| 133 | - echo LangLink::widget(); | ||
| 134 | - ?> | ||
| 135 | - </div> | ||
| 136 | - <div class="inline-block"> | ||
| 137 | - <span class="top-phone"><i class="fa fa-phone"></i> <?php echo $settings->phone; ?></span> | ||
| 138 | - <a href="#" class="link-underline_dott"> | ||
| 139 | - Обратный звонок | ||
| 140 | - </a> | ||
| 141 | - </div> | ||
| 142 | - <div class="inline-block login"> | ||
| 143 | - <a href="#" data-toggle="modal" data-target="#login-modal"><i class="fa fa-sign-in"></i> | ||
| 144 | - <span>Вход</span></a> | ||
| 145 | - </div> | ||
| 146 | - </div> | ||
| 147 | - </div> | ||
| 148 | - </div> | ||
| 149 | - </div> | ||
| 150 | - | ||
| 151 | - <!-- *** TOP END *** --> | ||
| 152 | - | ||
| 153 | - <!-- *** NAVBAR *** | ||
| 154 | - _________________________________________________________ --> | ||
| 155 | - | ||
| 156 | - <div class="navbar-affixed-top" data-spy="affix" data-offset-top="200"> | ||
| 157 | - | ||
| 158 | - <div class="navbar navbar-default yamm" role="navigation" id="navbar"> | ||
| 159 | - | ||
| 160 | - <div class="container"> | ||
| 161 | - <div class="navbar-header"> | ||
| 162 | - <?php | ||
| 163 | - echo Html::a( | ||
| 164 | - Html::img( | ||
| 165 | - $logo, | ||
| 166 | - [ | ||
| 167 | - 'alt' => 'logo', | ||
| 168 | - ] | ||
| 169 | - ), | ||
| 170 | - [ '/site/index' ], | ||
| 171 | - [ | ||
| 172 | - 'class' => 'navbar-brand home', | ||
| 173 | - ] | ||
| 174 | - ) | ||
| 175 | - ?> | ||
| 176 | - <div class="navbar-buttons"> | ||
| 177 | - <button type="button" class="navbar-toggle btn-template-main" data-toggle="collapse" data-target="#navigation"> | 158 | + <div class="navbar navbar-default yamm" role="navigation" id="navbar"> |
| 159 | + | ||
| 160 | + <div class="container"> | ||
| 161 | + <div class="navbar-header"> | ||
| 162 | + <?php | ||
| 163 | + echo Html::a( | ||
| 164 | + Html::img( | ||
| 165 | + $logo, | ||
| 166 | + [ | ||
| 167 | + 'alt' => 'logo', | ||
| 168 | + ] | ||
| 169 | + ), | ||
| 170 | + [ '/site/index' ], | ||
| 171 | + [ | ||
| 172 | + 'class' => 'navbar-brand home', | ||
| 173 | + ] | ||
| 174 | + ) | ||
| 175 | + ?> | ||
| 176 | + <div class="navbar-buttons"> | ||
| 177 | + <button type="button" class="navbar-toggle btn-template-main" data-toggle="collapse" data-target="#navigation"> | ||
| 178 | <span class="sr-only"><?php echo \Yii::t( | 178 | <span class="sr-only"><?php echo \Yii::t( |
| 179 | 'app', | 179 | 'app', |
| 180 | 'Toggle navigation' | 180 | 'Toggle navigation' |
| 181 | ); ?></span> | 181 | ); ?></span> |
| 182 | - <i class="fa fa-align-justify"></i> | ||
| 183 | - </button> | ||
| 184 | - </div> | ||
| 185 | - </div> | ||
| 186 | - <!--/.navbar-header --> | ||
| 187 | - | ||
| 188 | - <div class="navbar-collapse collapse navbar-left" id="navigation"> | ||
| 189 | - <ul class="nav navbar-nav navbar-left"> | ||
| 190 | - <li class="main-nav-item active"> | ||
| 191 | - <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( | ||
| 192 | - 'app', | ||
| 193 | - 'Каталог' | ||
| 194 | - ); ?><i class="fa fa-bars" aria-hidden="true"></i></span></a> | ||
| 195 | - <?php | ||
| 196 | - if (!$isHome) { | ||
| 197 | - echo $this->render( | ||
| 198 | - '_category_menu', | ||
| 199 | - [ | ||
| 200 | - 'isHome' => $isHome, | ||
| 201 | - ] | ||
| 202 | - ); | ||
| 203 | - } | ||
| 204 | - ?> | ||
| 205 | - </li> | ||
| 206 | - <li class="main-nav-item"> | ||
| 207 | - <?php | ||
| 208 | - echo Html::a( | ||
| 209 | - \Yii::t('app', 'Акции'), | ||
| 210 | - [ | ||
| 211 | - '/product/category', | ||
| 212 | - 'sale' => true, | ||
| 213 | - ] | ||
| 214 | - ); | ||
| 215 | - ?> | ||
| 216 | - </li> | ||
| 217 | - <li class="main-nav-item"> | ||
| 218 | - <?php | ||
| 219 | - echo Html::a( | ||
| 220 | - \Yii::t('app', 'Новинки'), | ||
| 221 | - [ | ||
| 222 | - '/product/category', | ||
| 223 | - 'new' => true, | ||
| 224 | - ] | ||
| 225 | - ); | ||
| 226 | - ?> | ||
| 227 | - </li> | ||
| 228 | - <li class="main-nav-item"> | ||
| 229 | - <?php | ||
| 230 | - echo Html::a( | ||
| 231 | - \Yii::t('app', 'Блог'), | ||
| 232 | - [ | ||
| 233 | - '/blog/index', | ||
| 234 | - ] | ||
| 235 | - ); | ||
| 236 | - ?> | ||
| 237 | - </li> | ||
| 238 | - </ul> | ||
| 239 | - </div> | ||
| 240 | - <!--/.nav-collapse --> | ||
| 241 | - | ||
| 242 | - <div class="cart-item" id="cart"> | ||
| 243 | - <?php | ||
| 244 | - echo Html::a( | ||
| 245 | - Html::tag( | ||
| 246 | - 'span', | ||
| 247 | - \Yii::t('app', 'Корзина'), | ||
| 248 | - [ | ||
| 249 | - 'class' => 'sub-title', | ||
| 250 | - ] | ||
| 251 | - ), | ||
| 252 | - [ | ||
| 253 | - '/basket/index', | ||
| 254 | - ], | ||
| 255 | - [ | ||
| 256 | - 'class' => 'cart-item-link', | ||
| 257 | - ] | ||
| 258 | - ); | ||
| 259 | - ?> | ||
| 260 | - </div> | ||
| 261 | - | ||
| 262 | - <div class="search-block" id="search"> | ||
| 263 | - <?php | ||
| 264 | - /** | ||
| 265 | - * @var Model $search | ||
| 266 | - */ | ||
| 267 | - $search = \Yii::createObject(SearchForm::className()); | ||
| 268 | - $searchForm = ActiveForm::begin( | ||
| 269 | - [ | ||
| 270 | - 'action' => [ '/search/index' ], | ||
| 271 | - 'id' => 'search-form', | ||
| 272 | - 'method' => 'get', | ||
| 273 | - 'options' => [ | ||
| 274 | - 'class' => 'navbar-form', | ||
| 275 | - 'role' => 'search', | ||
| 276 | - ], | ||
| 277 | - ] | ||
| 278 | - ); | ||
| 279 | - echo Html::beginTag( | ||
| 280 | - 'div', | ||
| 281 | - [ | ||
| 282 | - 'class' => 'input-group', | ||
| 283 | - ] | ||
| 284 | - ); | ||
| 285 | - echo $searchForm->field( | ||
| 286 | - $search, | ||
| 287 | - 'word', | ||
| 288 | - [ | ||
| 289 | - 'options' => [ | ||
| 290 | - 'tag' => false, | ||
| 291 | - ], | ||
| 292 | - ] | ||
| 293 | - ) | ||
| 294 | - ->label(false) | ||
| 295 | - ->textInput( | ||
| 296 | - [ | ||
| 297 | - 'placeholder' => $search->getAttributeLabel('word'), | ||
| 298 | - ] | ||
| 299 | - ); | ||
| 300 | - echo Html::tag( | ||
| 301 | - 'span', | ||
| 302 | - Html::submitButton( | ||
| 303 | - Html::tag( | ||
| 304 | - 'i', | ||
| 305 | - '', | ||
| 306 | - [ | ||
| 307 | - 'class' => 'fa fa-search', | ||
| 308 | - ] | ||
| 309 | - ), | ||
| 310 | - [ | ||
| 311 | - 'class' => 'btn btn-template-main', | ||
| 312 | - ] | ||
| 313 | - ), | ||
| 314 | - [ | ||
| 315 | - 'class' => 'input-group-btn', | ||
| 316 | - ] | ||
| 317 | - ); | ||
| 318 | - echo Html::endTag('div'); | ||
| 319 | - $searchForm::end(); | ||
| 320 | - ?> | ||
| 321 | - </div> | ||
| 322 | - | ||
| 323 | - | ||
| 324 | - <!--/.nav-collapse --> | ||
| 325 | - </div> | ||
| 326 | - </div> | ||
| 327 | - <!-- /#navbar --> | ||
| 328 | - </div> | ||
| 329 | - <!-- *** NAVBAR END *** --> | ||
| 330 | - </header> | ||
| 331 | - | ||
| 332 | - <!-- *** LOGIN MODAL *** | ||
| 333 | -_________________________________________________________ --> | ||
| 334 | - | ||
| 335 | - <div class="modal fade" id="login-modal" tabindex="-1" role="dialog" aria-labelledby="Login" aria-hidden="true"> | ||
| 336 | - <div class="modal-dialog modal-sm"> | ||
| 337 | - | ||
| 338 | - <div class="modal-content"> | ||
| 339 | - <div class="modal-header"> | ||
| 340 | - <button type="button" class="close" data-dismiss="modal" aria-hidden="true">×</button> | ||
| 341 | - <h4 class="modal-title" id="Login"> | ||
| 342 | - <?php echo \Yii::t('app', 'Customer login'); ?> | ||
| 343 | - </h4> | ||
| 344 | - </div> | ||
| 345 | - <div class="modal-body"> | ||
| 346 | - <?php | ||
| 347 | - $login = ActiveForm::begin( | ||
| 348 | - [ | ||
| 349 | - 'action' => [ '/site/login' ], | ||
| 350 | - ] | ||
| 351 | - ); | ||
| 352 | - echo $login->field($loginForm, 'returnUrl') | ||
| 353 | - ->label(false) | ||
| 354 | - ->hiddenInput(); | ||
| 355 | - echo $login->field($loginForm, 'username') | ||
| 356 | - ->label(false) | ||
| 357 | - ->textInput( | ||
| 358 | - [ | ||
| 359 | - 'placeholder' => $loginForm->getAttributeLabel('username'), | ||
| 360 | - ] | ||
| 361 | - ); | ||
| 362 | - echo $login->field($loginForm, 'username') | ||
| 363 | - ->label(false) | ||
| 364 | - ->passwordInput( | ||
| 365 | - [ | ||
| 366 | - 'placeholder' => $loginForm->getAttributeLabel('password'), | ||
| 367 | - ] | ||
| 368 | - ); | ||
| 369 | - $login::end(); | ||
| 370 | - ?> | ||
| 371 | - <p class="text-center text-muted"> | ||
| 372 | - <?php echo \Yii::t('app', 'Not registered yet?'); ?></p> | ||
| 373 | - <p class="text-center text-muted"> | ||
| 374 | - <?php | ||
| 375 | - echo Html::a( | ||
| 376 | - Html::tag('strong', \Yii::t('app', 'Register now! ')), | ||
| 377 | - [ | ||
| 378 | - '/site/signup', | ||
| 379 | - ] | ||
| 380 | - ); | ||
| 381 | - echo \Yii::t( | ||
| 382 | - 'app', | ||
| 383 | - 'It is easy and done in 1 minute and gives you access to special discounts and much more!' | ||
| 384 | - ); | ||
| 385 | - ?> | ||
| 386 | - </p> | ||
| 387 | - | ||
| 388 | - </div> | ||
| 389 | - </div> | ||
| 390 | - </div> | 182 | + <i class="fa fa-align-justify"></i> |
| 183 | + </button> | ||
| 184 | + </div> | ||
| 391 | </div> | 185 | </div> |
| 392 | - | ||
| 393 | - <!-- *** LOGIN MODAL END *** --> | 186 | + <!--/.navbar-header --> |
| 394 | 187 | ||
| 395 | - <!-- *** Breadcrumbs *** --> | ||
| 396 | - <?php | ||
| 397 | - if (!$isHome) { | ||
| 398 | - ?> | ||
| 399 | - <div id="heading-breadcrumbs"> | ||
| 400 | - <div class="container"> | ||
| 401 | - <?= Breadcrumbs::widget( | 188 | + <div class="navbar-collapse collapse navbar-left" id="navigation"> |
| 189 | + <ul class="nav navbar-nav navbar-left"> | ||
| 190 | + <li class="main-nav-item active"> | ||
| 191 | + <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( | ||
| 192 | + 'app', | ||
| 193 | + 'Каталог' | ||
| 194 | + ); ?><i class="fa fa-bars" aria-hidden="true"></i></span></a> | ||
| 195 | + <?php | ||
| 196 | + if (!$isHome) { | ||
| 197 | + echo $this->render( | ||
| 198 | + '_category_menu', | ||
| 402 | [ | 199 | [ |
| 403 | - 'links' => isset( $this->params[ 'breadcrumbs' ] ) ? $this->params[ 'breadcrumbs' ] : [], | ||
| 404 | - 'homeLink' => [ | ||
| 405 | - 'label' => \Yii::t('app', 'Home'), | ||
| 406 | - 'url' => [ '/site/index' ], | ||
| 407 | - ], | 200 | + 'isHome' => $isHome, |
| 408 | ] | 201 | ] |
| 409 | - ) ?> | ||
| 410 | - </div> | ||
| 411 | - </div> | 202 | + ); |
| 203 | + } | ||
| 204 | + ?> | ||
| 205 | + </li> | ||
| 206 | + <li class="main-nav-item"> | ||
| 412 | <?php | 207 | <?php |
| 413 | - } | ||
| 414 | - ?> | ||
| 415 | - <!-- *** crumbs END *** --> | ||
| 416 | - | ||
| 417 | - <?= $content ?> | 208 | + echo Html::a( |
| 209 | + \Yii::t('app', 'Акции'), | ||
| 210 | + [ | ||
| 211 | + '/special/index', | ||
| 212 | + 'type' => 'sale', | ||
| 213 | + ] | ||
| 214 | + ); | ||
| 215 | + ?> | ||
| 216 | + </li> | ||
| 217 | + <li class="main-nav-item"> | ||
| 218 | + <?php | ||
| 219 | + echo Html::a( | ||
| 220 | + \Yii::t('app', 'Новинки'), | ||
| 221 | + [ | ||
| 222 | + '/special/index', | ||
| 223 | + 'type' => 'new', | ||
| 224 | + ] | ||
| 225 | + ); | ||
| 226 | + ?> | ||
| 227 | + </li> | ||
| 228 | + <li class="main-nav-item"> | ||
| 229 | + <?php | ||
| 230 | + echo Html::a( | ||
| 231 | + \Yii::t('app', 'Блог'), | ||
| 232 | + [ | ||
| 233 | + '/blog/index', | ||
| 234 | + ] | ||
| 235 | + ); | ||
| 236 | + ?> | ||
| 237 | + </li> | ||
| 238 | + </ul> | ||
| 239 | + </div> | ||
| 240 | + <!--/.nav-collapse --> | ||
| 418 | 241 | ||
| 419 | - <!-- *** FOOTER *** | ||
| 420 | - _________________________________________________________ --> | 242 | + <div class="cart-item" id="cart"> |
| 243 | + <span class="badge">0</span> | ||
| 244 | + <?php | ||
| 245 | + echo Html::a( | ||
| 246 | + Html::tag( | ||
| 247 | + 'span', | ||
| 248 | + \Yii::t('app', 'Корзина'), | ||
| 249 | + [ | ||
| 250 | + 'class' => 'sub-title', | ||
| 251 | + ] | ||
| 252 | + ), | ||
| 253 | + [ | ||
| 254 | + '/basket/index', | ||
| 255 | + ], | ||
| 256 | + [ | ||
| 257 | + 'class' => 'cart-item-link', | ||
| 258 | + ] | ||
| 259 | + ); | ||
| 260 | + ?> | ||
| 261 | + </div> | ||
| 421 | 262 | ||
| 422 | - <footer id="footer"> | ||
| 423 | - <div class="container"> | ||
| 424 | - <div class="col-md-3 col-sm-6"> | ||
| 425 | - <h4><?php echo \Yii::t('app', 'About us'); ?></h4> | ||
| 426 | - | ||
| 427 | - <p><?php echo $settings->about; ?></p> | ||
| 428 | - | ||
| 429 | - <hr> | ||
| 430 | - | ||
| 431 | - <h4>Join our monthly newsletter</h4> | ||
| 432 | - <?php | ||
| 433 | - $newsletterForm = ActiveForm::begin( | ||
| 434 | - [ | ||
| 435 | - 'action' => '/site/subscribe', | ||
| 436 | - ] | ||
| 437 | - ); | ||
| 438 | - echo Html::beginTag( | ||
| 439 | - 'div', | ||
| 440 | - [ | ||
| 441 | - 'class' => 'input-group', | ||
| 442 | - ] | ||
| 443 | - ); | ||
| 444 | - echo $newsletterForm->field( | ||
| 445 | - $newsletter, | ||
| 446 | - 'email', | ||
| 447 | - [ | ||
| 448 | - 'options' => [ | ||
| 449 | - 'tag' => false, | ||
| 450 | - ], | ||
| 451 | - ] | ||
| 452 | - ) | ||
| 453 | - ->label(false) | ||
| 454 | - ->textInput(); | ||
| 455 | - echo Html::tag( | ||
| 456 | - 'span', | ||
| 457 | - Html::button( | ||
| 458 | - Html::tag( | ||
| 459 | - 'i', | ||
| 460 | - '', | 263 | + <div class="search-block" id="search"> |
| 264 | + <?php | ||
| 265 | + /** | ||
| 266 | + * @var Model $search | ||
| 267 | + */ | ||
| 268 | + $search = \Yii::createObject(SearchForm::className()); | ||
| 269 | + $searchForm = ActiveForm::begin( | ||
| 270 | + [ | ||
| 271 | + 'action' => [ '/search/index' ], | ||
| 272 | + 'id' => 'search-form', | ||
| 273 | + 'method' => 'get', | ||
| 274 | + 'options' => [ | ||
| 275 | + 'class' => 'navbar-form', | ||
| 276 | + 'role' => 'search', | ||
| 277 | + ], | ||
| 278 | + ] | ||
| 279 | + ); | ||
| 280 | + echo Html::beginTag( | ||
| 281 | + 'div', | ||
| 282 | + [ | ||
| 283 | + 'class' => 'input-group', | ||
| 284 | + ] | ||
| 285 | + ); | ||
| 286 | + echo $searchForm->field( | ||
| 287 | + $search, | ||
| 288 | + 'word', | ||
| 289 | + [ | ||
| 290 | + 'options' => [ | ||
| 291 | + 'tag' => false, | ||
| 292 | + ], | ||
| 293 | + ] | ||
| 294 | + ) | ||
| 295 | + ->label(false) | ||
| 296 | + ->textInput( | ||
| 461 | [ | 297 | [ |
| 462 | - 'class' => 'fa fa-send', | 298 | + 'placeholder' => $search->getAttributeLabel('word'), |
| 463 | ] | 299 | ] |
| 464 | - ), | ||
| 465 | - [ | ||
| 466 | - 'class' => 'btn btn-default', | ||
| 467 | - ] | ||
| 468 | - ), | 300 | + ); |
| 301 | + echo Html::tag( | ||
| 302 | + 'span', | ||
| 303 | + Html::submitButton( | ||
| 304 | + Html::tag( | ||
| 305 | + 'i', | ||
| 306 | + '', | ||
| 469 | [ | 307 | [ |
| 470 | - 'class' => 'input-group-btn', | 308 | + 'class' => 'fa fa-search', |
| 471 | ] | 309 | ] |
| 472 | - ); | ||
| 473 | - echo Html::endTag('div'); | ||
| 474 | - $newsletterForm::end(); | ||
| 475 | - ?> | ||
| 476 | - <hr class="hidden-md hidden-lg hidden-sm"> | ||
| 477 | - | ||
| 478 | - </div> | ||
| 479 | - <!-- /.col-md-3 --> | ||
| 480 | - | ||
| 481 | - <div class="col-md-3 col-sm-6"> | 310 | + ), |
| 311 | + [ | ||
| 312 | + 'class' => 'btn btn-template-main', | ||
| 313 | + ] | ||
| 314 | + ), | ||
| 315 | + [ | ||
| 316 | + 'class' => 'input-group-btn', | ||
| 317 | + ] | ||
| 318 | + ); | ||
| 319 | + echo Html::endTag('div'); | ||
| 320 | + $searchForm::end(); | ||
| 321 | + ?> | ||
| 322 | + </div> | ||
| 323 | + | ||
| 324 | + | ||
| 325 | + <!--/.nav-collapse --> | ||
| 326 | + </div> | ||
| 327 | + </div> | ||
| 328 | + <!-- /#navbar --> | ||
| 329 | + </div> | ||
| 330 | + <!-- *** NAVBAR END *** --> | ||
| 331 | + </header> | ||
| 482 | 332 | ||
| 483 | - <h4><?php echo \Yii::t('app', 'Blog'); ?></h4> | 333 | + <!-- *** LOGIN MODAL *** |
| 334 | +_________________________________________________________ --> | ||
| 484 | 335 | ||
| 485 | - <div class="blog-entries"> | ||
| 486 | - <div class="item same-height-row clearfix"> | ||
| 487 | - <div class="image same-height-always"> | ||
| 488 | - <a href="#"> | ||
| 489 | - <img class="img-responsive" src="/img/detailsquare.jpg" alt=""> | ||
| 490 | - </a> | ||
| 491 | - </div> | ||
| 492 | - <div class="name same-height-always"> | ||
| 493 | - <h5><a href="#">Blog post name</a></h5> | ||
| 494 | - </div> | ||
| 495 | - </div> | ||
| 496 | - | ||
| 497 | - <div class="item same-height-row clearfix"> | ||
| 498 | - <div class="image same-height-always"> | ||
| 499 | - <a href="#"> | ||
| 500 | - <img class="img-responsive" src="/img/detailsquare.jpg" alt=""> | ||
| 501 | - </a> | ||
| 502 | - </div> | ||
| 503 | - <div class="name same-height-always"> | ||
| 504 | - <h5><a href="#">Blog post name</a></h5> | ||
| 505 | - </div> | ||
| 506 | - </div> | 336 | + <div class="modal fade" id="login-modal" tabindex="-1" role="dialog" aria-labelledby="Login" aria-hidden="true"> |
| 337 | + <div class="modal-dialog modal-sm"> | ||
| 507 | 338 | ||
| 508 | - <div class="item same-height-row clearfix"> | ||
| 509 | - <div class="image same-height-always"> | ||
| 510 | - <a href="#"> | ||
| 511 | - <img class="img-responsive" src="/img/detailsquare.jpg" alt=""> | ||
| 512 | - </a> | ||
| 513 | - </div> | ||
| 514 | - <div class="name same-height-always"> | ||
| 515 | - <h5><a href="#">Very very long blog post name</a></h5> | ||
| 516 | - </div> | ||
| 517 | - </div> | ||
| 518 | - </div> | ||
| 519 | - | ||
| 520 | - <hr class="hidden-md hidden-lg"> | ||
| 521 | - | ||
| 522 | - </div> | ||
| 523 | - <!-- /.col-md-3 --> | ||
| 524 | - | ||
| 525 | - <div class="col-md-3 col-sm-6"> | 339 | + <div class="modal-content"> |
| 340 | + <div class="modal-header"> | ||
| 341 | + <button type="button" class="close" data-dismiss="modal" aria-hidden="true">×</button> | ||
| 342 | + <h4 class="modal-title" id="Login"> | ||
| 343 | + <?php echo \Yii::t('app', 'Customer login'); ?> | ||
| 344 | + </h4> | ||
| 345 | + </div> | ||
| 346 | + <div class="modal-body"> | ||
| 347 | + <?php | ||
| 348 | + $login = ActiveForm::begin( | ||
| 349 | + [ | ||
| 350 | + 'action' => [ '/site/login' ], | ||
| 351 | + ] | ||
| 352 | + ); | ||
| 353 | + echo $login->field($loginForm, 'returnUrl') | ||
| 354 | + ->label(false) | ||
| 355 | + ->hiddenInput(); | ||
| 356 | + echo $login->field($loginForm, 'username') | ||
| 357 | + ->label(false) | ||
| 358 | + ->textInput( | ||
| 359 | + [ | ||
| 360 | + 'placeholder' => $loginForm->getAttributeLabel('username'), | ||
| 361 | + ] | ||
| 362 | + ); | ||
| 363 | + echo $login->field($loginForm, 'username') | ||
| 364 | + ->label(false) | ||
| 365 | + ->passwordInput( | ||
| 366 | + [ | ||
| 367 | + 'placeholder' => $loginForm->getAttributeLabel('password'), | ||
| 368 | + ] | ||
| 369 | + ); | ||
| 370 | + $login::end(); | ||
| 371 | + ?> | ||
| 372 | + <p class="text-center text-muted"> | ||
| 373 | + <?php echo \Yii::t('app', 'Not registered yet?'); ?></p> | ||
| 374 | + <p class="text-center text-muted"> | ||
| 375 | + <?php | ||
| 376 | + echo Html::a( | ||
| 377 | + Html::tag('strong', \Yii::t('app', 'Register now! ')), | ||
| 378 | + [ | ||
| 379 | + '/site/signup', | ||
| 380 | + ] | ||
| 381 | + ); | ||
| 382 | + echo \Yii::t( | ||
| 383 | + 'app', | ||
| 384 | + 'It is easy and done in 1 minute and gives you access to special discounts and much more!' | ||
| 385 | + ); | ||
| 386 | + ?> | ||
| 387 | + </p> | ||
| 388 | + | ||
| 389 | + </div> | ||
| 390 | + </div> | ||
| 391 | + </div> | ||
| 392 | + </div> | ||
| 526 | 393 | ||
| 527 | - <h4><?php echo \Yii::t('app', 'Contact'); ?></h4> | ||
| 528 | - | ||
| 529 | - <p> | ||
| 530 | - <?php | ||
| 531 | - echo $settings->name ? Html::tag('strong', $settings->name) : ''; | ||
| 532 | - echo $settings->office ? Html::tag('br') . $settings->office : ''; | ||
| 533 | - echo $settings->street ? Html::tag( | ||
| 534 | - 'br' | ||
| 535 | - ) . $settings->street . ' ' . $settings->house : ''; | ||
| 536 | - echo $settings->city ? Html::tag('br') . $settings->city : ''; | ||
| 537 | - echo $settings->country ? Html::tag('br') . Html::tag( | ||
| 538 | - 'strong', | ||
| 539 | - $settings->country | ||
| 540 | - ) : ''; | ||
| 541 | - ?> | ||
| 542 | - </p> | 394 | + <!-- *** LOGIN MODAL END *** --> |
| 543 | 395 | ||
| 544 | - <a href="contact.html" class="btn btn-small btn-template-main">Go to contact page</a> | ||
| 545 | - | ||
| 546 | - <hr class="hidden-md hidden-lg hidden-sm"> | ||
| 547 | - | ||
| 548 | - </div> | ||
| 549 | - <!-- /.col-md-3 --> | ||
| 550 | - | ||
| 551 | - | ||
| 552 | - <div class="col-md-3 col-sm-6"> | 396 | + <!-- *** Breadcrumbs *** --> |
| 397 | + <?php | ||
| 398 | + if (!$isHome) { | ||
| 399 | + ?> | ||
| 400 | + <div id="heading-breadcrumbs"> | ||
| 401 | + <div class="container"> | ||
| 402 | + <?= Breadcrumbs::widget( | ||
| 403 | + [ | ||
| 404 | + 'links' => isset($this->params[ 'breadcrumbs' ]) ? $this->params[ 'breadcrumbs' ] : [], | ||
| 405 | + 'homeLink' => [ | ||
| 406 | + 'label' => \Yii::t('app', 'Home'), | ||
| 407 | + 'url' => [ '/site/index' ], | ||
| 408 | + ], | ||
| 409 | + ] | ||
| 410 | + ) ?> | ||
| 411 | + </div> | ||
| 412 | + </div> | ||
| 413 | + <?php | ||
| 414 | + } | ||
| 415 | + ?> | ||
| 416 | + <!-- *** crumbs END *** --> | ||
| 417 | + | ||
| 418 | + <?= $content ?> | ||
| 553 | 419 | ||
| 554 | - <h4><?php echo \Yii::t('app', 'Photostream'); ?></h4> | 420 | + <!-- *** FOOTER *** |
| 421 | +_________________________________________________________ --> | ||
| 555 | 422 | ||
| 556 | - <div class="photostream"> | ||
| 557 | - <div> | ||
| 558 | - <a href="#"> | ||
| 559 | - <img src="/img/detailsquare.jpg" class="img-responsive" alt="#"> | ||
| 560 | - </a> | ||
| 561 | - </div> | ||
| 562 | - <div> | ||
| 563 | - <a href="#"> | ||
| 564 | - <img src="/img/detailsquare2.jpg" class="img-responsive" alt="#"> | ||
| 565 | - </a> | ||
| 566 | - </div> | ||
| 567 | - <div> | ||
| 568 | - <a href="#"> | ||
| 569 | - <img src="/img/detailsquare3.jpg" class="img-responsive" alt="#"> | ||
| 570 | - </a> | ||
| 571 | - </div> | ||
| 572 | - <div> | ||
| 573 | - <a href="#"> | ||
| 574 | - <img src="/img/detailsquare3.jpg" class="img-responsive" alt="#"> | ||
| 575 | - </a> | ||
| 576 | - </div> | ||
| 577 | - <div> | ||
| 578 | - <a href="#"> | ||
| 579 | - <img src="/img/detailsquare2.jpg" class="img-responsive" alt="#"> | ||
| 580 | - </a> | ||
| 581 | - </div> | ||
| 582 | - <div> | ||
| 583 | - <a href="#"> | ||
| 584 | - <img src="/img/detailsquare.jpg" class="img-responsive" alt="#"> | ||
| 585 | - </a> | ||
| 586 | - </div> | ||
| 587 | - </div> | ||
| 588 | - | ||
| 589 | - </div> | ||
| 590 | - <!-- /.col-md-3 --> | ||
| 591 | - </div> | ||
| 592 | - <!-- /.container --> | ||
| 593 | - </footer> | ||
| 594 | - <!-- /#footer --> | 423 | + <footer id="footer"> |
| 424 | + <div class="container"> | ||
| 425 | + <div class="col-md-3 col-sm-6"> | ||
| 426 | + <h4><?php echo \Yii::t('app', 'About us'); ?></h4> | ||
| 427 | + | ||
| 428 | + <p><?php echo $settings->about; ?></p> | ||
| 429 | + | ||
| 430 | + <hr> | ||
| 431 | + | ||
| 432 | + <h4>Join our monthly newsletter</h4> | ||
| 433 | + <?php | ||
| 434 | + $newsletterForm = ActiveForm::begin( | ||
| 435 | + [ | ||
| 436 | + 'action' => '/site/subscribe', | ||
| 437 | + ] | ||
| 438 | + ); | ||
| 439 | + echo Html::beginTag( | ||
| 440 | + 'div', | ||
| 441 | + [ | ||
| 442 | + 'class' => 'input-group', | ||
| 443 | + ] | ||
| 444 | + ); | ||
| 445 | + echo $newsletterForm->field( | ||
| 446 | + $newsletter, | ||
| 447 | + 'email', | ||
| 448 | + [ | ||
| 449 | + 'options' => [ | ||
| 450 | + 'tag' => false, | ||
| 451 | + ], | ||
| 452 | + ] | ||
| 453 | + ) | ||
| 454 | + ->label(false) | ||
| 455 | + ->textInput(); | ||
| 456 | + echo Html::tag( | ||
| 457 | + 'span', | ||
| 458 | + Html::button( | ||
| 459 | + Html::tag( | ||
| 460 | + 'i', | ||
| 461 | + '', | ||
| 462 | + [ | ||
| 463 | + 'class' => 'fa fa-send', | ||
| 464 | + ] | ||
| 465 | + ), | ||
| 466 | + [ | ||
| 467 | + 'class' => 'btn btn-default', | ||
| 468 | + ] | ||
| 469 | + ), | ||
| 470 | + [ | ||
| 471 | + 'class' => 'input-group-btn', | ||
| 472 | + ] | ||
| 473 | + ); | ||
| 474 | + echo Html::endTag('div'); | ||
| 475 | + $newsletterForm::end(); | ||
| 476 | + ?> | ||
| 477 | + <hr class="hidden-md hidden-lg hidden-sm"> | ||
| 478 | + | ||
| 479 | + </div> | ||
| 480 | + <!-- /.col-md-3 --> | ||
| 481 | + | ||
| 482 | + <div class="col-md-3 col-sm-6"> | ||
| 483 | + | ||
| 484 | + <h4><?php echo \Yii::t('app', 'Blog'); ?></h4> | ||
| 485 | + | ||
| 486 | + <div class="blog-entries"> | ||
| 487 | + <div class="item same-height-row clearfix"> | ||
| 488 | + <div class="image same-height-always"> | ||
| 489 | + <a href="#"> | ||
| 490 | + <img class="img-responsive" src="/img/detailsquare.jpg" alt=""> | ||
| 491 | + </a> | ||
| 492 | + </div> | ||
| 493 | + <div class="name same-height-always"> | ||
| 494 | + <h5><a href="#">Blog post name</a></h5> | ||
| 495 | + </div> | ||
| 496 | + </div> | ||
| 497 | + | ||
| 498 | + <div class="item same-height-row clearfix"> | ||
| 499 | + <div class="image same-height-always"> | ||
| 500 | + <a href="#"> | ||
| 501 | + <img class="img-responsive" src="/img/detailsquare.jpg" alt=""> | ||
| 502 | + </a> | ||
| 503 | + </div> | ||
| 504 | + <div class="name same-height-always"> | ||
| 505 | + <h5><a href="#">Blog post name</a></h5> | ||
| 506 | + </div> | ||
| 507 | + </div> | ||
| 595 | 508 | ||
| 596 | - <!-- *** FOOTER END *** --> | 509 | + <div class="item same-height-row clearfix"> |
| 510 | + <div class="image same-height-always"> | ||
| 511 | + <a href="#"> | ||
| 512 | + <img class="img-responsive" src="/img/detailsquare.jpg" alt=""> | ||
| 513 | + </a> | ||
| 514 | + </div> | ||
| 515 | + <div class="name same-height-always"> | ||
| 516 | + <h5><a href="#">Very very long blog post name</a></h5> | ||
| 517 | + </div> | ||
| 518 | + </div> | ||
| 519 | + </div> | ||
| 520 | + | ||
| 521 | + <hr class="hidden-md hidden-lg"> | ||
| 522 | + | ||
| 523 | + </div> | ||
| 524 | + <!-- /.col-md-3 --> | ||
| 525 | + | ||
| 526 | + <div class="col-md-3 col-sm-6"> | ||
| 527 | + | ||
| 528 | + <h4><?php echo \Yii::t('app', 'Contact'); ?></h4> | ||
| 529 | + | ||
| 530 | + <p> | ||
| 531 | + <?php | ||
| 532 | + echo $settings->name ? Html::tag('strong', $settings->name) : ''; | ||
| 533 | + echo $settings->office ? Html::tag('br') . $settings->office : ''; | ||
| 534 | + echo $settings->street ? Html::tag( | ||
| 535 | + 'br' | ||
| 536 | + ) . $settings->street . ' ' . $settings->house : ''; | ||
| 537 | + echo $settings->city ? Html::tag('br') . $settings->city : ''; | ||
| 538 | + echo $settings->country ? Html::tag('br') . Html::tag( | ||
| 539 | + 'strong', | ||
| 540 | + $settings->country | ||
| 541 | + ) : ''; | ||
| 542 | + ?> | ||
| 543 | + </p> | ||
| 544 | + | ||
| 545 | + <a href="contact.html" class="btn btn-small btn-template-main">Go to contact page</a> | ||
| 546 | + | ||
| 547 | + <hr class="hidden-md hidden-lg hidden-sm"> | ||
| 548 | + | ||
| 597 | </div> | 549 | </div> |
| 598 | - <!-- /#all --> | ||
| 599 | - <?php $this->endBody() ?> | ||
| 600 | - </body> | ||
| 601 | - </html> | 550 | + <!-- /.col-md-3 --> |
| 551 | + | ||
| 552 | + | ||
| 553 | + <div class="col-md-3 col-sm-6"> | ||
| 554 | + | ||
| 555 | + <h4><?php echo \Yii::t('app', 'Photostream'); ?></h4> | ||
| 556 | + | ||
| 557 | + <div class="photostream"> | ||
| 558 | + <div> | ||
| 559 | + <a href="#"> | ||
| 560 | + <img src="/img/detailsquare.jpg" class="img-responsive" alt="#"> | ||
| 561 | + </a> | ||
| 562 | + </div> | ||
| 563 | + <div> | ||
| 564 | + <a href="#"> | ||
| 565 | + <img src="/img/detailsquare2.jpg" class="img-responsive" alt="#"> | ||
| 566 | + </a> | ||
| 567 | + </div> | ||
| 568 | + <div> | ||
| 569 | + <a href="#"> | ||
| 570 | + <img src="/img/detailsquare3.jpg" class="img-responsive" alt="#"> | ||
| 571 | + </a> | ||
| 572 | + </div> | ||
| 573 | + <div> | ||
| 574 | + <a href="#"> | ||
| 575 | + <img src="/img/detailsquare3.jpg" class="img-responsive" alt="#"> | ||
| 576 | + </a> | ||
| 577 | + </div> | ||
| 578 | + <div> | ||
| 579 | + <a href="#"> | ||
| 580 | + <img src="/img/detailsquare2.jpg" class="img-responsive" alt="#"> | ||
| 581 | + </a> | ||
| 582 | + </div> | ||
| 583 | + <div> | ||
| 584 | + <a href="#"> | ||
| 585 | + <img src="/img/detailsquare.jpg" class="img-responsive" alt="#"> | ||
| 586 | + </a> | ||
| 587 | + </div> | ||
| 588 | + </div> | ||
| 589 | + | ||
| 590 | + </div> | ||
| 591 | + <!-- /.col-md-3 --> | ||
| 592 | + </div> | ||
| 593 | + <!-- /.container --> | ||
| 594 | + </footer> | ||
| 595 | + <!-- /#footer --> | ||
| 596 | + | ||
| 597 | + <!-- *** FOOTER END *** --> | ||
| 598 | + </div> | ||
| 599 | + <!-- /#all --> | ||
| 600 | + <?php $this->endBody() ?> | ||
| 601 | + </body> | ||
| 602 | + </html> | ||
| 602 | <?php $this->endPage() ?> | 603 | <?php $this->endPage() ?> |
| 603 | \ No newline at end of file | 604 | \ No newline at end of file |
frontend/views/product/view.php
| @@ -75,7 +75,7 @@ | @@ -75,7 +75,7 @@ | ||
| 75 | </div> | 75 | </div> |
| 76 | 76 | ||
| 77 | <?php | 77 | <?php |
| 78 | - if ($model->is(2)) { | 78 | + if ($model->is('akcia')) { |
| 79 | ?> | 79 | ?> |
| 80 | <div class="ribbon sale"> | 80 | <div class="ribbon sale"> |
| 81 | <div class="theribbon">SALE</div> | 81 | <div class="theribbon">SALE</div> |
| @@ -84,7 +84,7 @@ | @@ -84,7 +84,7 @@ | ||
| 84 | <!-- /.ribbon --> | 84 | <!-- /.ribbon --> |
| 85 | <?php | 85 | <?php |
| 86 | } | 86 | } |
| 87 | - if ($model->is(1)) { | 87 | + if ($model->is('new')) { |
| 88 | ?> | 88 | ?> |
| 89 | <div class="ribbon new"> | 89 | <div class="ribbon new"> |
| 90 | <div class="theribbon">NEW</div> | 90 | <div class="theribbon">NEW</div> |
frontend/views/site/_slider_product.php
| @@ -47,9 +47,9 @@ | @@ -47,9 +47,9 @@ | ||
| 47 | <p class="price"> | 47 | <p class="price"> |
| 48 | <?php | 48 | <?php |
| 49 | if ($product->variants[ 0 ]->price_old) { | 49 | if ($product->variants[ 0 ]->price_old) { |
| 50 | - echo Html::tag('del', $product->variants[ 0 ]->price_old); | 50 | + echo Html::tag('del', $product->variants[ 0 ]->price_old . ' грн.'); |
| 51 | } | 51 | } |
| 52 | - echo $product->variants[ 0 ]->price; | 52 | + echo $product->variants[ 0 ]->price ? : 0 . ' грн.'; |
| 53 | ?></p> | 53 | ?></p> |
| 54 | <p class="buttons"> | 54 | <p class="buttons"> |
| 55 | <?php | 55 | <?php |
| @@ -69,7 +69,7 @@ | @@ -69,7 +69,7 @@ | ||
| 69 | </div> | 69 | </div> |
| 70 | <!-- /.text --> | 70 | <!-- /.text --> |
| 71 | <?php | 71 | <?php |
| 72 | - if ($product->is(1)) { | 72 | + if ($product->is('new')) { |
| 73 | ?> | 73 | ?> |
| 74 | <div class="ribbon new"> | 74 | <div class="ribbon new"> |
| 75 | <div class="theribbon"><?php echo \Yii::t('app', 'Новое'); ?></div> | 75 | <div class="theribbon"><?php echo \Yii::t('app', 'Новое'); ?></div> |
| @@ -77,7 +77,7 @@ | @@ -77,7 +77,7 @@ | ||
| 77 | </div> | 77 | </div> |
| 78 | <?php | 78 | <?php |
| 79 | } | 79 | } |
| 80 | - if ($product->is(2)) { | 80 | + if ($product->is('akcia')) { |
| 81 | ?> | 81 | ?> |
| 82 | <div class="ribbon sale"> | 82 | <div class="ribbon sale"> |
| 83 | <div class="theribbon"><?php echo \Yii::t('app', 'Акция'); ?></div> | 83 | <div class="theribbon"><?php echo \Yii::t('app', 'Акция'); ?></div> |
frontend/views/site/index.php
| @@ -393,7 +393,7 @@ _________________________________________________________ --> | @@ -393,7 +393,7 @@ _________________________________________________________ --> | ||
| 393 | */ | 393 | */ |
| 394 | ?> | 394 | ?> |
| 395 | 395 | ||
| 396 | -<section class="bar background-gray no-mb"> | 396 | +<section class="bar background-white no-mb"> |
| 397 | <div class="container"> | 397 | <div class="container"> |
| 398 | <div class="col-md-12"> | 398 | <div class="col-md-12"> |
| 399 | <?php echo $seo->text; ?> | 399 | <?php echo $seo->text; ?> |
| 1 | +<?php | ||
| 2 | + /** | ||
| 3 | + * @var \yii\web\View $this | ||
| 4 | + * @var \artbox\catalog\models\Category $model | ||
| 5 | + * @var \yii\data\ActiveDataProvider $dataProvider | ||
| 6 | + */ | ||
| 7 | + use artbox\catalog\models\Product; | ||
| 8 | + use yii\bootstrap\Html; | ||
| 9 | + use yii\widgets\LinkPager; | ||
| 10 | + use yii\widgets\ListView; | ||
| 11 | + | ||
| 12 | + $seo = \Yii::$app->get('seo'); | ||
| 13 | + $view = $this; | ||
| 14 | + $type = \Yii::$app->request->get('type'); | ||
| 15 | + $this->params[ 'breadcrumbs' ][] = [ | ||
| 16 | + 'label' => \Yii::t( | ||
| 17 | + 'app', | ||
| 18 | + 'Все {type}', | ||
| 19 | + [ | ||
| 20 | + 'type' => ( $type === 'new' ) ? \Yii::t('app', 'новинки') : \Yii::t( | ||
| 21 | + 'app', | ||
| 22 | + 'акционные' | ||
| 23 | + ), | ||
| 24 | + ] | ||
| 25 | + ), | ||
| 26 | + 'url' => [ | ||
| 27 | + 'special/index', | ||
| 28 | + 'type' => $type, | ||
| 29 | + ], | ||
| 30 | + ]; | ||
| 31 | + $this->params[ 'breadcrumbs' ][] = $seo->title ? : ( ( $type === 'new' ) ? \Yii::t('app', 'Новинки') : \Yii::t( | ||
| 32 | + 'app', | ||
| 33 | + 'Акционные' | ||
| 34 | + ) ) . ' ' . $model->lang->title; | ||
| 35 | +?> | ||
| 36 | +<div id="content"> | ||
| 37 | + <div class="container"> | ||
| 38 | + | ||
| 39 | + <div class="row"> | ||
| 40 | + | ||
| 41 | + <div class="col-sm-12"> | ||
| 42 | + | ||
| 43 | + <?php | ||
| 44 | + echo ListView::widget( | ||
| 45 | + [ | ||
| 46 | + 'options' => [ | ||
| 47 | + 'class' => 'row products', | ||
| 48 | + ], | ||
| 49 | + 'itemOptions' => [ | ||
| 50 | + 'tag' => false, | ||
| 51 | + ], | ||
| 52 | + 'layout' => '{items}', | ||
| 53 | + 'dataProvider' => $dataProvider, | ||
| 54 | + 'itemView' => function ($model) use ($view) { | ||
| 55 | + /** | ||
| 56 | + * @var Product $model | ||
| 57 | + */ | ||
| 58 | + return $view->render( | ||
| 59 | + '@frontend/views/category/_product_item', | ||
| 60 | + [ | ||
| 61 | + 'product' => $model, | ||
| 62 | + ] | ||
| 63 | + ); | ||
| 64 | + }, | ||
| 65 | + ] | ||
| 66 | + ); | ||
| 67 | + echo Html::tag( | ||
| 68 | + 'div', | ||
| 69 | + LinkPager::widget( | ||
| 70 | + [ | ||
| 71 | + 'pagination' => $dataProvider->pagination, | ||
| 72 | + ] | ||
| 73 | + ), | ||
| 74 | + [ | ||
| 75 | + 'class' => 'pages', | ||
| 76 | + ] | ||
| 77 | + ); | ||
| 78 | + ?> | ||
| 79 | + | ||
| 80 | + </div> | ||
| 81 | + | ||
| 82 | + </div> | ||
| 83 | + | ||
| 84 | + </div> | ||
| 85 | + <!-- /.container --> | ||
| 86 | +</div> | ||
| 87 | +<!-- /#content --> |
| 1 | +<?php | ||
| 2 | + /** | ||
| 3 | + * @var \yii\web\View $this | ||
| 4 | + * @var \artbox\catalog\models\Category[] $categories | ||
| 5 | + * @var \yii\data\ActiveDataProvider $dataProvider | ||
| 6 | + */ | ||
| 7 | + use artbox\catalog\models\Product; | ||
| 8 | + use yii\bootstrap\Html; | ||
| 9 | + use yii\widgets\LinkPager; | ||
| 10 | + use yii\widgets\ListView; | ||
| 11 | + | ||
| 12 | + $type = \Yii::$app->request->get('type'); | ||
| 13 | + $seo = \Yii::$app->get('seo'); | ||
| 14 | + $view = $this; | ||
| 15 | + $this->params[ 'breadcrumbs' ][] = $seo->title ? : \Yii::t( | ||
| 16 | + 'app', | ||
| 17 | + 'Все {type}', | ||
| 18 | + [ | ||
| 19 | + 'type' => ( $type === 'new' ) ? \Yii::t('app', 'новинки') : \Yii::t( | ||
| 20 | + 'app', | ||
| 21 | + 'акционные' | ||
| 22 | + ), | ||
| 23 | + ] | ||
| 24 | + ); | ||
| 25 | +?> | ||
| 26 | +<div id="content"> | ||
| 27 | + <div class="container"> | ||
| 28 | + | ||
| 29 | + <div class="row"> | ||
| 30 | + | ||
| 31 | + | ||
| 32 | + <!-- *** LEFT COLUMN *** | ||
| 33 | +_________________________________________________________ --> | ||
| 34 | + | ||
| 35 | + <div class="col-sm-3"> | ||
| 36 | + <div class="panel panel-default sidebar-menu"> | ||
| 37 | + <div class="panel-body"> | ||
| 38 | + <ul class="nav nav-pills nav-stacked category-menu"> | ||
| 39 | + <li> | ||
| 40 | + <?php | ||
| 41 | + foreach ($categories as $category) { | ||
| 42 | + echo Html::a( | ||
| 43 | + $category->lang->title, | ||
| 44 | + [ | ||
| 45 | + 'special/category', | ||
| 46 | + 'type' => $type, | ||
| 47 | + 'category' => $category->lang->alias->value, | ||
| 48 | + ] | ||
| 49 | + ); | ||
| 50 | + } | ||
| 51 | + ?> | ||
| 52 | + </li> | ||
| 53 | + </ul> | ||
| 54 | + </div> | ||
| 55 | + </div> | ||
| 56 | + </div> | ||
| 57 | + <!-- /.col-md-3 --> | ||
| 58 | + | ||
| 59 | + <!-- *** LEFT COLUMN END *** --> | ||
| 60 | + | ||
| 61 | + <!-- *** RIGHT COLUMN *** | ||
| 62 | +_________________________________________________________ --> | ||
| 63 | + | ||
| 64 | + <div class="col-sm-9"> | ||
| 65 | + | ||
| 66 | + <?php | ||
| 67 | + echo ListView::widget( | ||
| 68 | + [ | ||
| 69 | + 'options' => [ | ||
| 70 | + 'class' => 'row products', | ||
| 71 | + ], | ||
| 72 | + 'itemOptions' => [ | ||
| 73 | + 'tag' => false, | ||
| 74 | + ], | ||
| 75 | + 'layout' => '{items}', | ||
| 76 | + 'dataProvider' => $dataProvider, | ||
| 77 | + 'itemView' => function ($model) use ($view) { | ||
| 78 | + /** | ||
| 79 | + * @var Product $model | ||
| 80 | + */ | ||
| 81 | + return $view->render( | ||
| 82 | + '@frontend/views/category/_product_item', | ||
| 83 | + [ | ||
| 84 | + 'product' => $model, | ||
| 85 | + ] | ||
| 86 | + ); | ||
| 87 | + }, | ||
| 88 | + ] | ||
| 89 | + ); | ||
| 90 | + echo Html::tag( | ||
| 91 | + 'div', | ||
| 92 | + LinkPager::widget( | ||
| 93 | + [ | ||
| 94 | + 'pagination' => $dataProvider->pagination, | ||
| 95 | + ] | ||
| 96 | + ), | ||
| 97 | + [ | ||
| 98 | + 'class' => 'pages', | ||
| 99 | + ] | ||
| 100 | + ); | ||
| 101 | + ?> | ||
| 102 | + | ||
| 103 | + </div> | ||
| 104 | + <!-- /.col-md-9 --> | ||
| 105 | + | ||
| 106 | + <!-- *** RIGHT COLUMN END *** --> | ||
| 107 | + | ||
| 108 | + </div> | ||
| 109 | + | ||
| 110 | + </div> | ||
| 111 | + <!-- /.container --> | ||
| 112 | +</div> | ||
| 113 | +<!-- /#content --> | ||
| 114 | + |
frontend/web/css/style.css
| @@ -4053,13 +4053,13 @@ hr { | @@ -4053,13 +4053,13 @@ hr { | ||
| 4053 | } | 4053 | } |
| 4054 | 4054 | ||
| 4055 | .dropdown-menu .dropdown-submenu { | 4055 | .dropdown-menu .dropdown-submenu { |
| 4056 | - position: static; | 4056 | + position: relative; |
| 4057 | } | 4057 | } |
| 4058 | 4058 | ||
| 4059 | .dropdown-menu .dropdown-submenu > .dropdown-menu { | 4059 | .dropdown-menu .dropdown-submenu > .dropdown-menu { |
| 4060 | top: 0; | 4060 | top: 0; |
| 4061 | left: 100%; | 4061 | left: 100%; |
| 4062 | - min-height: 200px; | 4062 | + /*min-height: 200px;*/ |
| 4063 | margin-left: -4px; | 4063 | margin-left: -4px; |
| 4064 | border-radius: 0 3px 3px 3px; | 4064 | border-radius: 0 3px 3px 3px; |
| 4065 | } | 4065 | } |
| @@ -4529,4 +4529,18 @@ a.list-group-item.active > .badge, | @@ -4529,4 +4529,18 @@ a.list-group-item.active > .badge, | ||
| 4529 | .inline-block.lang-link { | 4529 | .inline-block.lang-link { |
| 4530 | font-size: 18px; | 4530 | font-size: 18px; |
| 4531 | padding-right: 20px; | 4531 | padding-right: 20px; |
| 4532 | +} | ||
| 4533 | +.reset-filters{ | ||
| 4534 | + padding: 5px 10px; | ||
| 4535 | + font-size: 12px; | ||
| 4536 | + line-height: 1.5; | ||
| 4537 | + border-radius: 50px; | ||
| 4538 | + padding-right: 20px; | ||
| 4539 | + outline: none; | ||
| 4540 | + margin-bottom: 20px; | ||
| 4541 | +} | ||
| 4542 | +#cart .badge{ | ||
| 4543 | + position: absolute; | ||
| 4544 | + top: 2px; | ||
| 4545 | + right: 4px; | ||
| 4532 | } | 4546 | } |
| 4533 | \ No newline at end of file | 4547 | \ No newline at end of file |
frontend/widgets/LangLink.php
| @@ -68,6 +68,39 @@ | @@ -68,6 +68,39 @@ | ||
| 68 | } else { | 68 | } else { |
| 69 | $this->links[ $languageId ] = $url; | 69 | $this->links[ $languageId ] = $url; |
| 70 | } | 70 | } |
| 71 | + } elseif (\Yii::$app->requestedRoute == 'special/category') { | ||
| 72 | + $aliasValue = \Yii::$app->request->get('category'); | ||
| 73 | + if (!empty($aliasValue)) { | ||
| 74 | + $aliases = Alias::find() | ||
| 75 | + ->where( | ||
| 76 | + [ | ||
| 77 | + 'route' => Alias::find() | ||
| 78 | + ->select('route') | ||
| 79 | + ->where([ 'value' => $aliasValue ]), | ||
| 80 | + ] | ||
| 81 | + ) | ||
| 82 | + ->andWhere( | ||
| 83 | + [ | ||
| 84 | + 'language_id' => [ | ||
| 85 | + $languageId, | ||
| 86 | + Language::getCurrent()->id, | ||
| 87 | + ], | ||
| 88 | + ] | ||
| 89 | + ) | ||
| 90 | + ->asArray() | ||
| 91 | + ->all(); | ||
| 92 | + $map = $this->mapAliases($aliases); | ||
| 93 | + $params = $this->replaceParams($map); | ||
| 94 | + $this->links[ $languageId ] = Html::a( | ||
| 95 | + $url, | ||
| 96 | + Url::to( | ||
| 97 | + [ \Yii::$app->requestedRoute ] + $params + [ 'language_id' => $languageId ], | ||
| 98 | + true | ||
| 99 | + ) | ||
| 100 | + ); | ||
| 101 | + } else { | ||
| 102 | + $this->links[ $languageId ] = $url; | ||
| 103 | + } | ||
| 71 | } else { | 104 | } else { |
| 72 | $this->links[ $languageId ] = Html::a( | 105 | $this->links[ $languageId ] = Html::a( |
| 73 | $url, | 106 | $url, |
| @@ -115,7 +148,9 @@ | @@ -115,7 +148,9 @@ | ||
| 115 | protected function replaceParams(array $map): array | 148 | protected function replaceParams(array $map): array |
| 116 | { | 149 | { |
| 117 | $params = \Yii::$app->request->get(); | 150 | $params = \Yii::$app->request->get(); |
| 118 | - $filter = explode('_', $params[ 'filter' ]); | 151 | + if (isset($params[ 'filter' ])) { |
| 152 | + $filter = explode('_', $params[ 'filter' ]); | ||
| 153 | + } | ||
| 119 | if (array_key_exists($params[ 'category' ], $map)) { | 154 | if (array_key_exists($params[ 'category' ], $map)) { |
| 120 | $params[ 'category' ] = $map[ $params[ 'category' ] ]; | 155 | $params[ 'category' ] = $map[ $params[ 'category' ] ]; |
| 121 | } | 156 | } |