如何仅在Joomla 2.5的搜索结果中显示模块?

时间:2013-02-25 02:49:12

标签: search joomla module

您好请阅读整个问题,这不仅仅是通过为搜索页面启用模块来解决:

我有几个模块专门显示在Joomla的搜索页面上。

我为搜索创建了一个隐藏的菜单条目,以告诉模块只显示在此页面上。这可以正常工作,但是当我单击其中一个结果并重定向到实际结果时,那些应该只显示在搜索页面上的模块仍会显示在结果页面中。

有任何线索如何解决这个问题?我使用第三方搜索增强模块时非常烦人,他们正在显示结果。

2 个答案:

答案 0 :(得分:1)

使用标准的Joomla,没有办法将模块仅定位到搜索结果页面,也没有将结果链接到结果的页面 - 但我知道你知道这一点!隐藏的菜单项是一个帮助,但不会更改该页面上某些链接的菜单项。这与Joomla中“Itemids”的分配和使用有关。

为了能够更具体地定位模块,您需要使用第三方扩展。我开发了MetaMod(www.metamodpro.com)来处理这个用例。 MetaMod是一个包装器模块,然后可以决定要包含哪个其他模块(或不包含)。因此,您将MetaMod分配给页面,然后在MetaMod中放入一段代码,决定要包含哪个其他模块。

在这种情况下,我将在MetaMod中使用以下内容:

if ($core_genius->check("pagetype = search, searchresults")) return XXX;
// replace XXX with the module id of the module to include
// ONLY on the search page, or the searchresults page, but
// no other type of page.

希望有所帮助,

斯蒂芬

答案 1 :(得分:0)

尽管MetaMod非常棒(我自己也使用过它而且Stephen的支持很棒!)还有另一种方法可以不使用第三方扩展。

你可以在你想要使用的模块位置上方(或下方)创建模板中的新模块位置,并将它们包含在if语句中,如下所示:

<?php if(!isset(JRequest::getString('searchword'))) : ?> 
    <jdoc:include type="modules" name="right-search" style="xhtml" />
<?php endif; ?>