Php 战略-无限滚动不起作用

Php 战略-无限滚动不起作用,php,magento,infinite-scroll,magento-1.9,Php,Magento,Infinite Scroll,Magento 1.9,我想在我的magento网站中实现无限滚动,所以我安装了Strategery-InfiniteScroll扩展,但它不起作用,首先我认为这是因为我仍然有分页功能,但即使移除分页工具栏,它也不起作用。 我删除了那些工具栏div <div class="toolbar-top"> <?php echo $this->getToolbarHtml() ?> </div> 自上而下。 您能帮我配置Strategery-InfiniteScroll扩

我想在我的magento网站中实现无限滚动,所以我安装了Strategery-InfiniteScroll扩展,但它不起作用,首先我认为这是因为我仍然有分页功能,但即使移除分页工具栏,它也不起作用。 我删除了那些工具栏div

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

自上而下。 您能帮我配置Strategery-InfiniteScroll扩展吗?

来自:

如果复制webroot上的“infinitescroll”文件夹,则文件 将以默认主题结束。这在大多数情况下应该是可以的 因为Magento在安装时会退回到默认主题 可以在自定义主题中找到文件。本文的其余部分将介绍 插件未从默认值正确加载的场景 包装/主题

您应该做的第一件事是将它们移动到您正在使用的包/主题 使用,只是为了确保它们将被加载

  • 浏览存储库以查看文件的位置。“app/design/frontend/default/default”中的内容应为 移动到您的软件包/主题:“应用程序/设计/前端/软件包/主题”

  • 访问以下url:并确保 正在打印一些Javascript。如果您得到404,则模块不可用 装载正确。如果为空或出现异常,则模块 可能在查找布局或模板文件时遇到问题

  • 一旦上面的URL返回javascript,请访问目录中的页面并查看其源代码。确保您可以找到以下内容 源中的字符串:“infinitescroll/js”-它应该作为 脚本标记的URL的一部分。如果你找不到它,那你就有一个 布局文件(存储库中的布局文件)的兼容性问题 位于 app/design/frontend/default/default/layout/strategery infinitescroll.xml)

  • 但是,如果字符串存在,则插件被正确加载和配置

  • 最后,一旦您知道插件正在加载,您就必须调整系统->配置->目录->下的选项 无限滚动,以便正确配置无限滚动选项。 您将发现两种类型的选择器。第一个是容器,默认情况下称为“category products”,它“包含”所有产品 这些项目。品类产品

  • 然后您将找到另一个名为“产品网格”的选择器,它是 项目选择器。项目

    这两个选择器是您必须在无限滚动中输入的选择器 内容和项目下的配置。类别-产品

    下一个:下一个

    您可以通过在屏幕上再次单击并拾取来获取代码 任何现代浏览器中的“检查元素”

    要使此扩展与任何主题一起工作,该主题必须具有 容器分区,类似于类别产品,也类似于项目分区 产品网格

    此外,主题必须激活寻呼机,否则扩展 因为缺少一些选择器,所以无法工作

    有关如何配置选项的更多信息,请访问以下链接:

    如果问题没有解决的话

    安装后

  • 在layout.xml中添加以下内容:

    策略/infinitescroll/init.phtml

  • 从app/design/frontend/base/default/template/strategery路径复制到主题中的同一路径

  • 从skin/frontend/base/default/js/infinitescroll路径复制到皮肤主题中的同一路径

  • 确保/js/jquery/infinitescroll路径存在,并且其中有四个*.js文件

  • 配置插件:

    • 始终在Include jQuery字段上设置“是”
    • 始终查看产品列表div类与内容字段中的相同。默认主题为“.category products”类(带点为 第一个登录类名称)
    • 始终在“隐藏工具栏”字段上设置“否”
  • 当然,您应该闪存所有可能的缓存:)如果不工作,请执行以下操作:

  • 在页面上手动设置网格模式,您可以在url中看到“mode=grid”。就这些,伙计们:)


  • 导致某些扩展以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');
    
    返回$.get(loadEvent.url,null,$.proxy(函数(数据)){
    $itemContainer=$(this.itemsContainerSelector,data).eq(0);
    if(0==$itemContainer.length){
    $itemContainer=$(数据).filter(this.itemsContainerSelector).eq(0);
    }
    如果($itemContainer){
    $itemContainer.find(this.itemSelector).each(函数(){
    项目。推(这个);
    });
    }
    自燃('加载',[数据,项目]);
    如果(回调){
    timeDiff=+new Date()-timeStart;
    if(时间差<延迟){
    setTimeout(函数(){
    callback.call(self、data、items);
    }延迟-时间差);
    }否则{
    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
    
    返回$.get(loadEvent.url,null,$.proxy(函数(数据)){
    data=data['maincontent'];//在这里捕获正确的HTML内容
    $itemContainer=$(this.itemsContainerSelector,data).eq(0);
    if(0==$itemContainer.length){
    $itemContainer=$(数据).filter(this.itemsContainerSelector).eq(0);
    }
    如果($itemContainer){
    $itemContainer.find(this.itemSelector).each(函数(){
    项目。推(这个);
    });
    }
    自燃('加载',[数据,项目]);