【问题标题】:Magento search result to my wayMagento 搜索结果以我的方式
【发布时间】:2013-11-16 00:26:14
【问题描述】:

我一直在尝试更改 magento 的默认结果页面,我想要按类别分组的产品,它不包括子类别而是产品,搜索条件是产品名称,所以,我试图使用magento的默认简单搜索,直到现在没有结果,也许我必须覆盖搜索并创建一个新的, 我知道有了这个我可以得到所有的类别和它的产品集合,

$categories = Mage::getModel('catalog/category')
->getCollection()
->addAttributeToSelect('*');    

foreach($categories as $category)
{
    $array = $category->getParentIds();
    $children = explode(',',$category->getChildren());
    $products = $category->getProductCollection();
}

但我需要按产品名称过滤,我要显示的结果是这样的

Category I  
    - Product I  
    - Product II  
Category II  
    - Product III  
    - Product IV  

【问题讨论】:

  • 那你要什么?到目前为止,您尝试过哪些更改?

标签: php search magento


【解决方案1】:

经过几天的编码,我能够获得包含子产品的类别列表,我将分享我的代码,也许它会对某人有所帮助:

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 } } ?>

这是一个示例,说明我如何使用他的产品名称显示类别名称作为产品详细信息页面的链接

希望对你有帮助!

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-02-16
    • 2011-07-15
    • 1970-01-01
    • 2014-10-01
    • 2010-11-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多