คุณจะทำอย่างไรแปลงนำทางชั้นมาตรฐานในการใช้ช่องหรือเลือกหลายปัจจัยที่ใช้สำหรับลักษณะของประเภทแบบเลื่อนลงหรือ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>
การแก้ปัญหาคือรุ่นปรับปรุงของนี้ เครดิตจึงไปที่บุคคลนี้เช่นกัน