Sorun şu ki, yeni tasarım tasarımı ürün listesi için iki alt bloğa sahip:
<block type="core/text_list" name="product_list.name.after" as="name.after" />
<block type="core/text_list" name="product_list.after" as="after" />
Ve şablonun kendisinde bunların yüklenmeye ve kullanılmaya çalışılmadan önce var olup olmadıklarını kontrol eden kontroller yoktur.
Hızlı bir düzeltme, ana şablonun bir kopyası olan ancak aşağıdaki düzenlemelerle farklı bir şablon kullanmak olacaktır:
<?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Şablonda iki kez gerçekleşir ama aftersadece bir görünür. Unutulmaması gereken son şey, varsayılan rwd css'nin, cms sayfalarındaki ürün listesinin eylemler bölümünü gizlemesidir.