在 Liferay 中重载 Web 内容 Portlet

Overloading web content Portlet in Liferay

在 Liferay 中,当您向页面添加网页内容时,会创建一个 Portlet,您可以选择要显示的网页内容(以管理员身份登录时),您还可以选择一些参数(查看权限内容,分享...)。 我想创建一个重载此 Portlet 的 Portlet,以允许管理员使用自定义参数选择他/她的 Web 内容。

有谁知道如何做到这一点?谢谢!

  1. 我想到的第一个想法是挂钩默认 Web 内容 Display Portlet 这将允许您添加一些自定义业务 此 portlet 的逻辑,不需要实现您已经获得的所有内容 从原来的。这仍然很大程度上取决于你的新 您要添加的功能很复杂。

    正如你所说,你是初学者,所以这里有一些提示,如何开始创建钩子:

  2. 另一个想法是使用 maven war overlay 你可以阅读 关于更多 http://java.dzone.com/articles/mavens-war-overlay-what-are

正如您所说的,您是初学者,我建议创建您自己的独立于 Liferay 的 portlet 的 portlet。您可以使用 Liferay 的 API 来获取您喜欢的文章及其内容,同时实现您自己的功能来过滤出您喜欢的内容。

我建议自定义 portlet 的原因是:Liferay 的 portlet 必须尽可能通用,以匹配尽可能多的用例。因此,在实现中有很多您不需要(也不需要理解)的条件。如果您有一些狭窄的非通用要求以获得替代行为,那么您更容易准确地实现这些要求,而不是添加到通用的、高度条件化的 UI。另外,您可能希望保留原始 UI 用于其他目的。如果您在自己的实施中犯了错误,原来的 Web 内容显示 Portlet 仍会继续工作。

话虽如此,您也可以查看 AssetPublisher portlet。它是内容管理的瑞士军刀,可能已经可以满足您的需求(甚至更多)。这采用标准并将在运行时评估它们,显示匹配的文章(或其他内容类型)。