【问题标题】:joomla virtuemart search slash errorjoomla meadowmart 搜索斜线错误
【发布时间】:2012-11-21 15:28:55
【问题描述】:

我目前正在开发一个joomla 网站,其中包含virtuemart 和我的书面组件,它运行良好,但是当我尝试使用virtuemart 搜索产品时出现问题,例如当我搜索12/4 name12/4 name 替换为 124 name 并且不显示任何结果。

所以问题是 sql-query 在哪里加载这些项目以便我可以修改它? 还是有另一个plug-in 或与/ 一起使用的东西,或者有什么办法可以解决这个问题?

【问题讨论】:

  • 我怀疑您在结果中的某处使用 stripslashes 来删除 html 字符之前的斜杠。然而,它也删除了额外的斜线。尝试搜索/玩弄它!
  • @GeorgeWilson 你能指出我搜索的内容吗?我的猜测是virtuemart 搜索plugin......如果是,则使用joomlas intagrated 命令使用这些方法mysql_real_escape_stringaddslashes。我对joomlaPHP 不太了解,但这会是问题所在吗?

标签: joomla joomla2.5 virtuemart


【解决方案1】:

所以过了一会儿,我终于解决了这个问题。我的修复不是很好,因为我没有找到 virtuemart 组件从搜索查询中删除斜杠的确切位置,所以我只是这样做......

由于frontend 使用位于admin/components/com_virtuemart/modules 的模块,我不得不编辑名为product 的模块。在名为sortSearchListQuery2 的函数中我添加了一些代码

 if ($useCore) {
//      if ( $this->keyword !== "0" and $group ===false) {
            if (!empty($this->keyword) and $this->keyword !== '' and $group === FALSE) {
                $this->setKeyWord($_GET['keyword']);//Added this line!
                        //$keyword = trim(preg_replace('/\s+/', '%', $keyword), '%');
                $keyword = '"%' . $this->_db->getEscaped ($this->keyword, TRUE) . '%"';
                //var_dump($keyword,$this->keyword,$_GET['keyword']); debug_zval_dump($keyword); debug_print_backtrace(); die();

view.html.php 中名为Categoryfrontend 视图上,我将$keyword=vmRequest::uword('keyword', '', ' ') 替换为$keyword = $_GET['keyword']

这就是我解决这个问题的方法!

【讨论】:

    猜你喜欢
    • 2019-10-09
    • 2023-03-14
    • 2011-02-20
    • 1970-01-01
    • 2013-05-25
    • 1970-01-01
    • 2013-08-12
    • 1970-01-01
    • 2021-03-24
    相关资源
    最近更新 更多