Стратегия - Бесконечный Список Не Работает
Я хотел реализовать бесконечную прокрутку на своем веб-сайте magento, поэтому я установил расширение Strategery - InfiniteScroll, но оно не работает, сначала я подумал, что это потому, что у меня все еще есть разбиение на страницы, но даже после удаления панели инструментов подкачки оно не работает. Я удалил эти дивы панели инструментов
<div class="toolbar-top">
<?php echo $this->getToolbarHtml() ?>
</div>
Сверху и снизу. Не могли бы вы помочь мне настроить расширение Strategery - InfiniteScroll?
2 answers
Если вы скопируете папку "infinitescroll" в свой веб-каталог, файлы в конечном итоге вы попадете под тему по умолчанию. Это должно быть нормально в большинстве установок, потому что Magento возвращается к теме по умолчанию, когда может находить файлы в пользовательских темах. Остальная часть этой статьи охватывает сценарий, в котором плагин неправильно загружен из пакет/тема по умолчанию.
Первое, что вам нужно сделать, это переместить их в пакет/тему, которую вы используете, просто чтобы убедиться, что они будут загружены.
Просмотрите хранилище, чтобы узнать, где находятся файлы. Те, которые находятся внутри "приложения/дизайна/интерфейса/по умолчанию/по умолчанию", должны быть перемещены в ваш пакет/тему: "приложение/дизайн/интерфейс/пакет/тема'.
Посетите следующий URL-адрес: http://www.yourwebsite.com/infinitescroll2/js и сделать уверен, что там печатается какой-то Javascript. Если вы получаете 404, значит, модуль загружен неправильно. Если он пустой или вы получаете исключение, то у модуля , вероятно, возникают проблемы с поиском файлов макета или шаблона.
Как только URL-адрес выше вернет javascript, посетите страницу в своем каталоге и просмотрите ее источник. Убедитесь, что вы можете найти следующую строку в источнике: "infinitescroll/js" - она должна существовать как часть URL-адреса тега СКРИПТА. Если вы не можете его найти тогда у вас проблема совместимости с файлом макета (который в репозитории находится по адресу app/design/frontend/default/default/layout/strategery-infinitescroll.xml).
Однако, если строка существует, то плагин загружен и настроен правильно.
Наконец, как только вы узнаете, что плагин загружается, вам нужно будет настроить параметры в разделе Система -> Конфигурация -> Каталог -> Бесконечная прокрутка для настройки бесконечной прокрутки варианты правильно. Вы найдете два типа селекторов. Первый - это контейнер, по умолчанию называемый "категория-продукты", который "содержит" все товары. категория-товары
Затем вы найдете другой селектор под названием "продукты-сетка", который является селектором товаров. пункт
Эти два селектора необходимо ввести в конфигурацию бесконечной прокрутки в разделе Содержимое и товары. категория-продукты
Следующий: следующий
Вы можете получить код, выполнив второй щелчок по экрану и выбрав "Проверить элемент" в любом современном браузере.
Для того, чтобы это расширение работало с любой темой, тема должна иметь контейнер div, например категория-продукты, а также элемент div, например продукты - сетка.
Также в теме должен быть активен пейджер, иначе расширение не будет работать из-за отсутствия некоторых селекторов.
Для получения дополнительной информации о том, как настроить параметры, перейдите по этой ссылке: http://www.infinite-scroll.com/infinite-scroll-jquery-plugin/
ИЛИ
Если проблема не решена, то
После установки
Добавьте следующее в layout.xml :
Стратегия/бесконечный список/init.phtml
Скопируйте путь из приложения/дизайна/интерфейса/базы/по умолчанию/шаблона/стратегии в тот же путь в вашей теме
Копировать из обложки/интерфейса/базы/по умолчанию/js/бесконечный список путь к тому же пути в вашей теме кожи
Убедитесь, что путь /js/jquery/infinitescroll существует и содержит четыре файла *.js внутри
Настройка плагина:
- всегда устанавливайте значение Да в поле Включить jQuery
- всегда следите за тем, чтобы класс div вашего списка продуктов был таким же, как и в поле содержимого. Тема по умолчанию - класс ".категория-товары" (точка - это первый знак в названии класса)
- всегда устанавливайте значение Нет в поле Скрыть панель инструментов
Конечно, вы должны прошить весь возможный кэш:) Если не работает - сделайте это:
На странице вручную установите режим сетки, и вы увидите "режим=сетка" в URL. Вот и все, ребята :)
Причина некоторых расширений, которые изменяют вывод системы в JSON, а не в HTML - я решил ее таким образом: в JQuery-ias.js, в строке 340
return $.get(loadEvent.url, null, $.proxy(function(data) {
$itemContainer = $(this.itemsContainerSelector, data).eq(0);
if (0 === $itemContainer.length) {
$itemContainer = $(data).filter(this.itemsContainerSelector).eq(0);
}
if ($itemContainer) {
$itemContainer.find(this.itemSelector).each(function() {
items.push(this);
});
}
self.fire('loaded', [data, items]);
if (callback) {
timeDiff = +new Date() - timeStart;
if (timeDiff < delay) {
setTimeout(function() {
callback.call(self, data, items);
}, delay - timeDiff);
} else {
callback.call(self, data, items);
}
}
}, self), 'html');
Я изменил его следующим образом:
return $.get(loadEvent.url, null, $.proxy(function(data) {
data = data['maincontent']; // HERE TO CATCH THE RIGHT HTML CONTENT
$itemContainer = $(this.itemsContainerSelector, data).eq(0);
if (0 === $itemContainer.length) {
$itemContainer = $(data).filter(this.itemsContainerSelector).eq(0);
}
if ($itemContainer) {
$itemContainer.find(this.itemSelector).each(function() {
items.push(this);
});
}
self.fire('loaded', [data, items]);
if (callback) {
timeDiff = +new Date() - timeStart;
if (timeDiff < delay) {
setTimeout(function() {
callback.call(self, data, items);
}, delay - timeDiff);
} else {
callback.call(self, data, items);
}
}
}, self), 'json'); // I've changed html by JSon