最新消息:Excel无乱码转CSV,由于工作原因很少更新博客和回复大家的评论,非常抱歉。

[原创]Magento搜索页随机调出关键词

 

1、  找到类文件:Mage_CatalogSearch_Block_Result

路径:app\code\core\Mage\CatalogSearch\Block\Result.php,在214行后面添加一个方法。代码如下:

public function getRandKey($limit = 20)
{
        $handle = Mage::getSingleton('core/resource')->getConnection('core_write');

        $query = $handle->query('SELECT `query_text` as name FROM `catalogsearch_query` WHERE query_id >= (select floor(RAND()*(SELECT MAX(query_id))) FROM `catalogsearch_query`) and `display_in_terms` = 1  LIMIT '.$limit);

        $html ='';

        while ($row = $query->fetch()) {

               $row = new Varien_Object($row);

               $html .= '<li><a href="'.$this->getSearchUrl($row).'">' . $row->getName() . '</a></li>';

        }

        return '<ul style="overflow:hidden;margin:5px 0;">'.$html.'</ul>';
}

public function getSearchUrl($obj)
{
        $url = Mage::getModel('core/url');

        $url->setQueryParam('q', $obj->getName());

        return $url->getUrl('catalogsearch/result');
}

getRandKey()是随机获取关键词,getSearchUrl()是用来获取关键词的URL地址。

2、  在模板result.phtml直接调用方法来显示:

getRandKey()可以给定参数来控制显示的条数,默认是20条。

找到模板:app\design\frontend\base\default\template\catalogsearch\result.phtml,在42行找到<?php echo $this->getProductListHtml()?>,在它上面插入<?php echo $this->getRandKey();?>,如果产品列表下面也要显示,在其下方也插入同一代码即可。

需配合模板样式,可自行调整。

转载请注明:嗨酷哥,有你更酷! » [原创]Magento搜索页随机调出关键词

与本文相关文章

发表我的评论

取消评论
表情 插代码

Hi,您需要填写昵称和邮箱!

  • 必填项
  • 必填项

网友评论2

  1. 为什么我照做之后的数据是竖向呈现的,好难看啊

    涩郎2012-08-18 09:00 回复
  2. 支持!

    givens2012-02-06 13:34 回复