Liferay 7 Eclipse IDE覆盖默认类别行为

时间:2019-07-09 09:16:31

标签: liferay liferay-7 liferay-ide

我需要创建一个Portlet来更改Liferay 7中的默认类别行为/界面。
我的目标是复制 assetcategory 表,展开和更改其列,并使用此新表作为Liferay后端中类别的参考。

因此,我的portlet必须更新三个关键点:

  1. 用于在其上创建/更新类别表的类别组织UI D B。我可以创建一个新的Liferay模块项目( panel-app 模板),该项目可以从侧面菜单中显示UI后端界面并与数据库进行交互。
  2. 在Web内容中
  3. 覆盖默认的 类别选择 面板 属性面板(元数据>类别选择)。我可以创建一个新的 Liferay模块项目片段以覆盖 com.liferay.asset.categories.selector.web ,但是我注意到我可以 仅选择一个文件路径(例如 META-INF / resources / view.jsp
  4. 覆盖默认的资产发布者过滤器行为以允许 我的自定义类别选择。我尚未对此进行调查 点。

我目前停留在第2点,因为在创建了新的Liferay模块项目片段之后,将目标Host OSGI Bundle设置为 com.liferay.asset.categories.selector.web (我相信是正确的文件,如果不是,请纠正我),然后将覆盖的文件选择为 META-INF / resources / view.jsp ,我无法继续重绘类别选择界面。< br />
这是我的尝试:

  1. 更新代码 view.jsp (例如添加一些文本字符串)我可以正确地进行 在portlet中看到它们。
  2. 删除/注释 view.jsp 中的所有代码,将显示错误: 资产类别选择器暂时不可用
  3. 选择所有可在主目录中覆盖的三个文件 Portlet向导( META-INF / resources / view.jsp init.jsp init-ext.jsp )和更新 view.jsp (如第一个示例) 发生在portlet中

下面的一些屏幕截图:

案例1  enter image description here  enter image description here

案例2  enter image description here  enter image description here

案例3  enter image description here  enter image description here

1 个答案:

答案 0 :(得分:0)

  

我需要创建一个Portlet来更改默认类别   Liferay 7中的行为/界面   assetcategory表,展开和更改其列,然后使用此新   表格作为Liferay后端中类别的参考。

仅此一项听起来是一项艰巨的任务,比stackoverflow问题中的任务还大。

AssetCategories用于每种单一的内容类型,例如WebContent,Blog文章,留言板帖子,Wiki页面,知识库文章等。通过您自己的实现替换如此重要的组件将安全地破坏您的下一次升级体验,因为在那里您必须再次执行此操作,从而带来了代码将在下一版本中进行任何更改。并且此“升级”包括安全补丁。

总体而言,您的前提在我看来像x-y problem,因此我建议您退出预期的解决方案,并寻找其他满足您业务需求的方案。当然有一些。

我的建议:与其添加一个非常重要的通用组件,不如将其添加到平台中,而是以特定于业务的方式重新实现它。如果您需要与Asset Publisher提供的筛选不同的资源:构建自己的Asset Publisher,并在此处实施特定于业务的规则。或者,再考虑以不同于当前组织内容的方式组织内容。

除非您已经是Liferay Core Developer,并且正在寻求有关如何更改下一个版本的实现的提示。但是您的问题历史记录看起来不太像。