在分层导航中选择多个项目(多个选择/复选框)


12

如何将标准分层导航转换为对类型为dropdownmultiselect的属性使用复选框或多个选择输入?

例如,如果用户为颜色属性选择蓝色红色,则分层导航将显示与蓝色红色匹配的所有项目。

请参阅此页面工具栏中的示例:


你是怎么做到的?您决定使用什么?
jharrison.au 2013年

@ jharrison.au ..好吧,我将选择下拉菜单更改为“颜色开关”和“大小”。它不是多个。
Alizain Prasla

Answers:


10

有许多扩展将为您提供此功能(搜索“增强的分层导航”)。我已经尝试了下面列出的所有扩展,但是我最喜欢的是电子商务团队 -我喜欢它的简约性质,它并没有尝试做太多,但是功能非常强大,并且开箱即用。它还支持您所描述的颜色样本。

其他一些(无特定顺序):

  1. http://amasty.com/improved-navigation.html
  2. http://www.aitoc.com/cn/magentomods_layered_navigation_pro.html
  3. http://www.manadev.com/seo-layered-navigation-plus
  4. http://www.gomage.com/extensions/gomage-advanced-navigation.html

请注意,这些可能会导致与其他第三方模块发生冲突。


如果您主要希望使用色板来实现此目的,建议您查看Chad Morgan的扩展名


这是Inchoo撰写的有关保持未使用的过滤器可见的文章。


如果您想自己编写代码,那么对于该论坛,我想您的问题答案可能太长了。我没有指向博客文章/教程的链接,该文章教您如何执行此操作,但我建议从扩展分层导航块开始。


6
我使用了Amasty模块,建议您将其检出。Aitoc模块,但是,我不会碰10'杆...或任何与此相关的模块。
davidalger

Amasty模块不适用于使用自定义eav模型支持的源的任何自定义属性。这对我们来说是个问题,因为我们的属性是通过外部api填充的。
greatwitenorth

8

如果仅对将默认分层导航转换为复选框感兴趣,则该解决方案非常简单,并将其放在此处。

编辑app/design/frontend/ourpackage/ourtheme/template/catalog/layer/filter.phtml文件代码,如下所示:

<ol>
<?php foreach ($this->getItems() as $_item): ?>
    <li>
        <?php if ($_item->getCount() > 0): ?>
            <form>
                <span class="check-box">
                    <input type="checkbox" name="vehicle" onclick='window.location.assign("<?php echo $this->urlEscape($_item->getUrl()) ?>")'/>
                </span>
                <a href="<?php echo $this->urlEscape($_item->getUrl()) ?>">
                    <?php echo $_item->getLabel() ?>
                    <?php if ($this->shouldDisplayProductCount()): ?>
                    <span class="count">(<?php echo $_item->getCount() ?>)</span>
                    <?php endif; ?>
                </a>
            </form>
        <?php else: ?>
            <form>
                <span class="check-box">
                    <input type="checkbox" name="vehicle" onclick='window.location.assign("<?php echo $this->urlEscape($_item->getUrl()) ?>")'/>
                </span>
                <span>
                    <?php echo $_item->getLabel(); ?>
                    <?php if ($this->shouldDisplayProductCount()): ?>
                        <span class="count">(<?php echo $_item->getCount() ?>)</span>
                    <?php endif; ?>
                </span>
            </form>
        <?php endif; ?>
    </li>
<?php endforeach ?>
</ol>

该解决方案的改进版本。因此,荣誉也归功于此人。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.