Commit 1c948efc2c7b88e7b3a6c9ca01d3517d126a1875
1 parent
c67585d7
Category path fixes
Showing
8 changed files
with
64 additions
and
31 deletions
Show diff stats
common/translation/ru/app.php
common/translation/ua/app.php
frontend/controllers/CollectionController.php
| ... | ... | @@ -17,6 +17,7 @@ |
| 17 | 17 | |
| 18 | 18 | /** |
| 19 | 19 | * Displays article list. |
| 20 | + * | |
| 20 | 21 | * @return string |
| 21 | 22 | */ |
| 22 | 23 | public function actionIndex($id) |
| ... | ... | @@ -46,11 +47,13 @@ |
| 46 | 47 | ->with('image') |
| 47 | 48 | ->where([ 'product_to_project.product_variant_id' => $variant->product_variant_id ]) |
| 48 | 49 | ->all(); |
| 50 | + $referer = $this->checkReferer() ? \Yii::$app->request->referrer : NULL; | |
| 49 | 51 | return $this->render('view', [ |
| 50 | 52 | 'collection' => $collection, |
| 51 | 53 | 'variants' => $variants, |
| 52 | 54 | 'variant' => $variant, |
| 53 | 55 | 'projects' => $projects, |
| 56 | + 'referer' => $referer, | |
| 54 | 57 | ]); |
| 55 | 58 | } |
| 56 | 59 | |
| ... | ... | @@ -75,4 +78,23 @@ |
| 75 | 78 | } |
| 76 | 79 | return $model; |
| 77 | 80 | } |
| 81 | + | |
| 82 | + /** | |
| 83 | + * @param string|NULL $referer | |
| 84 | + * | |
| 85 | + * @return bool | |
| 86 | + */ | |
| 87 | + private function checkReferer(string $referer = NULL) | |
| 88 | + { | |
| 89 | + if($referer === NULL) { | |
| 90 | + $referer = \Yii::$app->request->referrer; | |
| 91 | + } | |
| 92 | + if(!empty( $referer )) { | |
| 93 | + $host = \Yii::$app->request->hostInfo; | |
| 94 | + if(strpos($referer, $host) === 0) { | |
| 95 | + return true; | |
| 96 | + } | |
| 97 | + } | |
| 98 | + return false; | |
| 99 | + } | |
| 78 | 100 | } | ... | ... |
frontend/views/collection/view.php
| ... | ... | @@ -5,6 +5,7 @@ |
| 5 | 5 | * @var ProductVariant[] $variants |
| 6 | 6 | * @var ProductVariant $variant |
| 7 | 7 | * @var Project[] $projects |
| 8 | + * @var string|null $referer | |
| 8 | 9 | */ |
| 9 | 10 | use common\components\artboximage\ArtboxImageHelper; |
| 10 | 11 | use common\models\Project; |
| ... | ... | @@ -16,16 +17,22 @@ |
| 16 | 17 | use yii\widgets\Pjax; |
| 17 | 18 | |
| 18 | 19 | $this->title = $collection->brand->lang->name . ' ' . $collection->lang->name; |
| 20 | + if(!empty( $referer )) { | |
| 21 | + $this->params[ 'breadcrumbs' ][] = [ | |
| 22 | + 'url' => $referer, | |
| 23 | + 'label' => \Yii::t('app', 'Return back'), | |
| 24 | + ]; | |
| 25 | + } | |
| 19 | 26 | $this->params[ 'breadcrumbs' ][] = $this->title; |
| 20 | 27 | $groups = $variant->getProperties(); |
| 21 | 28 | ?> |
| 22 | 29 | <div class="section-box box-brand margin_bottom_30"> |
| 23 | 30 | <div class="style new_articles-wr"> |
| 24 | 31 | <?php |
| 25 | - Pjax::begin([ | |
| 26 | - 'id' => 'collection-pjax', | |
| 27 | - 'timeout' => 5000, | |
| 28 | - ]); | |
| 32 | + Pjax::begin([ | |
| 33 | + 'id' => 'collection-pjax', | |
| 34 | + 'timeout' => 5000, | |
| 35 | + ]); | |
| 29 | 36 | ?> |
| 30 | 37 | <div class="row"> |
| 31 | 38 | <div class="col-xs-12 col-sm-12 articles_data-title uppercase"> |
| ... | ... | @@ -45,7 +52,7 @@ |
| 45 | 52 | </div> |
| 46 | 53 | <table> |
| 47 | 54 | <tr> |
| 48 | - <td><?php echo Yii::t('app', 'Номер по каталогу');?>:</td> | |
| 55 | + <td><?php echo Yii::t('app', 'Номер по каталогу'); ?>:</td> | |
| 49 | 56 | <td> |
| 50 | 57 | <?php |
| 51 | 58 | echo $variant->sku; |
| ... | ... | @@ -78,7 +85,7 @@ |
| 78 | 85 | <div class="style"> |
| 79 | 86 | <?php |
| 80 | 87 | echo Html::a(\Yii::t('app', 'Заказать образец'), '#', [ |
| 81 | - 'class' => 'to_order', | |
| 88 | + 'class' => 'to_order', | |
| 82 | 89 | 'data-id' => $variant->product_variant_id, |
| 83 | 90 | ]); |
| 84 | 91 | ?> |
| ... | ... | @@ -89,7 +96,7 @@ |
| 89 | 96 | <ul> |
| 90 | 97 | <?php |
| 91 | 98 | foreach($variants as $variant_item) { |
| 92 | - if(empty($variant_item->lang)) { | |
| 99 | + if(empty( $variant_item->lang )) { | |
| 93 | 100 | continue; |
| 94 | 101 | } |
| 95 | 102 | echo Html::tag('li', Html::a(Html::tag('div', ArtboxImageHelper::getImage($variant_item->getImageUrl(), 'brand_collection_variant')) . Html::tag('p', $variant_item->lang->name), [ |
| ... | ... | @@ -105,7 +112,7 @@ |
| 105 | 112 | </div> |
| 106 | 113 | </div> |
| 107 | 114 | <?php |
| 108 | - Pjax::end(); | |
| 115 | + Pjax::end(); | |
| 109 | 116 | ?> |
| 110 | 117 | <div class="row"> |
| 111 | 118 | <div class="col-xs-12 col-sm-12 collect-tabs"> |
| ... | ... | @@ -134,10 +141,10 @@ |
| 134 | 141 | echo $collection->productSpec->lang->tech_spec_text; |
| 135 | 142 | } |
| 136 | 143 | if(!empty( $collection->productSpec->getTechSpecUrl() )) { |
| 137 | - echo Html::tag('p', \Yii::t('app', 'Документ технической документации').':' . Html::a(\Yii::t('app', 'скачать'), $collection->productSpec->getTechSpecUrl(), [ 'download' => true ])); | |
| 144 | + echo Html::tag('p', \Yii::t('app', 'Документ технической документации') . ':' . Html::a(\Yii::t('app', 'скачать'), $collection->productSpec->getTechSpecUrl(), [ 'download' => true ])); | |
| 138 | 145 | } |
| 139 | 146 | if(!empty( $collection->productSpec->getTechCharUrl() )) { |
| 140 | - echo Html::tag('p', \Yii::t('app', 'Вы также можете скачать таблицу с ' ). Html::a(\Yii::t('app', 'техническими характеристиками'), $collection->productSpec->getTechCharUrl(), [ 'download' => true ])); | |
| 147 | + echo Html::tag('p', \Yii::t('app', 'Вы также можете скачать таблицу с ') . Html::a(\Yii::t('app', 'техническими характеристиками'), $collection->productSpec->getTechCharUrl(), [ 'download' => true ])); | |
| 141 | 148 | } |
| 142 | 149 | ?> |
| 143 | 150 | </div> |
| ... | ... | @@ -149,10 +156,10 @@ |
| 149 | 156 | <?php |
| 150 | 157 | foreach($collection->productCertificates as $productCertificate) { |
| 151 | 158 | echo Html::tag('div', Html::tag('iframe', '', [ |
| 152 | - 'class' => 'certificate', | |
| 159 | + 'class' => 'certificate', | |
| 153 | 160 | 'frameborder' => 0, |
| 154 | - 'src' => 'http://docs.google.com/gview?url='.Url::to('/storage/certificates/'.$collection->product_id.'/'.$productCertificate->link, true).'&embedded=true', | |
| 155 | - ]), ['class' => 'col-xs-12 col-sm-6 col-md-4 col-lg-4']); | |
| 161 | + 'src' => 'http://docs.google.com/gview?url=' . Url::to('/storage/certificates/' . $collection->product_id . '/' . $productCertificate->link, true) . '&embedded=true', | |
| 162 | + ]), [ 'class' => 'col-xs-12 col-sm-6 col-md-4 col-lg-4' ]); | |
| 156 | 163 | } |
| 157 | 164 | ?> |
| 158 | 165 | </div> | ... | ... |
frontend/views/filter/brand.php
| ... | ... | @@ -14,6 +14,7 @@ |
| 14 | 14 | use common\modules\rubrication\models\TaxOption; |
| 15 | 15 | use yii\data\ActiveDataProvider; |
| 16 | 16 | use yii\helpers\Html; |
| 17 | + use yii\helpers\Url; | |
| 17 | 18 | use yii\web\View; |
| 18 | 19 | use yii\widgets\ListView; |
| 19 | 20 | |
| ... | ... | @@ -40,9 +41,10 @@ |
| 40 | 41 | 'purpose_id' => $purpose->tax_option_id, |
| 41 | 42 | ], |
| 42 | 43 | ]; |
| 43 | - $this->params[ 'breadcrumbs' ][] = $this->title; | |
| 44 | + $this->params[ 'breadcrumbs' ][] = $brand->lang->name; | |
| 44 | 45 | ?> |
| 45 | -<div class="section-box box-title-1 uppercase"><?= $this->title ?></div> | |
| 46 | +<div class="section-box box-title-1 uppercase"><?= $brand->lang->name ?></div> | |
| 47 | +<div class="section-box box-title-3 uppercase"><?= $category->lang->name . ' ' . mb_strtolower($purpose->lang->value) ?></div> | |
| 46 | 48 | <div class="section-box box-brand margin_bottom_30"> |
| 47 | 49 | <div class="row"> |
| 48 | 50 | <div class="style" style="position: relative"> | ... | ... |
frontend/views/filter/category-brand.php
| ... | ... | @@ -2,7 +2,6 @@ |
| 2 | 2 | /** |
| 3 | 3 | * @var View $this |
| 4 | 4 | * @var Category $category |
| 5 | - * @var TaxOption $purpose | |
| 6 | 5 | * @var Brand $brand |
| 7 | 6 | * @var ProductSearch $searchModel |
| 8 | 7 | * @var ActiveDataProvider $dataProvider |
| ... | ... | @@ -11,12 +10,11 @@ |
| 11 | 10 | use common\modules\product\models\Brand; |
| 12 | 11 | use common\modules\product\models\Category; |
| 13 | 12 | use common\modules\product\models\ProductSearch; |
| 14 | - use common\modules\rubrication\models\TaxOption; | |
| 15 | 13 | use yii\data\ActiveDataProvider; |
| 16 | 14 | use yii\web\View; |
| 17 | 15 | use yii\widgets\ListView; |
| 18 | 16 | |
| 19 | - $this->title = $category->lang->name . ' ' . $brand->lang->name . ' ' . mb_strtolower($purpose->lang->value); | |
| 17 | + $this->title = $category->lang->name . ' ' . $brand->lang->name; | |
| 20 | 18 | $this->params[ 'breadcrumbs' ][] = [ |
| 21 | 19 | 'label' => $category->lang->name, |
| 22 | 20 | 'url' => [ |
| ... | ... | @@ -25,18 +23,10 @@ |
| 25 | 23 | ], |
| 26 | 24 | ]; |
| 27 | 25 | $this->params[ 'breadcrumbs' ][] = [ |
| 28 | - 'label' => $purpose->lang->value, | |
| 26 | + 'label' => \Yii::t('product', 'Brands').' '.$category->lang->name, | |
| 29 | 27 | 'url' => [ |
| 30 | - 'filter/purpose', | |
| 31 | - 'id' => $purpose->tax_option_id, | |
| 32 | - ], | |
| 33 | - ]; | |
| 34 | - $this->params[ 'breadcrumbs' ][] = [ | |
| 35 | - 'label' => $category->lang->name . ' ' . mb_strtolower($purpose->lang->value), | |
| 36 | - 'url' => [ | |
| 37 | - 'filter/index', | |
| 28 | + 'filter/category-brands', | |
| 38 | 29 | 'category_id' => $category->category_id, |
| 39 | - 'purpose_id' => $purpose->tax_option_id, | |
| 40 | 30 | ], |
| 41 | 31 | ]; |
| 42 | 32 | $this->params[ 'breadcrumbs' ][] = $this->title; | ... | ... |
frontend/views/filter/index.php
| ... | ... | @@ -28,7 +28,8 @@ |
| 28 | 28 | ]; |
| 29 | 29 | $this->params[ 'breadcrumbs' ][] = $this->title; |
| 30 | 30 | ?> |
| 31 | -<div class="section-box box-title-1 uppercase"><?= $this->title; ?></div> | |
| 31 | +<div class="section-box box-title-1 uppercase"><?= $category->lang->name; ?></div> | |
| 32 | +<div class="section-box box-title-3 uppercase"><?= $purpose->lang->value; ?></div> | |
| 32 | 33 | <div class="section-box box-brand margin_bottom_30"> |
| 33 | 34 | <div class="row"> |
| 34 | 35 | <div class="col-xs-12 col-sm-9 col-md-7 col-lg-7"> | ... | ... |
frontend/web/css/style.min.css
| ... | ... | @@ -420,7 +420,8 @@ ul.main-menu li:hover ul { |
| 420 | 420 | |
| 421 | 421 | ul.main-menu li:hover ul li { |
| 422 | 422 | width: 100%; |
| 423 | - height: 44px; | |
| 423 | + overflow: hidden; | |
| 424 | + height: auto; | |
| 424 | 425 | background: #fff; |
| 425 | 426 | border-top: 1px solid #dedfe0 |
| 426 | 427 | } |
| ... | ... | @@ -438,6 +439,12 @@ ul.main-menu li:first-child ul li a:before { |
| 438 | 439 | display: none |
| 439 | 440 | } |
| 440 | 441 | |
| 442 | +ul.main-menu li ul li a { | |
| 443 | + line-height: 19px; | |
| 444 | + padding: 15px 5px 14px 24px !important; | |
| 445 | + white-space: normal; | |
| 446 | +} | |
| 447 | + | |
| 441 | 448 | .lang-wr { |
| 442 | 449 | position: absolute; |
| 443 | 450 | height: 43px; |
| ... | ... | @@ -1763,6 +1770,7 @@ ul.main-menu li:first-child ul li a:before { |
| 1763 | 1770 | float: left; |
| 1764 | 1771 | margin-top: 15px; |
| 1765 | 1772 | } |
| 1773 | + | |
| 1766 | 1774 | ul.breadcrumb { |
| 1767 | 1775 | width: 100%; |
| 1768 | 1776 | float: left; |
| ... | ... | @@ -1837,7 +1845,7 @@ ul.breadcrumb li a { |
| 1837 | 1845 | } |
| 1838 | 1846 | |
| 1839 | 1847 | .link-cat:before { |
| 1840 | - height:75px; | |
| 1848 | + height: 75px; | |
| 1841 | 1849 | background: #000; |
| 1842 | 1850 | opacity: 0.5; |
| 1843 | 1851 | } |
| ... | ... | @@ -3082,6 +3090,7 @@ ul.breadcrumb li a { |
| 3082 | 3090 | height: 100%; |
| 3083 | 3091 | } |
| 3084 | 3092 | } |
| 3093 | + | |
| 3085 | 3094 | @media (max-width: 850px) { |
| 3086 | 3095 | .link-cat { |
| 3087 | 3096 | height: 136px | ... | ... |