Commit bc07fb4778f97a7b671aeb24de546ff57662abf0
1 parent
63e867f2
big commti
Showing
6 changed files
with
170 additions
and
14 deletions
Show diff stats
.htaccess
| @@ -12,13 +12,13 @@ AddDefaultCharset utf-8 | @@ -12,13 +12,13 @@ AddDefaultCharset utf-8 | ||
| 12 | 12 | ||
| 13 | RewriteBase / | 13 | RewriteBase / |
| 14 | # deal with admin first | 14 | # deal with admin first |
| 15 | + #liniya svitla only | ||
| 16 | + #redirect to remove the .html extension | ||
| 17 | +# RewriteRule ^(.+)\.htm$ /product/old-item-$1 [L,NC,R=301] | ||
| 18 | + | ||
| 15 | 19 | ||
| 16 | Redirect 301 /Kak_vibrat_ryuksak / | 20 | Redirect 301 /Kak_vibrat_ryuksak / |
| 17 | Redirect 301 /products/ryukzaki /catalog/ryukzaki | 21 | Redirect 301 /products/ryukzaki /catalog/ryukzaki |
| 18 | - Redirect 301 /products/koshel_ki /catalog/koshelki | ||
| 19 | - Redirect 301 /products/nesessery /catalog/nesessery | ||
| 20 | - Redirect 301 /products/sumki /catalog/sumki | ||
| 21 | - Redirect 301 /products/germochehly /catalog/germocehly | ||
| 22 | 22 | ||
| 23 | RewriteRule ^storage/(.*)?$ /storage/$1 [L,PT] | 23 | RewriteRule ^storage/(.*)?$ /storage/$1 [L,PT] |
| 24 | RewriteRule ^generator/(.*)?$ /generator/$1 [L,PT] | 24 | RewriteRule ^generator/(.*)?$ /generator/$1 [L,PT] |
| @@ -89,6 +89,12 @@ AddDefaultCharset utf-8 | @@ -89,6 +89,12 @@ AddDefaultCharset utf-8 | ||
| 89 | RewriteCond %{THE_REQUEST} \s/+(.+?)/+[?\s] | 89 | RewriteCond %{THE_REQUEST} \s/+(.+?)/+[?\s] |
| 90 | RewriteRule /$ /%1 [R,L] | 90 | RewriteRule /$ /%1 [R,L] |
| 91 | 91 | ||
| 92 | + | ||
| 93 | + | ||
| 94 | + RewriteCond %{THE_REQUEST} \s/+(.+?)/+[?\s] | ||
| 95 | + RewriteRule /$ /%1 [R,L] | ||
| 96 | + | ||
| 97 | + | ||
| 92 | RewriteCond %{HTTP_HOST} ^([^www].*)$ | 98 | RewriteCond %{HTTP_HOST} ^([^www].*)$ |
| 93 | RewriteRule ^(.*)$ http://www.%1/$1 [R=301] | 99 | RewriteRule ^(.*)$ http://www.%1/$1 [R=301] |
| 94 | 100 |
common/modules/product/CatalogUrlManager.php
| @@ -6,6 +6,7 @@ namespace common\modules\product; | @@ -6,6 +6,7 @@ namespace common\modules\product; | ||
| 6 | use common\modules\product\models\CategorySearch; | 6 | use common\modules\product\models\CategorySearch; |
| 7 | use common\modules\product\models\ProductSearch; | 7 | use common\modules\product\models\ProductSearch; |
| 8 | 8 | ||
| 9 | +use common\modules\product\models\ProductVariant; | ||
| 9 | use Yii; | 10 | use Yii; |
| 10 | use yii\helpers\Url; | 11 | use yii\helpers\Url; |
| 11 | use yii\web\HttpException; | 12 | use yii\web\HttpException; |
| @@ -22,8 +23,35 @@ class CatalogUrlManager implements UrlRuleInterface { | @@ -22,8 +23,35 @@ class CatalogUrlManager implements UrlRuleInterface { | ||
| 22 | */ | 23 | */ |
| 23 | public function parseRequest($manager, $request) | 24 | public function parseRequest($manager, $request) |
| 24 | { | 25 | { |
| 26 | + | ||
| 27 | + | ||
| 25 | $pathInfo = $request->getPathInfo(); | 28 | $pathInfo = $request->getPathInfo(); |
| 26 | $paths = explode('/', $pathInfo); | 29 | $paths = explode('/', $pathInfo); |
| 30 | + /** | ||
| 31 | + * linija-svitla.ua only | ||
| 32 | + */ | ||
| 33 | + $pattern = '/^(.+)\.htm$/'; | ||
| 34 | + if(isset($paths[0])){ | ||
| 35 | + preg_match($pattern,$paths[0], $match ); | ||
| 36 | + if(!empty($match)){ | ||
| 37 | + $old_item_name = explode('-',$paths[0] ); | ||
| 38 | + if(isset($old_item_name[2]) && isset($old_item_name[3]) && isset($old_item_name[4])){ | ||
| 39 | + $sku = $old_item_name[2].'/'.$old_item_name[3].'/'.$old_item_name[4]; | ||
| 40 | + $product_variant = ProductVariant::find()->where(['sku'=>$sku])->one(); | ||
| 41 | + if($product_variant instanceof ProductVariant){ | ||
| 42 | + | ||
| 43 | + $link = 'product'.'/'. $product_variant->product->alias; | ||
| 44 | + header("Status: 301"); | ||
| 45 | + header("Location: http://www.test-22.artweb.com.ua/".$link); | ||
| 46 | + die(); | ||
| 47 | + } | ||
| 48 | + } | ||
| 49 | + } | ||
| 50 | + } | ||
| 51 | + | ||
| 52 | + | ||
| 53 | + | ||
| 54 | + | ||
| 27 | 55 | ||
| 28 | if(isset($paths[1])) { | 56 | if(isset($paths[1])) { |
| 29 | if(strripos($request->url,'catalog/'.$paths[1].'?') && (!strripos($request->url,'?page')) && (!strripos($request->url,'?sort'))){ | 57 | if(strripos($request->url,'catalog/'.$paths[1].'?') && (!strripos($request->url,'?page')) && (!strripos($request->url,'?sort'))){ |
| @@ -61,6 +89,7 @@ class CatalogUrlManager implements UrlRuleInterface { | @@ -61,6 +89,7 @@ class CatalogUrlManager implements UrlRuleInterface { | ||
| 61 | } | 89 | } |
| 62 | } | 90 | } |
| 63 | } elseif ($paths[0] == 'product') { | 91 | } elseif ($paths[0] == 'product') { |
| 92 | + | ||
| 64 | if (!empty($paths[2])) { | 93 | if (!empty($paths[2])) { |
| 65 | throw new HttpException(404 ,'Page not found'); | 94 | throw new HttpException(404 ,'Page not found'); |
| 66 | } | 95 | } |
frontend/config/main.php
| @@ -63,6 +63,8 @@ return [ | @@ -63,6 +63,8 @@ return [ | ||
| 63 | 'route_map' => [ | 63 | 'route_map' => [ |
| 64 | 'catalog' => 'catalog/category', | 64 | 'catalog' => 'catalog/category', |
| 65 | 'product' => 'catalog/product', | 65 | 'product' => 'catalog/product', |
| 66 | + '<product:^(.+)\.htm$>' => 'catalog/product', | ||
| 67 | + | ||
| 66 | 68 | ||
| 67 | ] | 69 | ] |
| 68 | ], | 70 | ], |
| 1 | +<?php | ||
| 2 | + /** | ||
| 3 | + * @var $model common\modules\product\models\Product | ||
| 4 | + */ | ||
| 5 | +use yii\helpers\Html; | ||
| 6 | +use yii\helpers\Url; | ||
| 7 | +$category = $model->category; | ||
| 8 | +?> | ||
| 9 | +<div class="catalog_item"> | ||
| 10 | + <div class="wrapper"> | ||
| 11 | + <div class="item_container" > | ||
| 12 | + <input class="prodInfo" type="hidden" value="[]"> | ||
| 13 | + <div class="title"> | ||
| 14 | + <?= Html::a( $model->name, Url::to(['catalog/product', 'product' => $model->alias]), ['class'=>'btn-product-details'] )?> | ||
| 15 | + </div> | ||
| 16 | + <div class="img"> | ||
| 17 | + <a class="btn-product-details" href="<?= Url::to([ | ||
| 18 | + 'catalog/product', | ||
| 19 | + 'product' => $model->alias | ||
| 20 | + ]) ?>"> | ||
| 21 | + <?php | ||
| 22 | + foreach($model->events as $event){ | ||
| 23 | + if($event->banner){ | ||
| 24 | + echo \common\components\artboximage\ArtboxImageHelper::getImage($event->getImageUrl('banner'), 'banner_list',[ | ||
| 25 | + 'class' => 'banner-in-list' | ||
| 26 | + ]); | ||
| 27 | + } | ||
| 28 | + } | ||
| 29 | + | ||
| 30 | + ?> | ||
| 31 | + <?= \common\components\artboximage\ArtboxImageHelper::getImage($model->enabledVariants[ 0 ]->imageUrl, 'list', [ | ||
| 32 | + 'alt' => $model->category->name . ' ' . $model->fullname, | ||
| 33 | + 'title' => $model->category->name . ' ' . $model->fullname, | ||
| 34 | + 'class' => 'selected' | ||
| 35 | + ]) ?> | ||
| 36 | + </a> | ||
| 37 | + <div class="info_icons"> | ||
| 38 | + <a href="#" class="btn buy_button" data-toggle="modal" data-target="#buyForm" data-id="<?=$model->variant->product_variant_id; ?>" lang="145">Купить</a> | ||
| 39 | + <ul class="ul wishlike_block hidden"> | ||
| 40 | + <li class="compare hidden"> | ||
| 41 | + <a onclick="add2compare(); return false;" class="compare compare_text_link_3631483" href="#">К сравнению</a> | ||
| 42 | + <span class="icon"></span> | ||
| 43 | + </li> | ||
| 44 | + <li class="like hidden"> | ||
| 45 | + <a class="like like_text_link_3631483" href="#">В избранное</a><span class="icon"></span> | ||
| 46 | + </li> | ||
| 47 | + </ul> | ||
| 48 | + </div> | ||
| 49 | + </div> | ||
| 50 | + <div class="price"> | ||
| 51 | + | ||
| 52 | + <?php if($model->variant->price_old){?> | ||
| 53 | + <div class="dlexfduinxipi"> | ||
| 54 | + <span class="main"> | ||
| 55 | + <s><?= $model->variant->price_old ?><span class="currency">грн</span></s> | ||
| 56 | + </span> | ||
| 57 | + </div> | ||
| 58 | + <?php }?> | ||
| 59 | + <div class="dlexfduinxipi"> | ||
| 60 | + Цена: | ||
| 61 | + <span class="main"> | ||
| 62 | + <?= $model->variant->price ?> | ||
| 63 | + <span class="currency">грн</span> | ||
| 64 | + </span> | ||
| 65 | + </div> | ||
| 66 | + </div> | ||
| 67 | + <div class="additional_info params"> | ||
| 68 | + <div class="block_title">Особенности</div> | ||
| 69 | + <div class="descr"> | ||
| 70 | + <div class="info"> | ||
| 71 | + <ul class="sv"> | ||
| 72 | + | ||
| 73 | + <li><span>Бренд:</span> <?= $model->brand->name ?></li> | ||
| 74 | + | ||
| 75 | + <?php foreach($model->getActiveProperties($category->category_id) as $group): ?> | ||
| 76 | + <li><span><?= $group->name ?> <?php foreach($group->_options as $option) : ?> </span><?= $option->ValueRenderHTML ?><?php endforeach ?></li> | ||
| 77 | + <?php endforeach; ?> | ||
| 78 | + | ||
| 79 | + | ||
| 80 | + </ul> | ||
| 81 | + </div> | ||
| 82 | + <div class="clearfix"></div> | ||
| 83 | + </div> | ||
| 84 | + <div class="price" style="display: none;"> | ||
| 85 | + <div class="dlexfduinxipi"> | ||
| 86 | + Цена: | ||
| 87 | + <span class="main"> | ||
| 88 | + <?php | ||
| 89 | + | ||
| 90 | + echo '<div class="cost-block" itemprop="offers" itemscope itemtype="http://schema.org/Offer">'; | ||
| 91 | + | ||
| 92 | + // есть скидка | ||
| 93 | + echo '<p class="cost">'; | ||
| 94 | + if($model->enabledVariants[ 0 ]->price_old != 0 && $model->enabledVariants[ 0 ]->price_old != $model->enabledVariants[ 0 ]->price) { | ||
| 95 | + echo '<strike><span id=\'old_cost\' itemprop="price">' . $model->enabledVariants[0]->price_old . '</span> грн.</strike> '; | ||
| 96 | + echo $model->enabledVariants[0]->price . ' <span>грн.</span></p>'; | ||
| 97 | + } else { | ||
| 98 | + echo '<span itemprop="price">'.$model->enabledVariants[0]->price . ' </span><span>грн.</span></p>'; | ||
| 99 | + } | ||
| 100 | + echo '<meta itemprop="priceCurrency" content = "UAH">'; | ||
| 101 | + echo '</div>'; | ||
| 102 | + | ||
| 103 | + ?> | ||
| 104 | + </span> | ||
| 105 | + </div> | ||
| 106 | + </div> | ||
| 107 | + </div> | ||
| 108 | + <div class="opacity_bg"></div> | ||
| 109 | + </div> | ||
| 110 | + </div> | ||
| 111 | +</div> | ||
| 0 | \ No newline at end of file | 112 | \ No newline at end of file |
frontend/views/event/show.php
| @@ -2,6 +2,8 @@ | @@ -2,6 +2,8 @@ | ||
| 2 | use frontend\assets\FlipclockAsset; | 2 | use frontend\assets\FlipclockAsset; |
| 3 | use yii\helpers\Url; | 3 | use yii\helpers\Url; |
| 4 | use yii\widgets\Breadcrumbs; | 4 | use yii\widgets\Breadcrumbs; |
| 5 | +use yii\widgets\ListView; | ||
| 6 | + | ||
| 5 | FlipclockAsset::register($this); | 7 | FlipclockAsset::register($this); |
| 6 | ?> | 8 | ?> |
| 7 | <?php | 9 | <?php |
| @@ -67,15 +69,18 @@ $this->title = $model->name; | @@ -67,15 +69,18 @@ $this->title = $model->name; | ||
| 67 | <div class="block-100" itemscope itemtype="http://schema.org/Product"> | 69 | <div class="block-100" itemscope itemtype="http://schema.org/Product"> |
| 68 | 70 | ||
| 69 | <div class="catalog_product_list view_table"> | 71 | <div class="catalog_product_list view_table"> |
| 70 | - | ||
| 71 | - <?php foreach($productProvider->models as $product) :?> | ||
| 72 | - <?php if(!empty($product->enabledVariants) ):?> | ||
| 73 | - <?= $this->render('../catalog/_product_item', [ | ||
| 74 | - 'model' => $product, | ||
| 75 | - 'category' => $product->category, | ||
| 76 | - ])?> | ||
| 77 | - <?php endif;?> | ||
| 78 | - <?php endforeach?> | 72 | + <?= ListView::widget([ |
| 73 | + 'dataProvider' => $productProvider, | ||
| 74 | + 'itemView' => function ($model, $key, $index, $widget) { | ||
| 75 | + return $this->render('_product_item',[ | ||
| 76 | + 'model' => $model, | ||
| 77 | + | ||
| 78 | + ]); | ||
| 79 | + }, | ||
| 80 | + 'layout' => "{items}<div class=\"clearfix\"></div>{pager}", | ||
| 81 | + ]) | ||
| 82 | + | ||
| 83 | + ?> | ||
| 79 | </div> | 84 | </div> |
| 80 | </div> | 85 | </div> |
| 81 | </div> | 86 | </div> |
frontend/views/site/error.php
| @@ -15,6 +15,9 @@ $this->title = 'Ошибка '.$code; | @@ -15,6 +15,9 @@ $this->title = 'Ошибка '.$code; | ||
| 15 | width: 100%; | 15 | width: 100%; |
| 16 | height: 127px; | 16 | height: 127px; |
| 17 | text-align: center; | 17 | text-align: center; |
| 18 | + font-size: 165px; | ||
| 19 | + color: #0f6fc7; | ||
| 20 | + font-weight: bold; | ||
| 18 | margin-top: 80px; | 21 | margin-top: 80px; |
| 19 | } | 22 | } |
| 20 | 23 | ||
| @@ -84,7 +87,7 @@ $this->title = 'Ошибка '.$code; | @@ -84,7 +87,7 @@ $this->title = 'Ошибка '.$code; | ||
| 84 | </style> | 87 | </style> |
| 85 | 88 | ||
| 86 | <div class="site-error"> | 89 | <div class="site-error"> |
| 87 | - <div class="img-404"><img src="/images/404.png" alt=""></div> | 90 | + <div class="img-404">404!</div> |
| 88 | <div class="text-404-wr"> | 91 | <div class="text-404-wr"> |
| 89 | <p>Добро пожаловать на страницу 404!<br /> | 92 | <p>Добро пожаловать на страницу 404!<br /> |
| 90 | Вы находитесь здесь, потому что ввели адрес страницы,<br /> | 93 | Вы находитесь здесь, потому что ввели адрес страницы,<br /> |