gpt4 book ai didi

joomla - 如何在 Joomla 中使用 JRoute 路由到搜索菜单项?

转载 作者:行者123 更新时间:2023-12-02 06:44:22 28 4
gpt4 key购买 nike

我正在尝试在 Joomla 的模板中创建一个框!这将显示所有关键字并将它们链接到适当的搜索页面。我有一个菜单项集,但是,我不想将菜单项硬编码到模板中,因此我想使用 JRoute 对象来生成 SEF url。

我正在使用这个功能:

JRoute::_('index.php?option=com_search&searchword='.$keyword);

或者这个:

JRoute::_('index.php?option=com_search&view=search&searchword='.$keyword);

但是,这会生成如下所示的网址:

/component/search/?searchword=africa

何时应该创建这样的搜索网址:

/searchmenuitem?searchword=africa

我在网上进行了大量搜索,但没有找到解决此问题的方法。任何想法将不胜感激。

好的,为您提供一些附加信息。我仅在尝试从 com_content 中的模板路由 URL 时才遇到此问题。如果我尝试从 com_search 中的模板路由 url,一切都会完美运行。那么,com_content 是什么原因导致它无法正常工作呢?

谢谢!大卫

最佳答案

在 joomla 管理页面中,转到您为搜索结果页面选择的菜单项并获取该菜单项的 ID (itemId)。

您可以尝试使用:

JRoute::_('index.php?option=com_search&view=search&Itemid=256&searchword=asdsadasdsa');

甚至

JRoute::_('index.php?Itemid=256&searchword=asdsadasdsa');

两者都应产生:/searchmenuitem.html?searchword=asdsadasdsa

编辑:为了使其更舒适,您可以将 itemId 作为参数添加到模板中。

还有另一种方法,您可以从数据库中获取 itemId(多语言网站需要此方法)。如果您需要,请告诉我。

编辑2:这是:

$db   =& JFactory::getDBO();
$lang =& JFactory::getLanguage()->getTag();
$uri = 'index.php?option=com_search&view=search';

$db->setQuery('SELECT id FROM #__menu WHERE link LIKE '. $db->Quote( $uri .'%' ) .' AND language='. $db->Quote($lang) .' LIMIT 1' );

$itemId = ($db->getErrorNum())? 0 : intval($db->loadResult());

关于joomla - 如何在 Joomla 中使用 JRoute 路由到搜索菜单项?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6837195/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com