Joomla,搜索模块控制器不重定向

时间:2013-09-19 15:53:23

标签: php search joomla joomla2.5

我正在使用Joomla 2.5.11和标准搜索模块。没有什么花哨。有两个兄弟网站,开发和生产。不幸的是,一个(非技术讽刺)管理员在后台做了一些破坏搜索的东西。我不确切知道是什么,他可以使用自动升级按钮,弄乱模块/插件。我注意到了,因为搜索模板在视觉上发生了变化,但我不知道如何。

幸运的是,我仍然在开发网站上进行搜索;为了比较。插件/搜索,mod_search和组件/搜索中的所有文件都是相同的。没有php错误。

行为如下: *我在页面中键入搜索“johndoe” * Joomla重定向到首页index.php?searchword = johndoe而不显示结果

当我记录代码时,我可以跟踪的最后一件事是SearchController components / com_search / controller.php ):

function search()
{
    [...]

    $searchword = trim(str_replace($badchars, '', JRequest::getString('searchword', null, 'post')));
    // if searchword enclosed in double quotes, strip quotes and do exact match
    if (substr($searchword, 0, 1) == '"' && substr($searchword, -1) == '"') {
        $post['searchword'] = substr($searchword, 1, -1);
        JRequest::setVar('searchphrase', 'exact');
    }
    else {
        $post['searchword'] = $searchword;
    }
    $post['ordering']   = JRequest::getWord('ordering', null, 'post');
    $post['searchphrase']   = JRequest::getWord('searchphrase', 'all', 'post');
    $post['limit']  = JRequest::getUInt('limit', null, 'post');
    if ($post['limit'] === null) unset($post['limit']);

    [...]

    $uri = JURI::getInstance();
    $uri->setQuery($post);
    $uri->setVar('option', 'com_search');

    // index.php?searchword=johndoe&searchphrase=all&Itemid=117&option=com_search

    $this->setRedirect(JRoute::_('index.php'.$uri->toString(array('query', 'fragment')), false));
}

通常这个url(index.php?searchword = johndoe& searchphrase = all& Itemid = 117& option = com_search)应该引导我进入搜索组件。但它从来没有找到它,而是直接进入头版;没有实例化 SearchModelSearch 类( components / com_search / models / search.php )。

此致

3 个答案:

答案 0 :(得分:2)

转到模板/ Your_Template / html / mod_search / default.php

更改action="index.php"

action="<?php echo JRoute::_('index.php?option=com_search');?>"

示例:

<form action="<?php echo JRoute::_('index.php?option=com_search');?>" method="post" class="default-search">
....
</form>

答案 1 :(得分:1)

问题是由于JoomSef中的错误配置(用于重写网址的模块)引起的。

结果页面已链接到主页。主页上没有显示结果的地方。事实上,搜索工作正常,但没有任何内容可见。

我去了 JoomSEF&gt;管理SEF网址并查找“option = com_search”网址:

Search => index.php?option=com_search&view=search&Itemid=101

Itemid = 101 是主页。我将此参数更改为 Itemid = 114 ,这是一个专门用于此模块的空内容页面。

Search => index.php?option=com_search&view=search&Itemid=114

答案 2 :(得分:-1)

templates\Your Template\html\mod_search\default.php上只需添加

$mitemid    = 0 ;