Liferay 7 - 列出模板 FreeMarker 中的所有博客

Liferay 7 - List all blogs in template FreeMarker

我正在使用 Liferay 7 GA5,我需要为 Web Content 创建一个模板来打印所有博客,插入网站页脚。

正在研究,最简洁的解决方案是:

<#if entries?has_content>
    <#list entries as cur_entry>
        ${cur_entry.getUrlTitle()}<br>
    </#list>
</#if>

但是变量 entries 不存在并且 FreeMarker returns 给我错误 "The following has evaluated to null or missing..."

如何获取所有博客并打印它们的值(图片、标题、简短描述,link..)?

谢谢

问题是"Web Content to print all blogs" 使用模板时,它们会根据模板的类型插入到上下文中。当您使用网页内容时,entries 变量将不存在。

您可以继续的方法是使用 Liferay 的服务手动获取您的条目,这些服务已填充(如果启用)。

启用服务定位器后,您将寻找此服务:

https://docs.liferay.com/portal/7.0/javadocs/portal-kernel/com/liferay/blogs/kernel/service/package-summary.html

从那里您可以使用该服务来获取您需要的条目,也许您需要可用的计数或其他一些条件。只要您知道您需要将条目作为列表获取,您的 freemarker 代码就可以了。

我也有同样的需求

我已经使用 asset publisher 实现了它,这是最好和最简单的方法。

  1. 拖动 Asset Publisher 并将其配置为仅显示博客
  2. 为博客创建 ADT
  3. 在 ADT 中编写代码以显示图像、标题、简短描述,link..