【问题标题】:Customizing My Sites portlet in Liferay在 Liferay 中自定义我的站点 portlet
【发布时间】:2015-06-02 15:38:43
【问题描述】:

我想在 liferay 中使用 ext 自定义“我的网站”portlet(即开箱即用的 portlet)。我该怎么做呢?如何获取我的站点 portlet 的源代码?

【问题讨论】:

  • 构建一个钩子插件来自定义“我的网站”就足够了。您可以从liferay.com的官方发行版下载门户源代码以获取代码。
  • 感谢 Daniele,我必须自定义“我的站点”的“mysitesPortlet”.java,因为当用户请求站点成员资格时,我希望拥有自己的功能。我假设为此我需要一个分机。

标签: liferay


【解决方案1】:

以下是门户源中我的站点 portlet 的文件结构:

观看次数:

\portal-web\docroot\html\portlet\my_sites\  
    - view.jsp
    - site_action.jsp

行动:

\portal-impl\src\com\liferay\portlet\myplaces\action\ViewAction.java

group_search.jsp(搜索字段)和site_action.jsp(操作按钮)的帮助下,正在从view.jsp 呈现初始视图。 为确保操作文件,打开\portal-web\docroot\WEB-INF\struts-config.xml,复制任何struts_action 值设置为view.jsp 上出现的渲染/操作URL 的参数(比如/my_sites/view/sites_admin/page),你会在struts-config.xml中找到以下映射

/my_sites/view

<action path="/my_sites/view" type="com.liferay.portlet.myplaces.action.ViewAction">
    <forward name="portlet.my_sites.view" path="portlet.my_sites.view" />
</action>

/sites_admin/page

<action path="/sites_admin/page" type="com.liferay.portlet.myplaces.action.ViewAction" />

如果你对扩展环境不熟悉,可以参考Setup GuideDevelopment Guide

现在,要扩展这些文件,您的 ext 中应该有以下结构:

观看次数:

\ext\testExt\docroot\WEB-INF\ext-web\docroot\html\portlet\my_sites\
    - view.jsp
    - site_action.jsp

行动:

\ext\testExt\docroot\WEB-INF\ext-impl\src\com\liferay\portlet\myplaces\action\ViewAction.java

注意: testExt 是您的扩展文件夹的名称。

我希望,这是足够的信息,可以帮助你。

我想对更多的事情有所启发,即

正如 Daniele Baggio 所建议的,如果您的要求可以 完成了 struts 动作和 JSP 的更改,您应该使用 HOOK 实现。

【讨论】:

  • “对于整个门户代码的大量更改,扩展环境是最佳选择” - 否。首先,扩展环境已经存在了大约 5 年了。其次,ext-plugins 是修改 Liferay 行为的最具侵入性和可能最难维护的方式。任何可以在挂钩中完成的更改都应该在挂钩中进行。为了可维护性,让您的 ext-plugins 尽可能小。无论变化多么“广泛”。使用 HOK 只修改一个 Struts 动作和一些 jsps!甚至不要将 ext-plugin 视为首选
  • 您的意思是 ext-portlet 引用 ext-plugins 是修改 Liferay 行为的最具侵入性和可能最难维护的方式。
  • @Olaf Kock,感谢您提供的信息,我已经更新了我的答案。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-06-17
  • 2016-03-04
  • 2023-03-26
  • 2017-08-19
  • 1970-01-01
  • 2013-12-12
相关资源
最近更新 更多