我将 Joomla 2.5.11 与标准搜索模块一起使用。没有什么花哨。有两个兄弟站点,开发和生产。不幸的是,一位(非精通技术的)管理员在后台做了一些破坏搜索的事情。我不知道具体是什么,他本可以使用自动升级按钮,弄乱模块/插件。我注意到它是因为搜索模板在视觉上发生了变化,但我不知道如何。
幸运的是,我仍然在开发站点上进行搜索;进行比较。plugins/search、mod_search 和 components/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)。
- 重定向有什么问题?
- 我忘了检查任何重要的配置吗?
如何跟踪班级的使用情况
class SearchModelSearch extends JModelLegacy {}
开发网站:http ://gtsoul.net/cnjeu/presentation?searchword=catane
- 制作网站:http ://cnjeu.fr/accueil?searchword=catane
问候