你现在的位置:首页 > PHP网站建设知识库 > magento > 正文

按商品分类来搜索magento商品

使用magento搜索商品时,是不能选择商品分类的,不能在一个商品分类里来搜索商品。我们可以对magento二次开发,加上这个功能,让搜索功能更精准、更人性化,按商品分类来搜索magento商品。

\

需要注意的是,magento的搜索设置也是要设置好,太模糊关键词搜索结果是不精准。

代码如下:


    <?php
    $category = Mage::getModel('catalog/category');
    if(is_object(Mage::registry('current_category'))){
        $current_category_path=Mage::registry('current_category')->getPathIds();
    }else{
        $current_category_path = array();
    }
    $category->load(Mage::app()->getStore()->getRootCategoryId());
    $children_string = $category->getChildren();
    $children = explode(',',$children_string);
    $extra_options='';
    foreach($children as $c){
        $selected = (in_array($c, $current_category_path))?'SELECTED':'';
        $extra_options.= '<option value="' . $c . '" ' . $selected . '>' . $category->load($c)->getName() . '</option>' . "\n";
    }
    ?>
    <form id="search_mini_form" action="<?php echo $this->helper('catalogSearch')->getResultUrl() ?>" method="get">
        <fieldset>
            <legend><?php echo $this->__('Search Site') ?></legend>
            <div class="mini-search">
                <input id="search" type="text" class="input-text" name="<?php echo $this->helper('catalogSearch')->getQueryParamName() ?>" value="<?php echo $this->helper('catalogSearch')->getEscapedQueryText() ?>" />
                <select name="cat" id="cat" class="input-text">
                <option value="">All Departments</option>
                <?= $extra_options ?>
               </select>
                <input type="submit" value="Go" style="border: 1px solid #808080;"alt="<?php echo $this->__('Search') ?>" />
                <div id="search_autocomplete" class="search-autocomplete"></div>
                <script type="text/javascript">
                //<![CDATA[
                    var searchForm = new Varien.searchForm('search_mini_form','search', '<?php echo $this->__('search site...') ?>');
                    searchForm.initAutocomplete('<?php echo $this->helper('catalogSearch')->getSuggestUrl() ?>', 'search_autocomplete');
                //]]>
                </script>
            </div>
        </fieldset>
    </form>

使用上面的代码覆盖文件template/catalogsearch/form.mini.phtml这个文件即可。