ปัญหาคือการออกแบบ rwd ใหม่มีสองบล็อกลูกสำหรับรายการผลิตภัณฑ์:
<block type="core/text_list" name="product_list.name.after" as="name.after" />
<block type="core/text_list" name="product_list.after" as="after" />
และในเทมเพลตเองจะไม่มีการตรวจสอบเพื่อดูว่ามีสิ่งเหล่านี้อยู่ก่อนที่จะพยายามโหลดและใช้งานหรือไม่
การแก้ไขด่วนคือการใช้เทมเพลตอื่นที่เป็นสำเนาของเทมเพลตหลัก แต่ด้วยการแก้ไขต่อไปนี้:
<?php
$_nameAfter = $this->getChild('name.after');
// New if here
if($_nameAfter):
$_nameAfterChildren = $_nameAfter->getSortedChildren();
foreach($_nameAfterChildren as $_nameAfterChildName):
$_nameAfterChild = $this->getChild('name.after')->getChild($_nameAfterChildName);
$_nameAfterChild->setProduct($_product);
?>
<?php echo $_nameAfterChild->toHtml(); ?>
<?php endforeach; ?>
<?php endif; ?>
<?php
//set product collection on after blocks
$_afterChildren = $this->getChild('after');
if ($_afterChildren):
$_afterChildren = $this->getChild('after')->getSortedChildren();
foreach($_afterChildren as $_afterChildName):
$_afterChild = $this->getChild('after')->getChild($_afterChildName);
$_afterChild->setProductCollection($_productCollection);
?>
<?php echo $_afterChild->toHtml(); ?>
<?php endforeach; ?>
<?php endif; ?>
name.after
เกิดขึ้นสองครั้งในแม่แบบ แต่after
ปรากฏเพียงหนึ่ง สิ่งสุดท้ายที่ควรทราบคือค่าเริ่มต้น rwd css จะซ่อนส่วนการกระทำของรายการผลิตภัณฑ์ในหน้า cms