【问题标题】:Liferay 7.2 Customize Documents And Media PorletLiferay 7.2 自定义文档和媒体 Portlet
【发布时间】:2021-02-06 08:36:37
【问题描述】:

我有 Liferay 7.2 我想自定义小部件 Documents AND Media 布局的 html

我尝试为文档和媒体创建一个挂钩,但似乎这不是正确的方法。

我该怎么做?

【问题讨论】:

    标签: portlet liferay-7


    【解决方案1】:

    首先,您在谈论挂钩这一事实告诉我您来自 Liferay 6 或更早版本。忘记旧的模块类型(“war-style modules”),拥抱新的“jar-style modules”或“OSGi modules”,它们在基础上利用了 OSGi 方法和机制。最接近钩子功能的新模块类型是"module fragment"

    或者,如果您想创建一个模块来覆盖多个其他模块的 JSP(或覆盖 JSP 作为其主要目的的副作用),您可能需要查看"JSP Bags"

    不过,根据Liferay's "Introduction to Customizing JSPs",这两种方法都不鼓励,应作为最后的手段。

    首选方法是使用Dynamic Includes(尽管它们仅在目标portlet 被编写为包含包含点时才有效)或Portlet Filters(基本上允许您以编程方式编辑对标准的请求和响应Portlet 类和 JSP)。

    不过,如果您的目标是替换标准文档和媒体小部件的大部分 JSP(请记住:小部件仍然是 Portlet,它们只是在前端重命名),模块片段似乎仍然是最好的前进方式。

    要识别正确的模块,请执行以下必要步骤。我将使用控制面板中的 DLAdmin portlet 作为示例来展示它:

    • 确定要编辑的 portlet:使用浏览器的 DOM 检查器查看 HTML。在感兴趣的区域周围寻找 ID 为 <section class="portlet" id="portlet_com_liferay_document_library_web_portlet_DLAdminPortlet"> 的部分标签。
    • 现在将该 ID 转换为带有 portlet 类的包路径:com.liferay.document.library.web.portlet.DLAdminPortlet。在Liferay github repository 中搜索该课程。 (去那里,按T,输入类名,找到它的Java类源文件。如果多次点击,你也需要检查包路径。)
    • 打开源文件后,在文件树中返回到src 文件夹的父文件夹。有一个bnd.bnd 文件。看看它,它会告诉你Bundle-SymbolicName
    • 使用Liferay IDEBlade CLI(取决于您的开发环境)为Bundle-SymbolicName 标识的模块创建模块片段。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-03-26
      相关资源
      最近更新 更多