经过几天的编码,我得到了一个包含子产品的分类列表,我将分享我的代码,也许它会帮助某些人:
public function getProducts(){
$categories=Mage::getModel('catalog/category')->getCollection();
$result;
foreach($categories as $cat)
{
$temp = null;
$_temp = null;
$are = false;
$_cat = $cat->load();
$temp['category'] = $_cat->getName();
$prod = $_cat->getProductCollection()
->addAttributeToFilter('name', array('like'=>'%'.$this->getRequest()->getParam('q').'%'));
foreach($prod as $p){
//die(print_r($p->load()));
$_temp[] = $p->load();
$are = true;
}
if($are){
$temp[] = $_temp;
$result[] = $temp;
}
}
return $result;
}
我把这个函数放在自定义模块的一个块中,这个函数返回一个数组,每个位置有另一个数组,然后在
.phtml
<?php $productsResult = $this->getProducts();
if(count($productsResult)+count($prodnorelatedResult)>0){ ?>
<h2>Products</h2>
<?php foreach($productsResult as $p){ ?>
<h3><?php echo $p['category'] ?></h3>
<?php foreach($p[0] as $_p){ ?>
<div><a href="<?php echo $_p->getProductUrl()?>"><?php echo $_p->getName() ?></a></div><br/>
<?php } ?>
<br/>
<?php } } ?>
下面是一个示例,说明如何使用产品名称显示类别的名称,并将其作为指向产品详细信息页面的链接