Magento中将advanced search 添加到边栏

在Magento中使用xml调用静态块相信大家不会太陌生,比如将货币调用到头部,将mini登录框调用到首页等等。

这边简单记录一下,边栏调用高级搜索功能的过程

首先找到高级搜索相关的xml,

catalogsearch.xml 中

<block type=&rdquo;catalogsearch/advanced_form&rdquo; name=&rdquo;catalogsearch_advanced_form&rdquo; template=&rdquo;catalogsearch/advanced/form.phtml&rdquo;/>

将这块添加到左边栏或右边栏后,刷新页面,会发现两个问题,一是在分类查看页的时候breadcrumbs 会出现异常,二是在输入条件后点击搜索无法跳转到正确的页面。

解决这两个问题,首先查看此块对应的代码。app/code/core/Mage/CatalogSearch/Block/Advanced/Form.php

public function _prepareLayout()   会发现第一个函数就修改了面包屑

public function getSearchPostUrl()  点击动作的处理页面

我们只是基于已有的高级搜索功能,将其添加到边栏,所以就不要直接去修改源文件咯。

于是创建一个新的模块,将这第一个函数重写,第二个可重写也可以自定义一个函数

 

<?php  class WJ_Theme_Block_Search extends Mage_CatalogSearch_Block_Advanced_Form {        public function _prepareLayout() { }        public function getABSPostUrl() {                return $this->getUrl('catalogsearch/advanced/result');        }  }

模板布局文件中调用

 

<block type=&rdquo;wjtheme/search&rdquo; name=&rdquo;sidebar_advanced_form&rdquo; template=&rdquo;catalogsearch/advanced/mini.form.phtml&rdquo;/>

完成自定义的代码及样式编辑后,测试即可

wKioL1deecKzvmg6AACc85YXz3Y633.png-wh_50

演示网址http://thememarine-1610-wj.magentoeasy.net/clocks-barometers.html