Magento中将advanced search 添加到边栏
在Magento中使用xml调用静态块相信大家不会太陌生,比如将货币调用到头部,将mini登录框调用到首页等等。
这边简单记录一下,边栏调用高级搜索功能的过程
首先找到高级搜索相关的xml,
catalogsearch.xml 中
<block type=”catalogsearch/advanced_form” name=”catalogsearch_advanced_form” template=”catalogsearch/advanced/form.phtml”/>
将这块添加到左边栏或右边栏后,刷新页面,会发现两个问题,一是在分类查看页的时候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=”wjtheme/search” name=”sidebar_advanced_form” template=”catalogsearch/advanced/mini.form.phtml”/>
完成自定义的代码及样式编辑后,测试即可
演示网址http://thememarine-1610-wj.magentoeasy.net/clocks-barometers.html