php - 在 Magento 博客上添加搜索字段

标签 php magento search magento-1.7

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

我是 PHP 新手,甚至是 Magento 新手,所以真的在寻求一些建议。我可以相对轻松地自己构建它吗?或者是他们推荐的插件之类的东西,我应该去尝试?

我希望搜索结果在单独的模板上输出到列出博客文章的模板上。我已经用谷歌搜索了一段时间,所有我能找到的都是产品搜索。

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

任何帮助将不胜感激...

谢谢!

最佳答案

技术解决方案可能需要您 5 分钟才能实现:

在/app/code/community/AW/Blog/Block/Collection.php 中替换 public 函数 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

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

希望有帮助。

谢谢, 亚当

关于php - 在 Magento 博客上添加搜索字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16916360/

相关文章:

php - 从 session 中提取用户名的正确方法是什么?

PHP、Javascript JSON、XSS 保护

php - 遍历 amazon S3 文件夹中的对象

magento - 如何自定义产品URL?

php - 将产品属性移至 magento admin 中的新组

php - WKHTMLTOPDF 抛出错误代码 127

Magento 连接管理器呈现空白页面

php - 在 Yii2 搜索中比较匹配的数组索引值

macos - 如何在 OSX 12.3.1 上启用 Spotlight 来索引我的 NAS?

php - SQL自定义搜索函数: unable to join two tables