3

我想在 liferay 的控制面板中添加一个新部分,并且在该部分中我想拥有我的自定义 portlet。我是用分机做的。但是我想用 hook 来做。可能吗 ?

4

2 回答 2

1

我认为使用钩子不会那么容易,原因如下:

  1. 您不能在 Hook 中修改 -com.liferay.portal.util.PortletCategoryKeys包含用于显示不同部分的键的类。不同的部分在此类中硬编码在 String 数组ALL中。
  2. 您不能修改PortalImpl#isControlPanelPortlet()使用PortletCategoryKeys#ALL来确定所讨论的请求是否针对控制面板 portlet 的逻辑。
  3. 然后你还有另一种方法,你不能用 Hook 修改它并且被广泛使用PortalImpl#getControlPanelCategory()

用钩子做:

我没有尝试过,但我认为如果您需要使用钩子来执行此操作,则必须更改所有使用上述PortletCategoryKeys#ALL方法PortalImpl的 JSP,并为 JSP 中的所有这些方法提供自定义实现。

我真的很想知道您是如何使用 EXT 实现它的,可能只是您覆盖的步骤或方法。这样我就可以尝试将它们转换为钩子。

这是我的理解。希望这可以帮助。

于 2012-12-27T12:04:18.983 回答
0

随着 Marketplace 的出现,ControlPanel 有了一个名为“Marketplace”的新类别,该部分在插件中引入。但是,我从未检查过 6.1 GA2 是否引入了该插件刚刚填充的新部分。如果你能找到该部分的踪迹,请检查市场插件。

另一方面,还没有人命名任何肯定需要新部分的部分(尽管有些人问我如何解决同样的问题)。因此,您可能需要重新考虑要求并选择现有部分之一。如果你不这样做,至少我会对新部分的名称和目的感兴趣 - 我可能会找到第一个实际上证明这种实现的合理性......

于 2012-12-30T22:54:31.347 回答