Magento边栏调用高级搜索功能

Magento中将advanced search 添加到边栏

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

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

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

catalogsearch.xml 中

   
   
   
   
  1. <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()  点击动作的处理页面

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

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

 

   
   
   
   
  1. <?php  
  2. class WJ_Theme_Block_Search extends Mage_CatalogSearch_Block_Advanced_Form {  
  3. public function _prepareLayout() { }  
  4. public function getABSPostUrl() {  
  5. return $this->getUrl('catalogsearch/advanced/result');  
  6. }  

模板布局文件中调用

 

   
   
   
   
  1. <block type=”wjtheme/search” name=”sidebar_advanced_form” template=”catalogsearch/advanced/mini.form.phtml”/> 

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

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

你可能感兴趣的:(开发,职场,模板,休闲,Magento)