Commit 197460598e89cfcac46ecee01b6f52800ae83d31
merge with server
Showing
8 changed files
with
213 additions
and
50 deletions
Show diff stats
| @@ -12,7 +12,10 @@ AddDefaultCharset utf-8 | @@ -12,7 +12,10 @@ AddDefaultCharset utf-8 | ||
| 12 | 12 | ||
| 13 | RewriteBase / | 13 | RewriteBase / |
| 14 | # deal with admin first | 14 | # deal with admin first |
| 15 | - RewriteRule ^storage/(.*)?$ /storage/$1 [L,PT] | 15 | + |
| 16 | + | ||
| 17 | + | ||
| 18 | + RewriteRule ^storage/(.*)?$ /storage/$1 [L,PT] | ||
| 16 | 19 | ||
| 17 | RewriteCond %{REQUEST_URI} ^/(admin) | 20 | RewriteCond %{REQUEST_URI} ^/(admin) |
| 18 | 21 | ||
| @@ -61,7 +64,7 @@ AddDefaultCharset utf-8 | @@ -61,7 +64,7 @@ AddDefaultCharset utf-8 | ||
| 61 | 64 | ||
| 62 | RewriteCond %{REQUEST_FILENAME} !-d | 65 | RewriteCond %{REQUEST_FILENAME} !-d |
| 63 | 66 | ||
| 64 | - RewriteRule ^.*$ frontend/web/index.php | 67 | + RewriteRule ^.*$ frontend/web/index.php [L] |
| 65 | 68 | ||
| 66 | </IfModule> | 69 | </IfModule> |
| 67 | 70 |
frontend/controllers/GoodsController.php
| @@ -27,6 +27,7 @@ class GoodsController extends Controller | @@ -27,6 +27,7 @@ class GoodsController extends Controller | ||
| 27 | $brand = $arr_name[0]; | 27 | $brand = $arr_name[0]; |
| 28 | $article = $arr_name[1]; | 28 | $article = $arr_name[1]; |
| 29 | 29 | ||
| 30 | + | ||
| 30 | $params = Yii::$app->request->getQueryParams(); | 31 | $params = Yii::$app->request->getQueryParams(); |
| 31 | 32 | ||
| 32 | // получим параметры сортировки из гет запроса | 33 | // получим параметры сортировки из гет запроса |
| @@ -37,6 +38,15 @@ class GoodsController extends Controller | @@ -37,6 +38,15 @@ class GoodsController extends Controller | ||
| 37 | 'brand' => $brand]; | 38 | 'brand' => $brand]; |
| 38 | $arr = ['GoodsViewSearch' => $arr_values]; | 39 | $arr = ['GoodsViewSearch' => $arr_values]; |
| 39 | 40 | ||
| 41 | + if(empty( Yii::$app->user->identity )){ | ||
| 42 | + $margin_id = 1; | ||
| 43 | + }else{ | ||
| 44 | + $margin_id = Yii::$app->user->identity->margin_id; | ||
| 45 | + } | ||
| 46 | + | ||
| 47 | +// $arr = ['GoodsViewSearch' => ['name' => '0092S40090', | ||
| 48 | +// 'brand' => 'BOSCH']]; | ||
| 49 | + | ||
| 40 | if (empty(Yii::$app->user->identity)) { | 50 | if (empty(Yii::$app->user->identity)) { |
| 41 | $margin_id = 1; | 51 | $margin_id = 1; |
| 42 | } else { | 52 | } else { |
frontend/views/goods/index.php
| @@ -21,6 +21,7 @@ $this->params['breadcrumbs'][] = $this->title; | @@ -21,6 +21,7 @@ $this->params['breadcrumbs'][] = $this->title; | ||
| 21 | \yii\widgets\Pjax::begin(); | 21 | \yii\widgets\Pjax::begin(); |
| 22 | ?> | 22 | ?> |
| 23 | 23 | ||
| 24 | + | ||
| 24 | <div class='vin table '> | 25 | <div class='vin table '> |
| 25 | <a href="" class='navigation'>Италавто</a> | 26 | <a href="" class='navigation'>Италавто</a> |
| 26 | <img src="/images/arrow_dots.png"> | 27 | <img src="/images/arrow_dots.png"> |
frontend/views/goods/one_item.php
| 1 | <?php | 1 | <?php |
| 2 | use \yii\helpers\Html; | 2 | use \yii\helpers\Html; |
| 3 | - | 3 | +$this->registerCssFile('/css/BC2_catalog_zapchasti.css'); |
| 4 | // если товар один и тот же то выводим только цену и кол-во | 4 | // если товар один и тот же то выводим только цену и кол-во |
| 5 | // иначе всю информацию | 5 | // иначе всю информацию |
| 6 | $new_good = false; | 6 | $new_good = false; |
| 1 | +<?php | ||
| 2 | +use \yii\helpers\Html; | ||
| 3 | + | ||
| 4 | +$this->registerCssFile('/css/BC2_catalog_zapchasti.css'); | ||
| 5 | +// если товар один и тот же то выводим только цену и кол-во | ||
| 6 | +// иначе всю информацию | ||
| 7 | +$new_good = false; | ||
| 8 | +//в провайдере в качестве ключей установлен - артикул | ||
| 9 | +$article_arr = $widget->dataProvider->getKeys(); | ||
| 10 | +if ( empty($article_arr[$index - 1]) || $article_arr[$index - 1] != $key ) | ||
| 11 | + // если предыдущий артикул равен текущему, то это тот же товар | ||
| 12 | + $new_good = true; | ||
| 13 | +?> | ||
| 14 | + | ||
| 15 | +<?php $this->beginBlock('item_details'); | ||
| 16 | +// выделим отдельно детали товара в блок, для опционального его вывода | ||
| 17 | +?> | ||
| 18 | + <tr style="border-bottom: 0"> | ||
| 19 | + <td style="border-bottom: 0" class="small_width"><?= $model->brand?></td> | ||
| 20 | + <td style="border-bottom: 0" class="medium_width"><?= $model->article?> | ||
| 21 | + <img src="/images/favourite_notactive.png" class="favourite"> | ||
| 22 | + <img src="/images/favourite.png" class="pose"> | ||
| 23 | + </td> | ||
| 24 | + <td style="border-bottom: 0" class="large_width"><?= $model->description?> | ||
| 25 | + <a class="tecdoc_id_info" data-toggle="modal" data-target="#details_content_block" data-id="<?= $model->tecdoc_id ?>" href=""><img src="/images/gear.png"></a> | ||
| 26 | + <a href="" id="go_photo"><img src="/images/icon_cam.png"></a> | ||
| 27 | + </td> | ||
| 28 | +<?php $this->endBlock(); ?> | ||
| 29 | + | ||
| 30 | + <?php $this->beginBlock('empty_details'); | ||
| 31 | + // иначе пустой блок | ||
| 32 | + ?> | ||
| 33 | + <tr style="border-bottom: 0;border-top: 0;"> | ||
| 34 | + <td style="border-bottom: 0;border-top: 0;"></td> | ||
| 35 | + <td style="border-bottom: 0;border-top: 0;"></td> | ||
| 36 | + <td style="border-bottom: 0;border-top: 0;"></td> | ||
| 37 | + | ||
| 38 | + <?php $this->endBlock(); ?> | ||
| 39 | + | ||
| 40 | + <?php | ||
| 41 | + if($new_good){ | ||
| 42 | + echo $this->blocks['item_details']; | ||
| 43 | + }else{ | ||
| 44 | + echo $this->blocks['empty_details']; | ||
| 45 | + } | ||
| 46 | + | ||
| 47 | + ?> | ||
| 48 | + <td class="right"> | ||
| 49 | + <table class="tovar_table right" cellspacing="0" cellpadding="0" border="0" style="border: 0;"> | ||
| 50 | + <tbody> | ||
| 51 | + <tr class="one" style="border-bottom: 0; | ||
| 52 | + border-top: 0;"> | ||
| 53 | + <td class="row_select" style="border-bottom: 0; | ||
| 54 | + border-top: 0;"> | ||
| 55 | + <div class="lend-tovar-cart-left"> | ||
| 56 | + <input type="text" class="lend-tovar-cart-number" value="1"> | ||
| 57 | + <div class="arrow-cart-lend-wr"> | ||
| 58 | + <img class="arrow-cart-lend-1" src="/images/arrow-cart-up.png" width="9" height="6" alt=""> | ||
| 59 | + <img class="arrow-cart-lend-2" src="/images/arrow-cart-down1.png" width="9" height="6" alt=""> | ||
| 60 | + </div> | ||
| 61 | + </div> | ||
| 62 | + <button class="purple">В корзину</button> | ||
| 63 | + </td> | ||
| 64 | + | ||
| 65 | + </tr> | ||
| 66 | + </tbody></table> | ||
| 67 | + | ||
| 68 | + </td> | ||
| 69 | + <td class="right_large"> | ||
| 70 | + <table class="inner" border='0' style='border-top:0; border-left:0'> | ||
| 71 | + <tr border='0' style='border-top:0; border-left:0'><td border='0' style='border-top:0; border-left:0'><?= $model->box ?></td></tr> | ||
| 72 | + | ||
| 73 | + </table> | ||
| 74 | + </td> | ||
| 75 | + <td class="right_small"><table class="inner" border='0' style='border-top:0; border-left:0'> | ||
| 76 | + <tr border='0' style='border-top:0; border-left:0'><td border='0' style='border-top:0; border-left:0'><?= $model->delivery?> дн.</td></tr> | ||
| 77 | + | ||
| 78 | + </table></td> | ||
| 79 | + <td class="right_medium"><table class="inner" border='0' style='border-top:0; border-left:0'> | ||
| 80 | + <tr border='0' style='border-top:0; border-left:0'><td border='0' style='border-top:0; border-left:0'><?= $model->outputPrice?></td></tr> | ||
| 81 | + | ||
| 82 | + </table></td> | ||
| 83 | + </tr> | ||
| 84 | + | ||
| 85 | + | ||
| 86 | + <div id="modal_form_photo"> | ||
| 87 | + <span id="modal_close"><img src="/images/close_form.png"></span> | ||
| 88 | + <img src="<?= $model->image ?>"> | ||
| 89 | + </div> | ||
| 0 | \ No newline at end of file | 90 | \ No newline at end of file |
frontend/web/css/general_styles.css
| @@ -1324,22 +1324,7 @@ table a{ | @@ -1324,22 +1324,7 @@ table a{ | ||
| 1324 | /*Modal window*/ | 1324 | /*Modal window*/ |
| 1325 | 1325 | ||
| 1326 | /* Окно */ | 1326 | /* Окно */ |
| 1327 | -#modal_form_photo { | ||
| 1328 | - width: 561px; | ||
| 1329 | - height: 391px; /* Размеры должны быть фиксированы */ | ||
| 1330 | - /*border-radius: 5px;*/ | ||
| 1331 | - /*border: 3px #000 solid;*/ | ||
| 1332 | - background: #fff; | ||
| 1333 | - position: fixed; /* чтобы окно было в видимой зоне в любом месте */ | ||
| 1334 | - top: 45%; /* отступаем сверху 45%, остальные 5% подвинет скрипт */ | ||
| 1335 | - left: 31%; /* половина экрана слева */ | ||
| 1336 | - margin-top: -150px; | ||
| 1337 | - /* тут вся магия центровки css, отступаем влево и вверх минус половину ширины и высоты соответственно =) */ | ||
| 1338 | - display: none; /* в обычном состоянии окна не должно быть */ | ||
| 1339 | - opacity: 0; /* полностью прозрачно для анимирования */ | ||
| 1340 | - z-index: 15; /* окно должно быть наиболее большем слое */ | ||
| 1341 | - | ||
| 1342 | -} | 1327 | + |
| 1343 | /* Кнопка закрыть для тех кто в танке) */ | 1328 | /* Кнопка закрыть для тех кто в танке) */ |
| 1344 | #modal_form_photo #modal_close { | 1329 | #modal_form_photo #modal_close { |
| 1345 | width: 21px; | 1330 | width: 21px; |
| @@ -2751,15 +2736,12 @@ margin-left: 0!important | @@ -2751,15 +2736,12 @@ margin-left: 0!important | ||
| 2751 | } | 2736 | } |
| 2752 | 2737 | ||
| 2753 | #modal_form_photo { | 2738 | #modal_form_photo { |
| 2754 | - width: 561px; | ||
| 2755 | - height: 391px; /* Размеры должны быть фиксированы */ | ||
| 2756 | - /*border-radius: 5px;*/ | ||
| 2757 | - /*border: 3px #000 solid;*/ | 2739 | + width: auto; |
| 2740 | + height: auto; | ||
| 2758 | background: #fff; | 2741 | background: #fff; |
| 2759 | - position: fixed; /* чтобы окно было в видимой зоне в любом месте */ | 2742 | + position: absolute; /* чтобы окно было в видимой зоне в любом месте */ |
| 2760 | top: 45%; /* отступаем сверху 45%, остальные 5% подвинет скрипт */ | 2743 | top: 45%; /* отступаем сверху 45%, остальные 5% подвинет скрипт */ |
| 2761 | - left: 31%; /* половина экрана слева */ | ||
| 2762 | - margin-top: -150px; | 2744 | + left: 50%; /* половина экрана слева */ |
| 2763 | /* тут вся магия центровки css, отступаем влево и вверх минус половину ширины и высоты соответственно =) */ | 2745 | /* тут вся магия центровки css, отступаем влево и вверх минус половину ширины и высоты соответственно =) */ |
| 2764 | display: none; /* в обычном состоянии окна не должно быть */ | 2746 | display: none; /* в обычном состоянии окна не должно быть */ |
| 2765 | opacity: 0; /* полностью прозрачно для анимирования */ | 2747 | opacity: 0; /* полностью прозрачно для анимирования */ |
frontend/web/css/main.css
| @@ -575,4 +575,54 @@ div.required:after { content: " *"; | @@ -575,4 +575,54 @@ div.required:after { content: " *"; | ||
| 575 | 575 | ||
| 576 | .arrow_downA{ | 576 | .arrow_downA{ |
| 577 | background: url("/images/icon2r.png") no-repeat 93%!important; | 577 | background: url("/images/icon2r.png") no-repeat 93%!important; |
| 578 | +} | ||
| 579 | + | ||
| 580 | +.table_details{ | ||
| 581 | + width: auto; | ||
| 582 | +} | ||
| 583 | + | ||
| 584 | +.details_content{ | ||
| 585 | + width: auto; | ||
| 586 | + margin: 31px auto; | ||
| 587 | +} | ||
| 588 | + | ||
| 589 | +.details-list{ | ||
| 590 | + margin: 20px auto; | ||
| 591 | + border: 1px solid #dedede; | ||
| 592 | + width: auto!important; | ||
| 593 | +} | ||
| 594 | + | ||
| 595 | +.details-list tr{ | ||
| 596 | + border: 1px solid #dedede; | ||
| 597 | + | ||
| 598 | +} | ||
| 599 | + | ||
| 600 | +.details-list td{ | ||
| 601 | + border: 1px solid #dedede; | ||
| 602 | + padding: 10px; | ||
| 603 | +} | ||
| 604 | + | ||
| 605 | +.details-list tr td:first-child{ | ||
| 606 | + font-weight: 500; | ||
| 607 | + font-style: italic; | ||
| 608 | +} | ||
| 609 | + | ||
| 610 | +.details-list th{ | ||
| 611 | + padding: 10px; | ||
| 612 | + border: 1px solid #dedede; | ||
| 613 | +} | ||
| 614 | + | ||
| 615 | + | ||
| 616 | +.tovar_table img { | ||
| 617 | + float: right; | ||
| 618 | + margin-right: 28px!important; | ||
| 619 | +} | ||
| 620 | + | ||
| 621 | +.large_width a:nth-child(1) img { | ||
| 622 | + position: absolute; | ||
| 623 | + right: -20px!important; | ||
| 624 | +} | ||
| 625 | + | ||
| 626 | +.large_width{ | ||
| 627 | + padding-left:13px!important; | ||
| 578 | } | 628 | } |
| 579 | \ No newline at end of file | 629 | \ No newline at end of file |
frontend/web/js/script.js
| @@ -344,30 +344,58 @@ $('.phone_control, .phone_placeholder').click( | @@ -344,30 +344,58 @@ $('.phone_control, .phone_placeholder').click( | ||
| 344 | } | 344 | } |
| 345 | ); | 345 | ); |
| 346 | }); | 346 | }); |
| 347 | - $('a#go_photo').click( function(event){ // ловим клик по ссылки с id="go" | ||
| 348 | - event.preventDefault(); // выключаем стандартную роль элемента | ||
| 349 | - // console.log($(this).data('image')); | ||
| 350 | - // $('#modal_form_photo img').src($(this).data('image')) | ||
| 351 | - $('#overlay').fadeIn(400, // сначала плавно показываем темную подложку | ||
| 352 | - function(){ // после выполнения предъидущей анимации | ||
| 353 | - $('#modal_form_photo') | ||
| 354 | - .css('display', 'block') // убираем у модального окна display: none; | ||
| 355 | - .animate({opacity: 1, top: '50%'}, 200); // плавно прибавляем прозрачность одновременно со съезжанием вниз | ||
| 356 | - }); | ||
| 357 | - }); | ||
| 358 | - $('.close_span').click(function(){ | ||
| 359 | - $('.collapse').removeClass('in'); | ||
| 360 | - }); | ||
| 361 | - /* Закрытие модального окна, тут делаем то же самое но в обратном порядке */ | ||
| 362 | - $('#modal_close, #overlay').click( function(){ // ловим клик по крестику или подложке | ||
| 363 | - $('#modal_form_photo') | ||
| 364 | - .animate({opacity: 0, top: '45%'}, 200, // плавно меняем прозрачность на 0 и одновременно двигаем окно вверх | ||
| 365 | - function(){ // после анимации | ||
| 366 | - $(this).css('display', 'none'); // делаем ему display: none; | ||
| 367 | - $('#overlay').fadeOut(400); // скрываем подложку | ||
| 368 | - } | ||
| 369 | - ); | ||
| 370 | - }); | 347 | + //$('a#go_photo').click( function(event){ // ловим клик по ссылки с id="go" |
| 348 | + // event.preventDefault(); // выключаем стандартную роль элемента | ||
| 349 | + // // console.log($(this).data('image')); | ||
| 350 | + // // $('#modal_form_photo img').src($(this).data('image')) | ||
| 351 | + // $('#overlay').fadeIn(400, // сначала плавно показываем темную подложку | ||
| 352 | + // function(){ // после выполнения предъидущей анимации | ||
| 353 | + // $('#modal_form_photo') | ||
| 354 | + // .css('display', 'block') // убираем у модального окна display: none; | ||
| 355 | + // .animate({opacity: 1, top: '50%'}, 200); // плавно прибавляем прозрачность одновременно со съезжанием вниз | ||
| 356 | + // }); | ||
| 357 | + //}); | ||
| 358 | + //$('.close_span').click(function(){ | ||
| 359 | + // $('.collapse').removeClass('in'); | ||
| 360 | + //}); | ||
| 361 | + ///* Закрытие модального окна, тут делаем то же самое но в обратном порядке */ | ||
| 362 | + //$('#modal_close, #overlay').click( function(){ // ловим клик по крестику или подложке | ||
| 363 | + // $('#modal_form_photo') | ||
| 364 | + // .animate({opacity: 0, top: '45%'}, 200, // плавно меняем прозрачность на 0 и одновременно двигаем окно вверх | ||
| 365 | + // function(){ // после анимации | ||
| 366 | + // $(this).css('display', 'none'); // делаем ему display: none; | ||
| 367 | + // $('#overlay').fadeOut(400); // скрываем подложку | ||
| 368 | + // } | ||
| 369 | + // ); | ||
| 370 | + //}); | ||
| 371 | + $('a#go_photo').click( function(event){ // ловим клик по ссылки с id="go" | ||
| 372 | + event.preventDefault(); // выключаем стандартную роль элемента | ||
| 373 | + var scrollTop = window.pageYOffset ? window.pageYOffset : (document.documentElement.scrollTop ? document.documentElement.scrollTop : document.body.scrollTop); | ||
| 374 | + viewportHeight = $(window).height(); | ||
| 375 | + var modalWidth=$('#modal_form_photo').width()/2; | ||
| 376 | + var modalHeight=$('#modal_form_photo').outerHeight()/2; | ||
| 377 | + $('#overlay').fadeIn(400, // сначала плавно показываем темную подложку | ||
| 378 | + function(){ // после выполнения предъидущей анимации | ||
| 379 | + $('#modal_form_photo') | ||
| 380 | + .css({'display':'block',opacity: 1, marginTop: -modalHeight, marginLeft: -modalWidth}) // убираем у модального окна display: none; | ||
| 381 | + .animate({opacity: 1, top: scrollTop+(viewportHeight/2)}, 200); // плавно прибавляем прозрачность одновременно со съезжанием вниз | ||
| 382 | + | ||
| 383 | + | ||
| 384 | + }); | ||
| 385 | + | ||
| 386 | + }); | ||
| 387 | + /* Закрытие модального окна, тут делаем то же самое но в обратном порядке */ | ||
| 388 | + $('#modal_close, #overlay').click( function(){ // ловим клик по крестику или подложке | ||
| 389 | + $('#modal_form_photo') | ||
| 390 | + .animate({opacity: 0, top: '45%'}, 200, // плавно меняем прозрачность на 0 и одновременно двигаем окно вверх | ||
| 391 | + function(){ // после анимации | ||
| 392 | + $(this).css('display', 'none'); // делаем ему display: none; | ||
| 393 | + $('#overlay').fadeOut(400); // скрываем подложку | ||
| 394 | + } | ||
| 395 | + ); | ||
| 396 | + }); | ||
| 397 | + | ||
| 398 | + | ||
| 371 | 399 | ||
| 372 | $('a#go_project').click( function(event){ // ловим клик по ссылки с id="go" | 400 | $('a#go_project').click( function(event){ // ловим клик по ссылки с id="go" |
| 373 | event.preventDefault(); // выключаем стандартную роль элемента | 401 | event.preventDefault(); // выключаем стандартную роль элемента |