liferay源码修改

 
例子,   为注册用户信息(create account)添加字段comanyname,telephone
1.在liferay的数据库(ltcncportal)中的user_表中加入companyname varchar,telephone varchar 字段
2.把liferay-portal-src-4.3.4导入eclipse下
3.把liferay-portal-src-4.3.4改成portal
4.找到/portal/portal-impl/classes/META-INF/portal-hbm.xml文件,此文件类似于hibernate的##.hbm.xml文件,找到表user_对应的配置部分,红字为新添部分
< class name = "com.liferay.portal.model.impl.UserImpl" table = "User_" >
       < cache usage = "read-write" />
       < id name = "userId" type = "long" >
           < generator class = "assigned" />
       </ id >
       < property name = "companyId" type = "com.liferay.util.dao.hibernate.LongType" />
       < property name = "createDate" />
       < property name = "modifiedDate" />
           <property name="companyname" type="com.liferay.util.dao.hibernate.StringType" />
       <property name="telphone" type="com.liferay.util.dao.hibernate.StringType" />
   
       < property name = "defaultUser" type = "com.liferay.util.dao.hibernate.BooleanType" />
       < property name = "contactId" type = "com.liferay.util.dao.hibernate.LongType" />
       < property name = "password" column = "password_" type = "com.liferay.util.dao.hibernate.StringType" />
   
      
       < property name = "passwordEncrypted" type = "com.liferay.util.dao.hibernate.BooleanType" />
       < property name = "passwordReset" type = "com.liferay.util.dao.hibernate.BooleanType" />
       < property name = "passwordModifiedDate" />
       < property name = "graceLoginCount" type = "com.liferay.util.dao.hibernate.IntegerType" />
       < property name = "screenName" type = "com.liferay.util.dao.hibernate.StringType" />
       < property name = "emailAddress" type = "com.liferay.util.dao.hibernate.StringType" />
       < property name = "portraitId" type = "com.liferay.util.dao.hibernate.LongType" />
       < property name = "languageId" type = "com.liferay.util.dao.hibernate.StringType" />
       < property name = "timeZoneId" type = "com.liferay.util.dao.hibernate.StringType" />
       < property name = "greeting" type = "com.liferay.util.dao.hibernate.StringType" />
       < property name = "comments" type = "com.liferay.util.dao.hibernate.StringType" />
       < property name = "loginDate" />
       < property name = "loginIP" type = "com.liferay.util.dao.hibernate.StringType" />
       < property name = "lastLoginDate" />
       < property name = "lastLoginIP" type = "com.liferay.util.dao.hibernate.StringType" />
       < property name = "lastFailedLoginDate" />
       < property name = "failedLoginAttempts" type = "com.liferay.util.dao.hibernate.IntegerType" />
       < property name = "lockout" type = "com.liferay.util.dao.hibernate.BooleanType" />
       < property name = "lockoutDate" />
       < property name = "agreedToTermsOfUse" type = "com.liferay.util.dao.hibernate.BooleanType" />
       < property name = "active" column = "active_" type = "com.liferay.util.dao.hibernate.BooleanType" />
    </ class >
5.找到/portal/portal-impl/classes/META-INF/portal-model-hints.xml文件,似乎属于spring的配置文件,找到user_的配置部分,红字为新添部分
< model name = "com.liferay.portal.model.User" >
       < default-hints >
           < hint name = "display-width" > 150 </ hint >
       </ default-hints >
       < field name = "userId" type = "long" />
       < field name = "companyId" type = "long" />
       < field name = "createDate" type = "Date" />
       < field name = "modifiedDate" type = "Date" />
       < field name = "defaultUser" type = "boolean" />
       < field name = "contactId" type = "long" />
       < field name = "password" type = "String" />
       <field name="companyname" type="String" />
       <field name="telphone" type="String" />
       < field name = "passwordEncrypted" type = "boolean" />
       < field name = "passwordReset" type = "boolean" />
       < field name = "passwordModifiedDate" type = "Date" />
       < field name = "graceLoginCount" type = "int" />
       < field name = "screenName" type = "String" />
       < field name = "emailAddress" type = "String" />
       < field name = "portraitId" type = "long" />
       < field name = "languageId" type = "String" />
       < field name = "timeZoneId" type = "String" />
       < field name = "greeting" type = "String" />
       < field name = "comments" type = "String" >
           < hint-collection name = "TEXTAREA" />
       </ field >
       < field name = "loginDate" type = "Date" />
       < field name = "loginIP" type = "String" />
       < field name = "lastLoginDate" type = "Date" />
       < field name = "lastLoginIP" type = "String" />
       < field name = "lastFailedLoginDate" type = "Date" />
       < field name = "failedLoginAttempts" type = "int" />
       < field name = "lockout" type = "boolean" />
       < field name = "lockoutDate" type = "Date" />
       < field name = "agreedToTermsOfUse" type = "boolean" />
       < field name = "active" type = "boolean" />
    </ model >
     6.在tomcat下找到此文件C:/ltcnctomcat/webapps/ROOT/html/portlet/my_account/create_account.jsp,打开create_account.jsp文件在上面添上input表单(略)。
7.然后找这个表单提交后用的类,根据create_account.jsp中的
<form action="<portlet:actionURL windowState="<%= WindowState.MAXIMIZED.toString() %>"><portlet:param name="struts_action" value=" /my_account/create_account" /></portlet:actionURL>" method="post" name="<portlet:namespace />fm">
到struts-config.xml中查找
<action path=" /my_account/create_account" type="com.liferay.portlet.myaccount.action.AddUserAction">
                     <forward name="portlet.my_account.create_account" path="portlet.my_account.create_account" />
              </action>
说明用AddUserAction进行的添加找到com.liferay.portlet.myaccount.action.AddUserAction,在/portal/portal-impl/src/com/liferay/portlet/myaccount/action/AddUserAction.java中,在eclipse打开,红色字体为重点部分
//addUser edit zy
    protected void addUser (ActionRequest req, ActionResponse res)
       throws Exception {
 
       ThemeDisplay themeDisplay =
           (ThemeDisplay)req.getAttribute(WebKeys. THEME_DISPLAY );
 
       Company company = themeDisplay.getCompany();
 
       boolean autoPassword = true ;
       String password1 = null ;
       String password2 = null ;
       boolean autoScreenName = false ;
       String screenName = ParamUtil.getString(req, "screenName" );
       String emailAddress = ParamUtil.getString(req, "emailAddress" );
       String firstName = ParamUtil.getString(req, "firstName" );
       String middleName = ParamUtil.getString(req, "middleName" );
       String lastName = ParamUtil.getString(req, "lastName" );
       int prefixId = ParamUtil.getInteger(req, "prefixId" );
       int suffixId = ParamUtil.getInteger(req, "suffixId" );
       boolean male = ParamUtil.get(req, "male" , true );
       int birthdayMonth = ParamUtil.getInteger(req, "birthdayMonth" );
       int birthdayDay = ParamUtil.getInteger(req, "birthdayDay" );
       int birthdayYear = ParamUtil.getInteger(req, "birthdayYear" );
       String jobTitle = ParamUtil.getString(req, "jobTitle" );
       long organizationId = ParamUtil.getLong(req, "organizationId" );
       long locationId = ParamUtil.getLong(req, "locationId" );
       //edi t zy begin
       String companyname = ParamUtil.getString(req, "companyname");
       String telphone = ParamUtil.getString(req, "telphone");
 
       //edit zy end
       boolean sendEmail = true ;
 
       CaptchaUtil.check(req);
         //edit zy begin
         //addUser(,companyname,telphone)
       User user = UserServiceUtil.addUser (
           company.getCompanyId(), autoPassword, password1, password2,
           autoScreenName, screenName, emailAddress, themeDisplay.getLocale(),
           firstName, middleName, lastName, prefixId, suffixId, male,
           birthdayMonth, birthdayDay, birthdayYear, jobTitle, organizationId,
           locationId, sendEmail, companyname,telphone) ;
 
 
UserServiceUtil.addUser(
           company.getCompanyId(), autoPassword, password1, password2,
           autoScreenName, screenName, emailAddress, themeDisplay.getLocale(),
           firstName, middleName, lastName, prefixId, suffixId, male,
           birthdayMonth, birthdayDay, birthdayYear, jobTitle, organizationId,
           locationId, sendEmail ;
改成 UserServiceUtil.addUser (
           company.getCompanyId(), autoPassword, password1, password2,
           autoScreenName, screenName, emailAddress, themeDisplay.getLocale(),
           firstName, middleName, lastName, prefixId, suffixId, male,
           birthdayMonth, birthdayDay, birthdayYear, jobTitle, organizationId,
           locationId, sendEmail, companyname,telphone) ;
改完后发现此有错误还需要到 UserServiceUtil.java 中修改它的 addUser, 就这样
需要修改如下 java 文件
Com.liferay.portal.action.OpenIdResponseAction (portal-impl.jar)
Com.liferay.portal.model.impl.UserImpl (portal-impl.jar)
Com.liferay.portal.security.auth.OpenSSOAuologin (portal-impl.jar)
Com.liferay.portal.service.impl.UserLocalServiceImpl (portal-impl.jar)
Com.liferay.portlet.myaccount.action.AddUserAction (portal-impl.jar)
Com.liferay.portal.model.UserModel (portal-service.jar)
Com.liferay.portal.service.UserLocalService (portal-service.jar)
Com.liferay.portal.service.UserLocalServiceUtil (portal-service.jar)
Com.liferay.portal.service.UserService (portal-service.jar)
Com.liferay.portal.service.UserServiseUtil (portal-service.jar)
Com.liferay.test.spring.remoting.portal.PortalHttpTest liferay 测试用,不属于任何包)
Com.liferay.portal.service.impl.UserServiceImpl (portal-impl.jar)
Com.liferay.portal.model.impl.UserModelImpl (portal-impl.jar)
Com.liferay.portal.model.impl.UserImpl (portal-impl.jar)
Com.liferay.portal.service.http.UserServiseJSON (portal-impl.jar)
Com.liferay.portal.service.impl.CompanyLocalServiceImpl (portal-impl.jar)
Com.liferay.portal.service.http.UserServiceSoap (portal-impl.jar)
Com.liferay.portal.servicesecurity.ldap.PortalLDAPUtil (portal-impl.jar)
Com.liferay.portal.enterpriseadmin.admin.EditUserAction (portal-impl.jar)
Com.liferay.portal.service.http.UserServiceHttp (portal-impl.jar)
Com.liferay.test.spring.remoting.PortalHttpTest liferay 测试用,不属于任何包)
Com.liferay.portal.model.User (portal-impl.jar)
Com.liferay.portal.service.http.UserJSONSeriolizer (portal-impl.jar)
Com.liferay.test.http.portal.PortalHttpTest liferay 测试用,不属于任何包)
 
8. 修改完成后在 eclipse 下编译,然后把对应的 class 文件拷到 portal-impl.jar portal-service.jar 中,替换 tomcat 下的这两个包,重启 tomcat, 这么多 class 文件我是通过手工一个一个拷贝替换的,我想通过 ant build.xml 应该可以自动生成新的 portal-impl.jar,portal-service.jar
======================================================================================================完=====================================================
 
修改完注册,那么就必须让用户能够修改这两个新添字段的信息,因此需要修改my account 处的代码/webapps/ROOT/html/portlet/enterprise_admin/edit_user_profile.jspfm和第一个例子一样查找发现需要修改 com.liferay.portlet.enterpriseadmin.action . EditUserAction updateUser 方法,这样,跟第一个例子类似需要修改如下 java 文件
Com.liferay.portlet.enterpriseadmin.action.EditUserAction
Com.liferay.portal.service.UserServiceJSON
Com.liferay.portal.service.http.UserServiceSoap
Com.liferay.portal.service.impl.UserServiceImpl
Com.liferay.portal.service.UserLocalServiceUtil
Com.liferay.portal.serviceLocalService
Com.liferay.portal.service.impl.UserLocalServiceImpl
Com.liferay.portal.security.ldap.PortalLDAPUtil
Com.liferay.portlet.adminUtil
Com.liferay.portlet.Lanaguage.action.ViewAcion
 
 
 
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值