Liferay Hook


liferay-hook的功能,

1、liferay-hook可以重写jsp,这样liferay-hook代替liferay-ext的jsp的问题解决

2、liferay-hook可以添加event事件,即可以处理登陆前后或者其他地方需要保存参数,更改url等事件。主要继承

com.liferay.portal.kernel.events.Action;函数。


3、portal.properties,重写portal的部分配置,不是所有的配置都可以重写。event事件也可以写在这里面。

4、重写Portal Service,扩展包装类,重写包装类的一些方法。

5、重写Language.properties,即liferay国际化。

   即在liferay-hook.xml中添加
         <language-properties>content/Language_en_US.properties</language-properties>
         在WEB-INF/src下面添加content/Language_en_US.properties文件

 hook中的事件说明:
       application.startup.events 应用启动的触发事件
       login.events.pos 登陆完成的时候触发
       login.events.pre 登陆未完成的时候触发
       logout.events.post 注销后触发
       logout.events.pre注销前触发
       servlet.service.events.pre 每次servlet执行前都会执行
       servlet.service.events.post 每次servlet执行后都会执行
       servlet.session.create.events session 创建时的触发事件
       servlet.session.destroy.events session 注销时的触发事件
       在hook中如果java文件中要引用portal-impl.jar包中的类,建议换成portal-service.jar中的类(基本上portal-impl.jar中的有的类,portal-service.jar中也有),否则部署会报错,找不到portal-impl.jar中的类。详情请参考:http://www.liferay.com/zh/community/forums/-/message_boards/message/7541176


下面是参数的默认值,可以覆盖:
            auth.forward.by.last.path=true
            javascript.fast.load=true
            layout.template.cache.enabled=true
            layout.user.private.layouts.enabled=true
            layout.user.private.layouts.modifiable=true
            layout.user.private.layouts.auto.create=true
            layout.user.public.layouts.enabled=true
            layout.user.public.layouts.modifiable=true
            layout.user.public.layouts.auto.create=true
            my.places.show.community.public.sites.with.no.layouts=true
            my.places.show.community.private.sites.with.no.layouts=true
            my.places.show.user.public.sites.with.no.layouts=true
            my.places.show.user.private.sites.with.no.layouts=true
            my.places.show.organization.public.sites.with.no.layouts=true
            my.places.show.organization.private.sites.with.no.layouts=true
            terms.of.use.required=true
            theme.css.fast.load=true
            theme.images.fast.load=true
            passwords.passwordpolicytoolkit.generator=dynamic
            passwords.passwordpolicytoolkit.static=iheartliferay
            layout.static.portlets.all=1_WAR_chatportlet
  
           login.events.post=cn.hook.LoginPostAction
           LoginPostAction放在web-inf/src下面
  
      envent事件也可以直接放在liferay-hook.xml里面
          <event>
                 <event-class>cn.hook.LoginPostAction</event-class>
                 <event-type>login.events.post</event-type>
          </event>

另外根据liferay-hook的dtd文档,liferay-hook.xml文件中还可以加servlet-filter,struts-action等标签。

猜你喜欢

转载自weixm.iteye.com/blog/1626592