เลือกมากกว่าหนึ่งรายการในการนำทางแบบเลเยอร์ (เลือกหลาย / ช่องทำเครื่องหมาย)


12

คุณจะทำอย่างไรแปลงนำทางชั้นมาตรฐานในการใช้ช่องหรือเลือกหลายปัจจัยที่ใช้สำหรับลักษณะของประเภทแบบเลื่อนลงหรือmultiselect ?

ตัวอย่างเช่นหากผู้ใช้เลือกสีน้ำเงินและสีแดงสำหรับแอตทริบิวต์สีการนำทางแบบเลเยอร์จะแสดงรายการทั้งหมดที่ตรงกับสีน้ำเงินหรือสีแดง

ดูตัวอย่างในแถบเครื่องมือในหน้านี้:


คุณไปกับอันนี้ได้อย่างไร? คุณตัดสินใจใช้อะไร
jharrison.au

@ jharrison.au .. ฉันเปลี่ยนการเลือกแบบเลื่อนลงเป็น COLOR SWITCHER และ SIZE แล้ว มันไม่ได้หลายเลย
Alizain Prasla

คำตอบ:


10

มีส่วนขยายมากมายที่จะให้ฟังก์ชันนี้แก่คุณ (ค้นหา "การนำทางเลเยอร์ที่ปรับปรุงแล้ว") ฉันได้ลองใช้ส่วนขยายทั้งหมดที่ระบุไว้ด้านล่าง แต่สิ่งที่ฉันชอบคือทีมอีคอมเมิร์ซ - ฉันชอบมันในลักษณะที่เรียบง่าย แต่ก็ไม่ได้พยายามทำมากนัก แต่มีประสิทธิภาพมากและใช้งานได้ดี นอกจากนี้ยังมีการรองรับ swatches สีตามที่คุณอธิบาย

บางคนอื่น ๆ ในลำดับไม่เฉพาะ:

  1. http://amasty.com/improved-navigation.html
  2. http://www.aitoc.com/en/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>

การแก้ปัญหาคือรุ่นปรับปรุงของนี้ เครดิตจึงไปที่บุคคลนี้เช่นกัน

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.