在Magento的博客上添加搜索字段

时间:2013-06-04 11:13:25

标签: php magento search magento-1.7

我希望在我们的一个由Magento提供支持的网站上为博客添加搜索字段。我们目前使用的是第三方插件 - http://ecommerce.aheadworks.com/free-stuff/blog.html我已经联系过foreworks,博客没有搜索功能。然而,他们说我可以使用类似http://ecommerce.aheadworks.com/magento-extensions/advanced-search.html的东西,但我不确定销售团队是否试图鞭打我们另一种产品。

我是PHP的新手,甚至是Magento的新手,所以我真的在寻找一些建议。这是我可以相对轻松地建立自己的东西吗?或者像插件一样,他们推荐的东西我应该走向什么?

我希望搜索结果在单独的模板上输出到列出博客帖子的模板。我已经用Google搜索了一段时间,如果进行产品搜索我就能找到所有内容。

关于博客目前如何运作的一些信息。网站上有两个页面显示不同的博客帖子,具体取决于您在添加帖子时选择的类别。这将决定帖子随后被拉到哪个页面。

非常感谢任何帮助......

谢谢!

2 个答案:

答案 0 :(得分:4)

技术上可能需要5分钟才能实施的解决方案:

在/app/code/community/AW/Blog/Block/Collection.php中替换公共函数getPosts();用:

public function getPosts()
{

    $collection = parent::_prepareCollection();

    $tag = $this->getRequest()->getParam('tag');

    if ($tag) {
        $collection->addTagFilter(urldecode($tag));
    }


    //this part here is responsible for search

    $search = $this->getRequest()->getParam('search'); //get request "search" parameter from url

    if ($search) {
        $collection->searchBy(urldecode($search));
    }

    //end

    parent::_processCollection($collection);

    return $collection;
}

之后,在以下代码中添加以下代码:/app/code/community/AW/Blog/Model/Mysql4/Blog/Collection.php CREATE FUNCTION searchBy()

public function searchBy($key)
{         
    $this->getSelect()
            ->where("(title) LIKE '%$key%' OR (short_content) LIKE '%$key%'");

    return $this;
}   

虽然它不是完美的解决方案,但它正在做它的工作,你可以按照你想要的方式改进MySql查询。

现在,当你去:http://example.com/blog?search=keywords

博客将显示包含特定关键字的帖子。

希望它有所帮助。

谢谢, 亚当

答案 1 :(得分:0)

我建议您使用" Google自定义搜索集成Solwin" Magento扩展。

主要特点:

  • 使用Google搜索算法
  • 帮助您增加网站的搜索引擎优化
  • 适用于多商店环境
  • 使用图片改善您的Google搜索结果
  • 设置Google自定义搜索引擎以搜索您的多个网站。
  • 从admin
  • 轻松启用/禁用
  • 自定义每页的记录数
  • 启用/禁用图片搜索
  • 您需要做的就是填写搜索引擎唯一ID
  • 使用您的内置搜索功能轻松替换
  • 管理员可以启用/禁用自动填充功能 - 这样可以更快地进行查询。
  • 启用'按顺序排列'来自管理员的下拉列表
  • 易于配置

您可以轻松安装此扩展程序。 在这里,您可以查看"Google Custom Search Integration By Solwin"