在 Joomla 2.5 中,我正在寻找一种方法,通过修改 com_search 模板将更多与文章相关的功能添加到搜索结果中。在这种情况下,我想知道如何包含指向结果类别的链接?default_results.php 页面包含每篇返回文章的类别/部分,但没有指向该类别的链接。它可以被箭头运算符引用吗?
此外,其他文章功能(例如评分和作者)呢?这些也可以包含在搜索结果中吗?
在 Joomla 2.5 中,我正在寻找一种方法,通过修改 com_search 模板将更多与文章相关的功能添加到搜索结果中。在这种情况下,我想知道如何包含指向结果类别的链接?default_results.php 页面包含每篇返回文章的类别/部分,但没有指向该类别的链接。它可以被箭头运算符引用吗?
此外,其他文章功能(例如评分和作者)呢?这些也可以包含在搜索结果中吗?
如果您正在考虑为搜索结果创建模板覆盖,您将受到可用数据的限制。
查看搜索结果view.html.php
,结果数组包含具有以下属性的对象列表(如在 Eclipse 中观察到的)
stdObj:
- title
- text
- created
- browsernav
- catid
- slug
- href
- section
- count
如您所见,tmpl 无法使用评级和作者,因此您必须修改搜索组件以获取此附加信息或使用可用信息加载content
模型并自行提取。
要链接到类别博客页面,您可以catid
结合使用JRoute
来创建类别博客布局的 URL。像这样的东西可以工作(NB使用多行来提高可读性):
$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!内容,如联系人、内容、网络链接等。第三方扩展也可能提供搜索插件,例如。virtuemart
要找出特定插件返回的内容,您需要查看相关文件,例如。对于内容/plugins/search/content/content.php
在 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>
(但是我不确定这是否是最佳解决方案。)