คุณจะทำอย่างไรแปลงนำทางชั้นมาตรฐานในการใช้ช่องหรือเลือกหลายปัจจัยที่ใช้สำหรับลักษณะของประเภทแบบเลื่อนลงหรือmultiselect ?
ตัวอย่างเช่นหากผู้ใช้เลือกสีน้ำเงินและสีแดงสำหรับแอตทริบิวต์สีการนำทางแบบเลเยอร์จะแสดงรายการทั้งหมดที่ตรงกับสีน้ำเงินหรือสีแดง
คุณจะทำอย่างไรแปลงนำทางชั้นมาตรฐานในการใช้ช่องหรือเลือกหลายปัจจัยที่ใช้สำหรับลักษณะของประเภทแบบเลื่อนลงหรือmultiselect ?
ตัวอย่างเช่นหากผู้ใช้เลือกสีน้ำเงินและสีแดงสำหรับแอตทริบิวต์สีการนำทางแบบเลเยอร์จะแสดงรายการทั้งหมดที่ตรงกับสีน้ำเงินหรือสีแดง
คำตอบ:
มีส่วนขยายมากมายที่จะให้ฟังก์ชันนี้แก่คุณ (ค้นหา "การนำทางเลเยอร์ที่ปรับปรุงแล้ว") ฉันได้ลองใช้ส่วนขยายทั้งหมดที่ระบุไว้ด้านล่าง แต่สิ่งที่ฉันชอบคือทีมอีคอมเมิร์ซ - ฉันชอบมันในลักษณะที่เรียบง่าย แต่ก็ไม่ได้พยายามทำมากนัก แต่มีประสิทธิภาพมากและใช้งานได้ดี นอกจากนี้ยังมีการรองรับ swatches สีตามที่คุณอธิบาย
บางคนอื่น ๆ ในลำดับไม่เฉพาะ:
ระวังสิ่งเหล่านี้อาจทำให้เกิดความขัดแย้งกับโมดูลของบุคคลที่สามอื่น ๆ
หากคุณต้องการทำเช่นนี้กับเสื้อโค้ตสีผมขอแนะนำให้คุณตรวจสอบส่วนขยายนี้โดย Chad Morgan
นี่คือบทความโดย Inchooเกี่ยวกับการทำให้มองเห็นตัวกรองที่ไม่ได้ใช้
หากคุณต้องการโค้ดนี้ด้วยตัวเองฉันคิดว่าคำตอบสำหรับคำถามของคุณอาจยาวเกินไปสำหรับฟอรัมนี้ ฉันไม่มีลิงก์ไปยังบล็อกโพสต์ / กวดวิชาที่สอนวิธีการทำเช่นนี้ แต่ฉันขอแนะนำให้เริ่มต้นด้วยการขยายบล็อกการนำทางแบบเลเยอร์
หากคุณสนใจที่จะแปลงเช็คบ็อกซ์นำทางแบบเลเยอร์เริ่มต้นเป็นวิธีการแก้ปัญหานั้นง่ายมากและวางไว้ที่นี่
แก้ไขรหัสของ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>การแก้ปัญหาคือรุ่นปรับปรุงของนี้ เครดิตจึงไปที่บุคคลนี้เช่นกัน