liferay Hook的总结

1、liferay-hook可以重写jsp
    在liferay-hook.xml中添加
        <custom-jsp-dir>/custom_jsps</custom-jsp-dir>
        在docroot文件夹下添加custom_jsps文件夹,在文件价夹下面,添加你要重写的jsp,或者要新增的jsp文件,然后部署。

2、liferay-hook可以添加event事件,即可以处理登陆前后或者其他地方需要保存参数,更改url等事件。主要继承com.liferay.portal.kernel.events.Action函数。
   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

3、portal.properties,重写portal的部分配置,不是所有的配置都可以重写。event事件也可以写在这里面。
   liferay-hook中,修改portal.properties后,需要重启tomcat,修改才能生效。

      下面是参数的默认值,可以覆盖:
            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>

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文件

猜你喜欢

转载自chenjumin.iteye.com/blog/1504210