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

Liferay 7 Eclipse IDE override default categories behaviour

我需要创建一个 portlet 以更改 Liferay 7 中的默认类别 behaviour/interface。
我的 objective 是复制 assetcategory table,展开并更改其列,并使用这个新的 table 作为 Liferay 后端类别的参考。

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

  1. 类别组织 UI 到 create/update 类别 table 上 D B。我能够创建一个新的 Liferay 模块项目(panel-app 模板),它可以呈现 UI 后端接口从侧面菜单并与数据库交互。
  2. 覆盖 Web 内容中的默认 类别 selection 面板 属性面板(元数据 > 类别 select)。我可以创造一个新的 Liferay 模块项目片段覆盖 com.liferay.asset.categories.selector.web,不过我注意到我可以 select只有一个文件路径(eg.META-INF/resources/view.jsp
  3. 覆盖默认资产发布者过滤器行为以允许 我的自定义类别 selection。我还没有调查过这个 点.

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

这是我的尝试:

  1. 更新代码 view.jsp(例如添加一些文本字符串)我可以正确 在 portlet 中查看它们。
  2. Removing/commenting view.jsp中的所有代码显示错误: 资产类别select或暂时不可用
  3. 选择所有三个可在主文件中覆盖的文件 portlet 向导(META-INF/resources/view.jspinit.jspinit-ext.jsp) 并更新 view.jsp(如第一个示例) 发生在 portlet

下面是一些截图:

案例一

案例二

案例三

I need to create a portlet in order to change the default category behaviour/interface in Liferay 7. My objective is to duplicate assetcategory table, expand and change its columns, and use this new table as a reference for categories within Liferay backend.

仅此一项就听起来像是一项艰巨的任务,比 Whosebug 问题所能解决的还要大。

AssetCategories 用于每种内容类型,例如WebContent、博客文章、留言板帖子、Wiki 页面、知识库文章等。用你自己的实现替换这样一个重要的组件会安全地破坏你的下一次升级体验,因为你必须再次这样做,带来你的下一个版本中将进行的任何更改的代码。此 "upgrade" 包括安全补丁。

总的来说,我觉得你的前提听起来像 x-y problem,我宁愿建议你从你的预期解决方案中退一步,寻找其他选项来满足你的业务需求。肯定有一些。

我的建议:宁愿向平台添加一些东西,也不要剥离一个非常核心的通用组件,以 business-specific 的方式重新实现它。如果您需要不同于 Asset Publisher 提供的过滤:构建您自己的 Asset Publisher 并在那里实施特定于业务的规则。或者重新考虑以不同于当前组织方式的方式组织您的内容。

除非您已经是 Liferay Core 开发人员并且正在寻求有关如何更改下一个版本的实现的提示。但是你这里的问题历史看起来不像。