Я хотел реализовать бесконечную прокрутку на своем веб-сайте magento, поэтому я установил расширение Strategery — InfiniteScroll, но оно не работает, сначала я подумал, что это потому, что у меня все еще есть нумерация страниц, но даже после удаления панели инструментов подкачки он не работает.
Я удалил эти div панели инструментов
<div class="toolbar-top">
<?php echo $this->getToolbarHtml() ?>
</div>
сверху и снизу.
Не могли бы вы помочь мне настроить Strategery — расширение InfiniteScroll?
Если вы скопируете папку infinitescroll в webroot, файлы
будет в конечном итоге под темой по умолчанию. Это должно быть хорошо в большинстве
установки, потому что Magento возвращается к теме по умолчанию, когда он
можно найти файлы в пользовательских темах. Остальная часть этой статьи охватывает
сценарий, где плагин не загружается правильно по умолчанию
пакет / тема.Первое, что вы должны сделать, это переместить их в пакет / тему, которую вы
используя, просто чтобы быть уверенным, что они будут загружены.
Просмотрите репозиторий, чтобы увидеть, где находятся файлы. Те, которые находятся внутри ‘app / design / frontend / default / default’, должны быть
переместился в ваш пакет / тему: ‘app / design / frontend / package / theme’.Посетите следующий URL: http://www.yourwebsite.com/infinitescroll2/js и убедитесь, что есть
какой-то Javascript печатается Если вы получаете 404, то модуль не
загружен правильно. Если он пуст или вы получаете исключение, то модуль
возможно, есть проблемы с поиском файлов макета или шаблона.Как только приведенный выше URL вернет javascript, зайдите на страницу вашего каталога и просмотрите его источник. Убедитесь, что вы можете найти следующее
строка в источнике: «infinitescroll / js» — она должна существовать как
часть URL для тега SCRIPT. Если вы не можете найти его, то у вас есть
проблема совместимости с файлом макета (который в репозитории
расположен в
приложение / дизайн / интерфейс / по умолчанию / по умолчанию / макет / Strategery-infinitescroll.xml).Однако, если строка существует, то плагин загружен и настроен правильно.
Наконец, как только вы узнаете, что плагин загружается, вам нужно будет настроить параметры в разделе Система -> Конфигурация -> Каталог ->
Бесконечная прокрутка для правильной настройки параметров InfiniteScroll.
Вы найдете два типа селекторов. Первый — это контейнер, по умолчанию называемый «category-products», который «содержит» все
предметы. Категория продуктыЗатем вы найдете другой селектор под названием «продукты-сетки», который
селектор предметов. вещьЭто два селектора, которые вы должны ввести в бесконечном свитке
конфигурация в разделе Content и Items.category-productsДалее: следующий
Вы можете получить код, сделав второй щелчок на экране и выбрав
«Осмотреть элемент» в любом современном браузере.Чтобы это расширение работало с любой темой, тема должна иметь
контейнер div, например, category-products, а также элемент div, например
продукты сетки.Также в теме должен быть активен пейджер, иначе расширение
не будет работать из-за отсутствия некоторых селекторов.Для получения дополнительной информации о настройке параметров перейдите по этой ссылке:
http://www.infinite-scroll.com/infinite-scroll-jquery-plugin/ИЛИ ЖЕ
Если проблема не решена, то
После установки
Добавьте следующее в layout.xml:
Strategery / infinitescroll / init.phtml
Скопируйте из app / design / frontend / base / default / template / Strategery путь к тому же пути в вашей теме
Скопируйте из скина / внешнего интерфейса / base / default / js / infinitescroll путь к тому же пути в вашей теме оформления
Убедитесь, что путь / js / jquery / infinitescroll существует и в нем четыре файла * .js.
Настроить плагин:
- всегда устанавливать Да на поле Включить jQuery
- всегда следите за тем, чтобы ваш класс div для списка товаров был таким же, как в поле Content. В теме по умолчанию используется класс «.category-products» (с точкой
первый знак в имени класса)- всегда устанавливайте Нет в поле «Скрыть панель инструментов»
Конечно, вы должны прошить весь возможный кеш 🙂 Если не работает — сделайте это:
На странице настройки режима сетки вручную вы можете увидеть «mode = grid» в 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