Стратегия — InfiniteScroll не работает

Я хотел реализовать бесконечную прокрутку на своем веб-сайте magento, поэтому я установил расширение Strategery — InfiniteScroll, но оно не работает, сначала я подумал, что это потому, что у меня все еще есть нумерация страниц, но даже после удаления панели инструментов подкачки он не работает.
Я удалил эти div панели инструментов

<div class="toolbar-top">
<?php echo $this->getToolbarHtml() ?>
</div>

сверху и снизу.
Не могли бы вы помочь мне настроить Strategery — расширение InfiniteScroll?

7

Решение

От https://github.com/Strategery-Inc/Magento-InfiniteScroll/wiki/Installation-under-a-different-package—theme:

Если вы скопируете папку infinitescroll в webroot, файлы
будет в конечном итоге под темой по умолчанию. Это должно быть хорошо в большинстве
установки, потому что Magento возвращается к теме по умолчанию, когда он
можно найти файлы в пользовательских темах. Остальная часть этой статьи охватывает
сценарий, где плагин не загружается правильно по умолчанию
пакет / тема.

Первое, что вы должны сделать, это переместить их в пакет / тему, которую вы
используя, просто чтобы быть уверенным, что они будут загружены.

  1. Просмотрите репозиторий, чтобы увидеть, где находятся файлы. Те, которые находятся внутри ‘app / design / frontend / default / default’, должны быть
    переместился в ваш пакет / тему: ‘app / design / frontend / package / theme’.

  2. Посетите следующий URL: http://www.yourwebsite.com/infinitescroll2/js и убедитесь, что есть
    какой-то Javascript печатается Если вы получаете 404, то модуль не
    загружен правильно. Если он пуст или вы получаете исключение, то модуль
    возможно, есть проблемы с поиском файлов макета или шаблона.

  3. Как только приведенный выше URL вернет javascript, зайдите на страницу вашего каталога и просмотрите его источник. Убедитесь, что вы можете найти следующее
    строка в источнике: «infinitescroll / js» — она ​​должна существовать как
    часть URL для тега SCRIPT. Если вы не можете найти его, то у вас есть
    проблема совместимости с файлом макета (который в репозитории
    расположен в
    приложение / дизайн / интерфейс / по умолчанию / по умолчанию / макет / Strategery-infinitescroll.xml).

  4. Однако, если строка существует, то плагин загружен и настроен правильно.

  5. Наконец, как только вы узнаете, что плагин загружается, вам нужно будет настроить параметры в разделе Система -> Конфигурация -> Каталог ->
    Бесконечная прокрутка для правильной настройки параметров InfiniteScroll.
    Вы найдете два типа селекторов. Первый — это контейнер, по умолчанию называемый «category-products», который «содержит» все
    предметы. Категория продукты

Затем вы найдете другой селектор под названием «продукты-сетки», который
селектор предметов. вещь

Это два селектора, которые вы должны ввести в бесконечном свитке
конфигурация в разделе Content и Items.category-products

Далее: следующий

Вы можете получить код, сделав второй щелчок на экране и выбрав
«Осмотреть элемент» в любом современном браузере.

Чтобы это расширение работало с любой темой, тема должна иметь
контейнер div, например, category-products, а также элемент div, например
продукты сетки.

Также в теме должен быть активен пейджер, иначе расширение
не будет работать из-за отсутствия некоторых селекторов.

Для получения дополнительной информации о настройке параметров перейдите по этой ссылке:
http://www.infinite-scroll.com/infinite-scroll-jquery-plugin/

ИЛИ ЖЕ

Если проблема не решена, то

После установки

  1. Добавьте следующее в layout.xml:

    Strategery / infinitescroll / init.phtml

  2. Скопируйте из app / design / frontend / base / default / template / Strategery путь к тому же пути в вашей теме

  3. Скопируйте из скина / внешнего интерфейса / base / default / js / infinitescroll путь к тому же пути в вашей теме оформления

  4. Убедитесь, что путь / js / jquery / infinitescroll существует и в нем четыре файла * .js.

  5. Настроить плагин:

    • всегда устанавливать Да на поле Включить jQuery
    • всегда следите за тем, чтобы ваш класс div для списка товаров был таким же, как в поле Content. В теме по умолчанию используется класс «.category-products» (с точкой
      первый знак в имени класса)
    • всегда устанавливайте Нет в поле «Скрыть панель инструментов»
  6. Конечно, вы должны прошить весь возможный кеш 🙂 Если не работает — сделайте это:

  7. На странице настройки режима сетки вручную вы можете увидеть «mode = grid» в URL. Вот и все, ребята 🙂

3

Другие решения

Причиной некоторых расширений, которые изменяют вывод системы в 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
0

По вопросам рекламы [email protected]