โซลูชันของคุณยอดเยี่ยม แต่ไม่แสดงแถบสีในรายการหมวดหมู่หรือตาราง ที่นี่ฉันเพิ่มวิธีแก้ปัญหาเพื่อแสดงทดสอบบน magento 1.9.2.4
ใน: แอพ / ออกแบบ / ส่วนหน้า / กำหนดเอง / เทมเพลต / แคตตาล็อก / ผลิตภัณฑ์เพิ่มตามบรรทัดในlist.phtml
1 - ก่อนที่จะแสดงในมุมมองรายการตรวจสอบว่ามีสิ่งนี้ถ้าไม่มีอัพเดต o การเปลี่ยนแปลง (บรรทัดที่ 39):
<?php $_imgSize = 300; ?>
<img id="product-collection-image-<?php echo $_product->getId(); ?>"
src="<?php echo $this->helper('catalog/image')->init($_product, 'small_image')->keepFrame(false)->resize($_imgSize); ?>"
alt="<?php echo $this->stripTags($this->getImageLabel($_product, 'small_image'), null, true) ?>" />
</a>
ในทางเลือกสามารถใช้สิ่งนี้:
<img id="product-collection-image-<?php echo $_product->getId(); ?>"
src="<?php echo $this->helper('catalog/image')->init($_product, 'small_image')->resize(230,279); ?>" class="small-image"
alt="<?php echo $this->stripTags($this->getImageLabel($_product, 'small_image'), null, true) ?>" />
</a>
ปรับขนาดภาพ
2 - หลังจาก "getRatingSummary" = php สิ้นสุด if = ประมาณบรรทัดที่ 53 ให้เพิ่ม:
<?php
// Provides extra blocks on which to hang some features for products in the list
// Features providing UI elements targeting this block will display directly below the product name
if ($this->getChild('name.after')) {
$_nameAfterChildren = $this->getChild('name.after')->getSortedChildren();
foreach ($_nameAfterChildren as $_nameAfterChildName) {
$_nameAfterChild = $this->getChild('name.after')->getChild($_nameAfterChildName);
$_nameAfterChild->setProduct($_product);
echo $_nameAfterChild->toHtml();
}
}
?>
3 - ทำการเปลี่ยนแปลงเดียวกันกับมุมมอง gird รอบ ๆ บรรทัดที่ 120 และ 152
4 - ในตอนท้ายของไฟล์เพิ่มสิ่งนี้:
<?php
// Provides a block where additional page components may be attached, primarily good for in-page JavaScript
if ($this->getChild('after')) {
$_afterChildren = $this->getChild('after')->getSortedChildren();
foreach ($_afterChildren as $_afterChildName) {
$_afterChild = $this->getChild('after')->getChild($_afterChildName);
//set product collection on after blocks
$_afterChild->setProductCollection($_productCollection);
echo $_afterChild->toHtml();
}
}
?>