Страница 3 из 5
Re: Сохранение значений
Добавлено: 2020.01.14, 14:53
yiiliveext
Код: Выделить всё
function loadPage(url) {
listview.load(url + ' #listview-products > *', function() {
var next = $('ul.pagination > li.next a:first');
var pageQuery = '&page=2';
if (next) {
var pageNextQuery = next.attr('href').split('?').pop();
if (pageNextQuery.includes('per-page')) {
pageQuery += '&' + pageNextQuery.split('&').pop();
}
next.attr('href', url + pageQuery);
}
});
}
Re: Сохранение значений
Добавлено: 2020.01.14, 16:24
unknownby
yiiliveext писал(а): ↑2020.01.14, 14:29
Что значит подойдет? Infinit-scroll по умолчанию работает со ссылкой $('ul.pagination > li.next a:first').attr('href'), берет ее загружает по ней данные ajax-ом, фильтрует по элементу с itemsCssClass и добавляет в элемент с itemsCssClass вашей страницы, обновляете ссылку next из полученных данных. Только скорее всего страницу всегда вторую надо ставить после загрузки фильтров, надо подумать и немного подправить эту функцию.
В плане подойдет ли формирование целого URL таким образом, в том плане что можно было бы забирать таким образом первую часть
\Yii::$app->controller->action->id вместо products
Код: Выделить всё
var url = '/products/'".$model->productscategory_url."'?' + state;
yiiliveext писал(а): ↑2020.01.14, 14:29
Можно и так, но всегда будет запрос к сессиям, даже если он не нужен.
А сессии могут находится в бд или редисе на отдельном сервере.
Если лишний запрос по сети вас устраивает, то можно и так.
Согласен, оставлю предложенный вами вариант.
Как приду, поменяю loadPage, формирование url и контроллер. Благодарю за советы и помощь
Оказалось не всё так просто с JS, как ожидалось. Отпишу потом что получилось
Re: Сохранение значений
Добавлено: 2020.01.14, 16:44
yiiliveext
unknownby писал(а): ↑2020.01.14, 16:24
В плане подойдет ли формирование целого URL таким образом, в том плане что можно было бы забирать таким образом первую часть
\Yii::$app->controller->action->id вместо products
Код: Выделить всё
var url = '/products/'".$model->productscategory_url."'?' + state;
\Yii::$app->controller->action->id может не совпадать с путем в урл.
Пример
Код: Выделить всё
'rules' => [
'products/<category:\w+>' => 'shop/products-list'
]
Другой вопрос, зачем его вообще так формировать, если можно сделать
Код: Выделить всё
var url = window.location.pathname + '?' + state;
Re: Сохранение значений
Добавлено: 2020.01.14, 22:27
unknownby
Сделал так
loadPage ругнулся
заменил .= на +=
Но дальше ругается на то, что split не может работать с next.attr('href') в котором undefined
После фильтрации пропадает пагинация, но если пролистать вниз, то он загрузит страницу с параметрами
/products/kategoria-3?page=2&per-page=8
Код: Выделить всё
listview.load(url + ' #listview-products > *', function() {
var next = $('ul.pagination > li.next a:first');
var pageQuery = '&page=2';
if (next) {
//сюда приходит next.attr('href') == undefined
var pageNextQuery = next.attr('href').split('?').pop();
if (pageNextQuery.includes('per-page')) {
pageQuery += '&' + pageNextQuery.split('&').pop();
}
next.attr('href', url + pageQuery);
}
});
У меня работает подгрузка автоматически при прокрутке. Пытаюсь понять в чем дело
P.S. Если задать фильтра, а потом нажать обновление страницы с GET параметрами, тогда норм.
Re: Сохранение значений
Добавлено: 2020.01.14, 22:39
yiiliveext
Подправил еще, должен быть рабочий вариант
Код: Выделить всё
function loadPage(url) {
listview.load(url + ' #listview-products > *', function() {
var next = $('ul.pagination > li.next a:first');
var pageQuery = '&page=2';
if (next.length === 0) {
next = $('ul.pagination > li.prev a:first').clone();
next.text($('ul.pagination > li.next span:first').text());
$('ul.pagination > li.next').html(next).attr('class', 'next');
}
var pageNextQuery = next.attr('href').split('?').pop();
if (pageNextQuery.includes('per-page')) {
pageQuery += '&' + pageNextQuery.split('&').pop();
}
next.attr('href', url + pageQuery).attr('data-page', '2');
});
}
Re: Сохранение значений
Добавлено: 2020.01.14, 23:18
yiiliveext
Re: Сохранение значений
Добавлено: 2020.01.14, 23:24
unknownby
yiiliveext писал(а): ↑2020.01.14, 22:39
Подправил еще, должен быть рабочий вариант
Код: Выделить всё
function loadPage(url) {
listview.load(url + ' #listview-products > *', function() {
var next = $('ul.pagination > li.next a:first');
var pageQuery = '&page=2';
if (next.length === 0) {
next = $('ul.pagination > li.prev a:first').clone();
next.text($('ul.pagination > li.next span:first').text());
$('ul.pagination > li.next').html(next).attr('class', 'next');
}
var pageNextQuery = next.attr('href').split('?').pop();
if (pageNextQuery.includes('per-page')) {
pageQuery += '&' + pageNextQuery.split('&').pop();
}
next.attr('href', url + pageQuery).attr('data-page', '2');
});
}
Поменял как тут, но все равно ругается на split, а так же при фильтрации, например, выбрано три товара при помощи фильтрации, у меня per-page=8. Пропадает пагинация, но если прокрутить вниз, всё равно страница ajax-ом обновляется как url?page=2&per-page=8 без моей фильтрации, которая была передана в url
Re: Сохранение значений
Добавлено: 2020.01.14, 23:26
yiiliveext
А можно наплевать на скорость и сделать все гораздо проще
Код: Выделить всё
function loadPage(url) {
listview.load(url + ' #listview-products > *', function() {
('ul.pagination').load(url + ' ul.pagination > *');
});
}
Или переписать то же с $.ajax() чтобы два раза не грузить.
Re: Сохранение значений
Добавлено: 2020.01.14, 23:28
yiiliveext
unknownby писал(а): ↑2020.01.14, 23:24
Поменял как тут, но все равно ругается на split, а так же при фильтрации, например, выбрано три товара при помощи фильтрации, у меня per-page=8. Пропадает пагинация, но если прокрутить вниз, всё равно страница ajax-ом обновляется как url?page=2&per-page=8 без моей фильтрации, которая была передана в url
Без исходников страницы ничего подсказать не могу. А еще лучше выложить куда-то сайт, чтобы вживую можно было посмотреть, так будет быстрее.
Re: Сохранение значений
Добавлено: 2020.01.15, 01:25
yiiliveext
Вы это
https://github.com/nirvana-msu/yii2-infinite-scroll расширение используете?
Если да, то попробуете такой вариант. Те что я выше приводил не будут работать, там не стандартная пагинация.
Код: Выделить всё
function loadPage(url) {
$.get(url, function(data) {
var pagination = $(data).filter('ul.pagination');
$('#listview-products').html($(data).filter('#listview-products').html());
if (pagination.length > 0) {
$('ul.pagination').html(pagination.html());
} else {
$('ul.pagination').remove();
}
});
}
Re: Сохранение значений
Добавлено: 2020.01.15, 07:55
unknownby
yiiliveext писал(а): ↑2020.01.15, 01:25
Вы это
https://github.com/nirvana-msu/yii2-infinite-scroll расширение используете?
Если да, то попробуете такой вариант. Те что я выше приводил не будут работать, там не стандартная пагинация.
Код: Выделить всё
function loadPage(url) {
$.get(url, function(data) {
var pagination = $(data).filter('ul.pagination');
$('#listview-products').html($(data).filter('#listview-products').html());
if (pagination.length > 0) {
$('ul.pagination').html(pagination.html());
} else {
$('ul.pagination').remove();
}
});
}
Расширение это.
Проверил с утра, фильтры не проходили. При фильтрации запрос был, а реакции не было от loadPage. Демо сайта есть, нужно обновить
там без расширения
P.S. Если обновлю с этим loadPage, то работать как хотелось бы не будет. Закинуть изменения?
P.P.S.
Покажу наглядно, чтобы было понятно, что происходит. Изменил на чуть ранее версию loadPage, чтобы работали фильтры.
1. Загружена страница
http://prntscr.com/qnvqpc в URL ничего не прописано еще.
2. Выбираю фильтр
http://prntscr.com/qnvr4f блок с пагинацией пропал, к URL дописалось
?ProductsSearch[options]=1-1 http://prntscr.com/qnvrqj
3. Просто листаю вниз. Вот что происходит по запросам
http://prntscr.com/qnvsj5 дальше срабатывает InfiniteScrollPager и добавляет мне просто вторую страницу
http://prntscr.com/qnvtbz
Однако, если загрузить страницу
/products/kategoria-11?ProductsSearch[options]=1-1 не через load, а путем обновления. Тогда InfiniteScrollPager не добавляет ничего и подгрузки нет.
Как-то надо запретить ему загружать данные, если отсутствует пагинатор. Или вариант удаления пагинатора, если он присутствует после фильтрации и создания нового как тут
http://prntscr.com/qnvwnt с измененным URL
Для последнего скриншота сделал фильтр с тремя позициями и отображение по 2 элемента, чтоб появился пагинатор как нужно.
Посмотрел, что в $.get
Код: Выделить всё
console.log($(data).filter('#listview-products').html());
Выдает undefined
Тут возвращает объект и
length: 0
Код: Выделить всё
console.log($(data).filter('#listview-products'));
Re: Сохранение значений
Добавлено: 2020.01.15, 11:42
yiiliveext
unknownby писал(а): ↑2020.01.15, 07:55
Если обновлю с этим loadPage, то работать как хотелось бы не будет. Закинуть изменения?
Посмотрел, что в $.get
Код: Выделить всё
console.log($(data).filter('#listview-products').html());
Выдает undefined
Тут возвращает объект и
length: 0
Код: Выделить всё
console.log($(data).filter('#listview-products'));
Изменение закидывайте, только пропишите в loadPage
Код: Выделить всё
console.log(data);
console.log(url);
console.log($(data).filter('#listview-products'));
console.log($(data).filter('ul.pagination'));
Судя по всему у вас в data что-то не то прилетает. Так как там нечему ломаться, я сэмулировал ситуацию c пагинацией этим компонентом и проверил эту функцию на работоспособность.
Re: Сохранение значений
Добавлено: 2020.01.15, 11:54
unknownby
yiiliveext писал(а): ↑2020.01.15, 11:42
console.log(data);
console.log(url);
console.log($(data).filter('#listview-products'));
console.log($(data).filter('ul.pagination'));
[/code]
Судя по всему у вас в data что-то не то прилетает. Так как там нечему ломаться, я сэмулировал ситуацию c пагинацией этим компонентом и проверил эту функцию на работоспособность.
В data приходит вся страница, в url приходит тоже всё, а вот filter не корректно срабатывает
http://prntscr.com/qnx547
Re: Сохранение значений
Добавлено: 2020.01.15, 11:59
yiiliveext
И еще одна поправочка
Код: Выделить всё
function loadPage(url) {
$.get(url, function(data) {
var pagination = $(data).filter('ul.pagination');
console.log(data);
console.log(url);
console.log($(data).filter('#listview-products'));
console.log($(data).filter('ul.pagination'));
$('#listview-products').html($(data).filter('#listview-products').html());
if (pagination.length > 0) {
$('ul.pagination').html(pagination.html());
} else {
$('ul.pagination').remove();
$('#listview-products').infiniteScroll('destroy');
}
});
}
Re: Сохранение значений
Добавлено: 2020.01.15, 12:06
unknownby
yiiliveext писал(а): ↑2020.01.15, 11:59
И еще одна поправочка
Код: Выделить всё
function loadPage(url) {
$.get(url, function(data) {
var pagination = $(data).filter('ul.pagination');
console.log(data);
console.log(url);
console.log($(data).filter('#listview-products'));
console.log($(data).filter('ul.pagination'));
$('#listview-products').html($(data).filter('#listview-products').html());
if (pagination.length > 0) {
$('ul.pagination').html(pagination.html());
} else {
$('ul.pagination').remove();
$container.infiniteScroll('destroy');
}
});
}
Откуда переменная $container у меня не определена
Re: Сохранение значений
Добавлено: 2020.01.15, 12:08
yiiliveext
unknownby писал(а): ↑2020.01.15, 11:54
В data приходит вся страница, в url приходит тоже всё, а вот filter не корректно срабатывает
Разберитесь почему и вопрос решится.
Вот фидл, который демонстрирует что это должно работать.
https://jsfiddle.net/bsuha8vc/
Re: Сохранение значений
Добавлено: 2020.01.15, 12:11
yiiliveext
unknownby писал(а): ↑2020.01.15, 12:06
yiiliveext писал(а): ↑2020.01.15, 11:59
И еще одна поправочка
Код: Выделить всё
function loadPage(url) {
$.get(url, function(data) {
var pagination = $(data).filter('ul.pagination');
console.log(data);
console.log(url);
console.log($(data).filter('#listview-products'));
console.log($(data).filter('ul.pagination'));
$('#listview-products').html($(data).filter('#listview-products').html());
if (pagination.length > 0) {
$('ul.pagination').html(pagination.html());
} else {
$('ul.pagination').remove();
$container.infiniteScroll('destroy');
}
});
}
Откуда переменная $container у меня не определена
Поменяйте на ваш контейнер, ну или var $container = $('#listview-products') допишите
$('#listview-products').infiniteScroll('destroy');
Фидл вместе с пагинацией
https://jsfiddle.net/tx4e2n7k/
То же с функцией но без get-запроса
https://jsfiddle.net/tx4e2n7k/2/
Re: Сохранение значений
Добавлено: 2020.01.15, 12:48
unknownby
yiiliveext писал(а): ↑2020.01.15, 12:11
Поменяйте на ваш контейнер, ну или var $container = $('#listview-products') допишите
$('#listview-products').infiniteScroll('destroy');
Поменял, но почему не хочет находить через filter.
Первый находит всю страницу от начала до конца
Второй преобразует всю страницу в объект, но у объекта нет как отдельного listview-products и ul.pagination
Только два главных элемента
http://prntscr.com/qnxyo4
Преобразовало как структура идет
http://prntscr.com/qnxzfv
Преобразовал верхний уровень, а не всю страницу по кусочкам и всё в объекты. Так бы нашло и сработало всё отлично.
Re: Сохранение значений
Добавлено: 2020.01.15, 12:54
yiiliveext
Они внутри должны быть, это же DOM.
Выложите то, что полностью прилетает в console.log(data)
Возможно у вас невалидная верстка или еще что-то, что не дает правильно работать методу filter().
Re: Сохранение значений
Добавлено: 2020.01.15, 12:59
unknownby
yiiliveext писал(а): ↑2020.01.15, 12:54
Они внутри должны быть, это же DOM.
Выложите то, что полностью прилетает в console.log(data)
Возможно у вас невалидная верстка или еще что-то, что не дает правильно работать методу filter().
Вот вся страница
Код: Выделить всё
<!DOCTYPE html>
<html lang="ru">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta name="csrf-param" content="_csrf">
<meta name="csrf-token" content="vPSNiyhtyHj68vahmzEyAxBWmycnFWuVbQSnLjiAPIvYk_2mcFSRSqiir5njAH52RGfxcXF5Ms8qMMBrYtJ3-Q==">
<title>Бензобуры</title>
<meta name="description" content="Категория 11">
<meta name="keywords" content="Категория 11">
<link href="/assets/cea5e9b1/dist/assets/owl.carousel.min.css" rel="stylesheet">
<link href="/assets/cea5e9b1/dist/assets/owl.theme.default.min.css" rel="stylesheet">
<link href="/assets/2db06e80/css/bootstrap.css" rel="stylesheet">
<link href="/assets/a0aacc01/css/activeform.css" rel="stylesheet">
<link href="/assets/3b37c1fe/css/all.min.css" rel="stylesheet">
<link href="/assets/bf19b9d6/css/bootstrapXL.min.css" rel="stylesheet">
<link href="/assets/bf19b9d6/css/AdminLTE.min.css" rel="stylesheet">
<link href="/assets/bf19b9d6/css/_all-skins.min.css" rel="stylesheet">
<link href="/assets/bf19b9d6/css/nav-steps.css" rel="stylesheet">
<link href="/assets/bf19b9d6/css/site.css" rel="stylesheet"></head>
<body>
<div class="wrap content-wrappers">
<div class="container">
<div class="row">
<div class="col-sm-3 mt-3 pull-right">
<form id="Search" class="form-vertical" action="/search" method="post" role="form">
<input type="hidden" name="_csrf" value="vPSNiyhtyHj68vahmzEyAxBWmycnFWuVbQSnLjiAPIvYk_2mcFSRSqiir5njAH52RGfxcXF5Ms8qMMBrYtJ3-Q=="> <div class="search-form">
<div class="form-group highlight-addon field-productswidgetsearch-search">
<div class="input-group"><input type="text" id="productswidgetsearch-search" class="form-control" name="ProductsWidgetSearch[search]" placeholder="Поиск"><span class="input-group-btn"><button type="submit" class="btn btn-default"><i class="fas fa-search"></i></button></span></div>
<div class="help-block"></div>
</div> </div>
</form> <div class="blockSearch"></div>
</div>
</div>
</div>
<nav id="w2" class="navbar-inverse navbar"><div class="container"><div class="navbar-header"><button type="button" class="navbar-toggle" data-toggle="collapse" data-target="#w2-collapse"><span class="sr-only">Toggle navigation</span>
<span class="icon-bar"></span>
<span class="icon-bar"></span>
<span class="icon-bar"></span></button></div><div id="w2-collapse" class="collapse navbar-collapse"><ul id="w3" class="navbar-nav navbar-left nav"><li><a href="/"><i class="glyphicon glyphicon-home"></i></a></li>
<li><a href="/contact"><i class="glyphicon glyphicon-earphone"></i></a></li>
<li><a href="/category/instruments">Инструменты</a></li>
<li><a href="/category/camping">Кемпинг</a></li>
<li><a href="/about">О нас</a></li>
<li><a href="/gallery">Галерея работ</a></li>
<li><a href="/order">Оставить заявку</a></li>
</ul></div></div></nav>
<div class="container-fluid">
<div class="site-products">
<div class="container-fluid">
<div class="row">
<div class="col-xs-12">
<div class="owlcarouselslider-stocks">
<div id="owlcarouselstocks" class="owlcarouselstocks owl-carousel">
<div class="item"><img src="/upload/img/1/fk3a66gixqLdI3Na59O4Wfi30LMXi15h.jpg" height="300" alt="Желтый слайд"></div>
<div class="item"><img src="/upload/img/1/yJJbAyGC67TfBkX9nb8y9pP6gR9YnOTi.jpg" height="300" alt="Фиолетовый слайд"></div>
<div class="item"><img src="/upload/img/1/NO2e-1LEcX1rBRZAPHMvxC_1h3-G0kMR.jpg" height="300" alt="Круглешки слайд"></div>
</div>
</div>
</div>
</div>
<div class="row">
<div class="col-xs-12">
<ul class="breadcrumb"><li><a href="/">Главная</a></li>
<li><a href="/category/instruments">Инструменты</a></li>
<li class="active">Бензобуры</li>
</ul> </div>
</div>
<div class="row">
<div class="col-lg-3 col-md-3 col-sm-3 col-xs-12">
<div class="leftmenu">
<div class="h2 text-center text-uppercase">Категории</div>
<div class="row">
<div class="col-xs-12">
<div class="mt-3 list-group list-group-border-blue">
<a class="list-group-item" href="/products/kategoria-1">Тепловые пушки<span class="badge bg-green">4</span></a> <a class="list-group-item" href="/products/kategoria-6">Шлифмашины<span class="badge bg-green">2</span></a> <a class="list-group-item" href="/products/kategoria-11">Бензобуры<span class="badge bg-green">25</span></a> <a class="list-group-item" href="/products/kategoria-16">Миксеры<span class="badge bg-green">2</span></a> </div>
</div>
</div>
</div>
<div class="specifications">
<form id="ProductsSearch" class="form-vertical" action="/products/kategoria-11?ProductsSearch[options]=1-1" method="post" role="form">
<input type="hidden" name="_csrf" value="vPSNiyhtyHj68vahmzEyAxBWmycnFWuVbQSnLjiAPIvYk_2mcFSRSqiir5njAH52RGfxcXF5Ms8qMMBrYtJ3-Q==">
<div class="row">
<div class="col-xs-12">
<div class="box box-solid">
<div class="box-header bg-primary text-center btr-5">
<h2 class="box-title text-light text-uppercase">Фильтры</h2>
</div>
<div class="box box-solid collapsed-box no-margin box-border-blue-filter">
<div class="box-header">
<h3 class="box-title">Размер</h3>
<div class="box-tools pull-right">
<button class="btn btn-default btn-sm" data-widget="collapse"><i class="fa fa-plus"></i></button>
</div>
</div>
<div style="display: none;" class="box-body box-body-filter">
<div class="form-group highlight-addon field-productssearch-options-1">
<input type="hidden" name="ProductsSearch[options][1]" value=""><div id="productssearch-options-1"><div class="checkbox"><label><input type="checkbox" id="productssearch-options-1--0" name="ProductsSearch[options][1][]" value="1" data-index="0"> 30х50 см</label></div>
<div class="checkbox"><label><input type="checkbox" id="productssearch-options-1--1" name="ProductsSearch[options][1][]" value="2" data-index="1"> 20х100 см</label></div></div>
<div class="help-block"></div>
</div> </div>
</div>
<div class="box box-solid collapsed-box no-margin box-border-blue-filter">
<div class="box-header">
<h3 class="box-title">Вес</h3>
<div class="box-tools pull-right">
<button class="btn btn-default btn-sm" data-widget="collapse"><i class="fa fa-plus"></i></button>
</div>
</div>
<div style="display: none;" class="box-body box-body-filter">
<div class="form-group highlight-addon field-productssearch-options-2">
<input type="hidden" name="ProductsSearch[options][2]" value=""><div id="productssearch-options-2"><div class="checkbox"><label><input type="checkbox" id="productssearch-options-2--0" name="ProductsSearch[options][2][]" value="3" data-index="0"> 500 гр</label></div>
<div class="checkbox"><label><input type="checkbox" id="productssearch-options-2--1" name="ProductsSearch[options][2][]" value="4" data-index="1"> 1000 гр</label></div></div>
<div class="help-block"></div>
</div> </div>
</div>
<div class="box box-solid collapsed-box no-margin box-border-blue-filter">
<div class="box-header">
<h3 class="box-title">Мощность</h3>
<div class="box-tools pull-right">
<button class="btn btn-default btn-sm" data-widget="collapse"><i class="fa fa-plus"></i></button>
</div>
</div>
<div style="display: none;" class="box-body box-body-filter">
<div class="form-group highlight-addon field-productssearch-options-3">
<input type="hidden" name="ProductsSearch[options][3]" value=""><div id="productssearch-options-3"><div class="checkbox"><label><input type="checkbox" id="productssearch-options-3--0" name="ProductsSearch[options][3][]" value="5" data-index="0"> 1000 Вт</label></div>
<div class="checkbox"><label><input type="checkbox" id="productssearch-options-3--1" name="ProductsSearch[options][3][]" value="6" data-index="1"> 2500 Вт</label></div></div>
<div class="help-block"></div>
</div> </div>
</div>
<div class="box box-solid collapsed-box no-margin box-border-blue-filter">
<div class="box-header">
<h3 class="box-title">Плотность</h3>
<div class="box-tools pull-right">
<button class="btn btn-default btn-sm" data-widget="collapse"><i class="fa fa-plus"></i></button>
</div>
</div>
<div style="display: none;" class="box-body box-body-filter">
<div class="form-group highlight-addon field-productssearch-options-4">
<input type="hidden" name="ProductsSearch[options][4]" value=""><div id="productssearch-options-4"><div class="checkbox"><label><input type="checkbox" id="productssearch-options-4--0" name="ProductsSearch[options][4][]" value="7" data-index="0"> 500 гр/см3</label></div>
<div class="checkbox"><label><input type="checkbox" id="productssearch-options-4--1" name="ProductsSearch[options][4][]" value="8" data-index="1"> 1500 гр/см3</label></div></div>
<div class="help-block"></div>
</div> </div>
</div>
<div class="box box-solid collapsed-box no-margin box-border-blue-filter">
<div class="box-header">
<h3 class="box-title">Тестовая</h3>
<div class="box-tools pull-right">
<button class="btn btn-default btn-sm" data-widget="collapse"><i class="fa fa-plus"></i></button>
</div>
</div>
<div style="display: none;" class="box-body box-body-filter">
<div class="form-group highlight-addon field-productssearch-options-5">
<input type="hidden" name="ProductsSearch[options][5]" value=""><div id="productssearch-options-5"><div class="checkbox"><label><input type="checkbox" id="productssearch-options-5--0" name="ProductsSearch[options][5][]" value="9" data-index="0"> 40 мб</label></div></div>
<div class="help-block"></div>
</div> </div>
</div>
</div>
</div>
</div>
</form>
<div class="helper"></div>
</div>
</div>
<div class="col-lg-9 col-md-9 col-sm-9 col-xs-12">
<div class="row">
<div class="col-md-12">
<div class="box box-solid">
<div class="box-header">
<div class="pull-left item-view-select">
<span class="far fa-lg fa-th-list" data-view_name="_product_item_list"></span> 
<span class="far fa-lg fa-th-large" data-view_name="_product_item"></span> 
<span class="far fa-lg fa-th" data-view_name="_product_item_th"></span>
</div>
<div class="pull-right item-sort-select">
По алфавиту:
<span class="far fa-lg fa-sort-alpha-down" data-view_name="_sort_alpha_down"></span> 
<span class="far fa-lg fa-sort-alpha-down-alt" data-view_name="_sort_alpha_up"></span> 
По цене:
<span class="far fa-lg fa-sort-numeric-down" data-view_name="_sort_numeric_down"></span> 
<span class="far fa-lg fa-sort-numeric-down-alt" data-view_name="_sort_numeric_up"></span>
</div>
</div>
</div>
</div>
</div>
<div class="row">
<div id="listview-products" class="col-md-12">
<div id="listview_products" class="listview_products"><div class="row"><div class="item" data-key="32"><div class="col-md-12">
<div class="panel panel-primary">
<div class="panel-heading">
<a href="/product/sajt-katalog-na-yii231">
<h3 class="panel-title text-light">Сайт каталог на Yii2</h3>
</a>
</div>
<div class="panel-body">
<div class="row">
<div class="col-sm-3">
<div class="relative">
<a href="/product/sajt-katalog-na-yii231">
<img src="/upload/img/1/JPoU9a6BbjWCU2DNpqDIRBbUoWxzTpDH.jpg" width="100%" height="150" alt="Сайт каталог на Yii2"> <img src="/upload/img/1/3as12okB_tDndk209yxLCxjWX-aJQly1.png" width="25%" alt="Скидка 20%" style="position: absolute; right: 0; top: 0;"> </a>
</div>
</div>
<div class="col-sm-9">
<div class="row">
<div class="col-sm-12">
<b>Артикул:</b><br/>
0000131 </div>
<div class="col-sm-12">
<b>Категория товара:</b><br/>
Бензобуры </div>
<div class="col-sm-12">
<b>Описание товара:</b><br/>
<em>Сайт каталог на Yii2. На данном сайте можно посмотреть как выглядит сайт каталог сделанный на framework Yii2</em>
</div>
<div class="col-sm-12">
<b>Цена: <span class="text-red text-bold">100.00</span></b> BYN </div>
<div class="col-sm-12">
<a class="btn btn-success pull-right" href="/product/sajt-katalog-na-yii231">Подробнее <i class="glyphicon glyphicon-arrow-right"></i></a> </div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
<div class="item" data-key="3"><div class="col-md-12">
<div class="panel panel-primary">
<div class="panel-heading">
<a href="/product/primer-sajta-kataloga-na-yii2">
<h3 class="panel-title text-light">Сайт каталог на Yii2</h3>
</a>
</div>
<div class="panel-body">
<div class="row">
<div class="col-sm-3">
<div class="relative">
<a href="/product/primer-sajta-kataloga-na-yii2">
<img src="/upload/img/1/9P2ZHWSQrApaQrRBGL1zK1B-RRLlSIlw.png" width="100%" height="150" alt="Сайт каталог на Yii2"> <img src="/upload/img/1/uShFTMe2JUlf-UINCpxWdeHUlnFgdIpY.png" width="25%" alt="Супер цена" style="position: absolute; right: 0; top: 0;"> </a>
</div>
</div>
<div class="col-sm-9">
<div class="row">
<div class="col-sm-12">
<b>Артикул:</b><br/>
00003 </div>
<div class="col-sm-12">
<b>Категория товара:</b><br/>
Бензобуры </div>
<div class="col-sm-12">
<b>Описание товара:</b><br/>
<em>Сайт каталог на Yii2. На данном сайте можно посмотреть как выглядит сайт каталог сделанный на framework Yii2</em>
</div>
<div class="col-sm-12">
<b>Цена: <span class="text-red text-bold">20.00</span></b> BYN </div>
<div class="col-sm-12">
<a class="btn btn-success pull-right" href="/product/primer-sajta-kataloga-na-yii2">Подробнее <i class="glyphicon glyphicon-arrow-right"></i></a> </div>
</div>
</div>
</div>
</div>
</div>
</div>
</div></div><ul class="pagination"><li class="next"><a href="/products/kategoria-11?ProductsSearch%5Boptions%5D=1-1&page=2&per-page=2" data-page="1">Load more</a></li></ul></div> </div>
</div>
</div>
</div>
<div class="row">
<div class="col-xs-12">
<div class="owlcarouselslider-category">
<div id="owlcarouselcategory" class="owlcarouselcategory owl-carousel">
<div class="item">
<div class="box box-border-blue">
<a href="/products/kategoria-1">
<div class="box-header bg-primary text-center">
<h3 class="box-title text-light">Тепловые пушки</h3>
</div>
<div class="box-body relative">
<img src="/upload/img/1/jaTfydSISWKKeAaInfCq3KUV5GkHJk0H.jpg" height="150" alt="Тепловые пушки"> </div>
<div class="box-footer bg-primary text-center">
<div class="text-black">Цена аренды от 2.99 BYN</div>
</div>
</a>
</div>
</div>
<div class="item">
<div class="box box-border-blue">
<a href="/products/kategoria-6">
<div class="box-header bg-primary text-center">
<h3 class="box-title text-light">Шлифмашины</h3>
</div>
<div class="box-body relative">
<img src="/upload/img/1/kUVNPpBYuLPPvo_2JLK9k4UVRIyUDiCr.jpg" height="150" alt="Шлифмашины"> </div>
<div class="box-footer bg-primary text-center">
<div class="text-black">Цена аренды от 2.49 BYN</div>
</div>
</a>
</div>
</div>
<div class="item">
<div class="box box-border-blue">
<a href="/products/kategoria-11">
<div class="box-header bg-primary text-center">
<h3 class="box-title text-light">Бензобуры</h3>
</div>
<div class="box-body relative">
<img src="/upload/img/1/bYQ_EnXHZ0jzFOzn7HTG2wvQDLyClD04.jpg" height="150" alt="Бензобуры"> </div>
<div class="box-footer bg-primary text-center">
<div class="text-black">Цена аренды от 4.99 BYN</div>
</div>
</a>
</div>
</div>
<div class="item">
<div class="box box-border-blue">
<a href="/products/kategoria-16">
<div class="box-header bg-primary text-center">
<h3 class="box-title text-light">Миксеры</h3>
</div>
<div class="box-body relative">
<img src="/upload/img/1/gRBAY8-fFtJ7JvMSHGBWTMpzYnhrkj9k.jpg" height="150" alt="Миксеры"> </div>
<div class="box-footer bg-primary text-center">
<div class="text-black">Цена аренды от 2.99 BYN</div>
</div>
</a>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
<footer class="footer footer-wrappers-grey">
<div class="container">
<hr>
<div class="row text-center">
<div class="col-lg-6 col-md-6 col-sm-6 col-xs-12">
Сайт каталог на Yii2 </div>
<div class="col-lg-6 col-md-6 col-sm-6 col-xs-12">
<ul class="list-inline">
<li><a class="enter-actions text-black" href="/">Главная</a></li>
<li><a class="enter-actions text-black" href="/contact">Контакты</a></li>
<li><a class="enter-actions text-black" href="/products">Товары</a></li>
<li><a class="enter-actions text-black" href="/about">О нас</a></li>
<li><a class="enter-actions text-black" href="/gallery">Галерея работ</a></li>
<li><a class="enter-actions text-black" href="/order">Заказ</a></li>
</ul>
</div>
</div>
<p class="pull-left">© 2020 Все права защищены MARKET.AXE.BY - сайт каталог на Yii2</p>
</div>
</footer>
<script src="/assets/9a38d83a/jquery.js"></script>
<script src="/assets/cea5e9b1/dist/owl.carousel.min.js"></script>
<script src="/assets/78ccf37f/yii.js"></script>
<script src="/assets/78ccf37f/yii.activeForm.js"></script>
<script src="/assets/2db06e80/js/bootstrap.js"></script>
<script src="/assets/a0aacc01/js/activeform.js"></script>
<script src="/assets/7d9bc8e3/jquery.infinitescroll.js"></script>
<script src="/assets/bf19b9d6/js/charcounter.js"></script>
<script src="/assets/bf19b9d6/js/bootbox.min.js"></script>
<script src="/assets/bf19b9d6/js/app.min.js"></script>
<script src="/assets/bf19b9d6/js/site.js"></script>
<script>$('.listview_products').infinitescroll({"contentSelector":".listview_products","loading":{"msgText":"<em>Загрузка товаров...</em>","finishedMsg":"<em>Товаров больше нет!</em>","img":"/assets/dfa5861a/ajax-loader.gif"},"maxPage":2,"itemSelector":".listview_products >","navSelector":"#listview_products ul.pagination","nextSelector":"#listview_products ul.pagination li.next a:first"}, function(){});</script>
<script>jQuery(function ($) {
jQuery("#owlcarouselstocks").owlCarousel(
{"autoplay":true,"autoplayTimeout":3000,"items":1,"loop":true}
);
var $el=jQuery("#ProductsSearch .kv-hint-special");if($el.length){$el.each(function(){$(this).activeFieldHint()});}
jQuery('#ProductsSearch').yiiActiveForm([], []);
var checkboxes = [];
$('input[type=checkbox]').on('click', function(){
var selection = $(this).val();
var id = $(this)[0].id;
var check = $(this)[0].checked;
var value = id.split('-');
if(check){
checkboxes.push(selection + '-' + value[2]);
} else {
checkboxes.splice(checkboxes.indexOf(selection + '-' + value[2]), 1);
}
pageState['checkboxes'] = 'ProductsSearch[options]=' + checkboxes;
reloadContent();
});
$('.item-view-select > span').on('click', function(){
pageState['itemView'] = 'itemViews=' + $(this).data('view_name');
reloadContent();
});
jQuery("#owlcarouselcategory").owlCarousel(
{"autoplay":true,"autoplayTimeout":2000,"items":6,"loop":true,"responsive":{"0":{"items":1},"479":{"items":2},"768":{"items":3},"979":{"items":4},"1199":{"items":6}}}
);
var pageState = {};
function reloadContent() {
var data = '';
$.each(pageState, function(key, value) {
data += '&' + value;
});
var state = data.substr(1);
var url = window.location.pathname + '?' + state;
window.history.pushState(url, 'Бензобуры', url);
loadPage(url);
}
function loadPage(url) {
$.get(url, function(data) {
var pagination = $(data).filter('ul.pagination');
console.log(data);
console.log($(data));
console.log(url);
console.log($(data).filter('#listview-products'));
console.log($(data).filter('ul.pagination'));
$('#listview-products').html($(data).filter('#listview-products').html());
if (pagination.length > 0) {
$('ul.pagination').html(pagination.html());
} else {
$('ul.pagination').remove();
$('#listview-products').infiniteScroll('destroy');
}
});
}
window.onpopstate = function(event) {
var State = window.history.state;
loadPage(url);
};
yii.confirm = function(message, ok, cancel) {
bootbox.confirm({
message: message,
callback: function(result){ if (result) { !ok || ok(); } else { !cancel || cancel(); } },
buttons: { cancel: { className: "pull-left" } },
});
}
bootbox.setDefaults({locale: "ru"});
function GeneratePass(id) {
var chars = "qazxswedcvfrtgbnhyujmkp123456789QAZXSWEDCVFRTGBNHYUJMKP";
var max = 10;
var size = chars.length - 1;
var password = "";
while (max--) {
password = password + chars[Math.floor(Math.random() * (size + 1))];
}
$("#" + id).val(password);
// $("#" + id + "2").val(password);
}
function renderTooltip() {
$(".btn-tooltip").tooltip({
//selector: "[rel=tooltip]",
placement: "top"
});
}
renderTooltip();
var $el=jQuery("#Search .kv-hint-special");if($el.length){$el.each(function(){$(this).activeFieldHint()});}
jQuery('#Search').yiiActiveForm([], []);
$('#productswidgetsearch-search').on('input', function(){
var data = $(this).val();
if(data.length > 2){
$.ajax({
url: '/load-search',
type: 'POST',
data: {search:data},
success: function(result) {
$(".blockSearch").html(result);
}
});
} else {
$(".blockSearch").empty();
}
return false;
});
});</script></body>
</html>