在Joomla 2.5中,我正在寻找一种方法,通过修改com_search模板,为搜索结果添加更多与文章相关的功能。在这种情况下,我想知道如何包含结果类别的链接? default_results.php页面包含每个返回文章的类别/部分,但没有指向该类别的链接。它可以被箭头操作符引用吗?
此外,其他文章功能如评级和作者呢?这些也可以包含在搜索结果中吗?
答案 0 :(得分:0)
如果您正在考虑为搜索结果创建模板覆盖,则仅限于可用数据。
查看搜索结果view.html.php
,结果数组包含具有以下属性的对象列表(在Eclipse中观察到 )
stdObj:
- title
- text
- created
- browsernav
- catid
- slug
- href
- section
- count
正如您所看到的,tmpl无法使用评级和作者,因此您必须修改搜索组件以获取此附加信息,或使用可用信息加载content
模型并自行提取。
要链接到类别博客页面,您可以将catid
与JRoute
结合使用,以创建类别博客布局的URL。这样的事情可以起作用( N.B。使用多行来提高可读性):
$catURL = 'index.php?option=com_content&view=category&layout=blog&id=';
$catURL .= $result->catid;
$catURL = JRoute::_($catURL);
然后你需要做的就是在URL中包含包含类别(部分)的行,例如..
( <a href="<?php echo $catURL; ?>" ><?php echo $this->escape($result->section); ?></a> )
请注意还没试过这个代码只是在这里输入...
<强> [编辑] 强>
com_search(提供Joomla!搜索功能)使用搜索插件来收集结果,使用插件以便不同类型的内容可以提供结果......
所以,在Joomla! 2.5行表示默认加载/plugins/search/
的子文件夹,包括标准的Joomla!内容如联系人,内容, weblink 等。第三方扩展程序也可能提供搜索插件,例如。 virtuemart
要找出特定插件返回的内容,您需要查看相关文件,例如:内容/plugins/search/content/content.php
答案 1 :(得分:0)
在Joomla 3.3.0中,我设法以这种方式在搜索结果中显示链接的类别名称:
<?php
$url = $result->catslug;
$url = str_replace(':', '', $url);
$url = ltrim($url, '0123456789');
?>
<a href="<?php echo $url; ?>" ><?php echo $this->escape($result->section); ?></a>
(但我不确定它是否是最佳解决方案。)