首页 > 解决方案 > 从使用 Freemarker - Liferay 7 的主题访问在 portal-ext.properties 中定义的属性

问题描述

我需要从我的主题的 portal_normal.ftl 文件中获取在 portal-ext.properties 中设置的属性。使用 Liferay 7。

我所有的搜索都失败了,但我不敢相信我是第一个有这种需求的人。

对于背景,我需要显示存储在全局站点中的 Web 内容。这需要在每个站点上显示,这就是它进入主题的原因。它还需要由内容编辑器更新,因此内容不能包含在主题中。

我可以像这样使用 journalArticleLocalService 轻松显示 Web 内容

journalArticleLocalService.fetchArticle(10197,"1260480")

但我显然不想像这样硬编码组 ID 和文章 ID;由于另一个原因,它们已经存储在 portal-ext.properties 中。

另外,我知道主题配置值,我将它们用于许多其他配置需求,但这些需要为每个站点输入值,并且我们的实现中有数百个站点,所以这不是一个选项。

提前感谢您提供的任何解决方案或建议。

标签: liferayliferay-7

解决方案


属性(据我所知)在 Liferay 的 Freemarker 模板中不可用- 由于 Liferay 中的所有内容都试图逐步淘汰它们以支持基于 OSGi 的配置)我不建议在那里保持配置。任何更改都需要重新启动门户 - 正确的配置将使它们可以热更改。

但是,由于您现在遇到这种情况并且可能正在寻找一个快速的解决方案:您可以创建一个TemplateContextContributor并使所需的值可用于您的模板。


推荐阅读