hook简介

一、Hook

Liferay提供hook的目的是减少二次开发的代码与liferay核心工程的耦合,通过hook我们主要可以主要做以下六件事情:

1、覆盖事件处理程序:如程序启动事件(application.startup.events)、登录注销事件(login.events.prelogin.events.post)、session的创建销毁事件等。

2、语言包:比如对liferay的某些翻译不满意,需要自定义,则可以使用hook覆盖liferay的语言包。

3liferay工程的portlet JSP内容:比如想在顶部的top_bar里面添加内容、想修改liferay的用户编辑界面、想修改用户登录界面等等。

4、覆盖portal.properties里面的属性配置:可以在hook工程里面覆盖一些liferayportal.properties里面属性配置,但是请注意,在hook工程里面只能覆盖部分的属性设置。不能覆盖的如果需要可以在root/WEB-INF/classes里面添加portal-ext.properties,这个同可以覆盖所有的。

5、覆盖liferayservices里面的方法,如UserLocalServiceGroupLocalServiceOrganizationLocalService等等。

6LiferayModel监听程序,比如usergroupblog等的创建、更新、查看;插件的部署;集群的消息传递等等监听程序。

二、使用Liferay IDE进行hook开发

1、在liferay IDE中,New Liferay Project-->选择hook-->输入project Name,点击完成,即可创建一个hook工程。

2、在IDE的工具条中,选择New Liferay hook,选择我们要创建的hook类型,如下图:

custom JSp:为自定义的JSP文件

portal properties:覆盖portal属性

Services:这个可以可以做两件事情一是覆盖事件处理程序;二是覆盖service

Lanuage properties:这个覆盖或者新增国际化的语言文件。

3、以Custom JSPs为例,点击下一步,如下图


尽量的使用 Add from Liferay。这样我们可以在弹出的界面中选择相应的我们要覆盖的JSP路径。点击完成。

4、现在demo-hook工程目录下的docroot/custom_jsps下面将出现我们上面选择的路径的JSP文件,此文件下的JSP路径一定要和Liferay root下的待覆盖的JSP路径相符。现在就可以编辑此JSP来覆盖我们想覆盖的内容,打开此JSP可以看到这里面的内容和portal下面的JSP内容完全一样,修改想修改的部,点击antdeploy即可发布。

5、对于示例中的top_js.jspf文件,可以做什么呢?top_js.jspf此文件是portal的头部JS的加载程序。比如我要在我的portlet工程里面引用jQuery库,则可以在top_js.jsp里面将jQuery的库引进来,这样在portlet的工程里面不用每个页面都需要引用jQuery,可以避免一个页面中多个portlet引用jQuery引起的冲突。引用方法如下

top_js.jspf的最后部分添加:

<script type="text/javascript" src="/html/js/jquery-1.8.0.min.js"></script>

同时,在custom_jsps/html下面建立js目录,并将jquery-1.8.0.min.js库复制到此目录下面即可。

6、对于portal.properties的覆盖和语言包的覆盖类似。Services的覆盖略有不同

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

javafanwk

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值