2013-11-26 7 views
1

계정 작성 포틀릿을 사용자 정의해야합니다. 파일 이름 "middle name"을 숨기고 싶지만 해당 필드는 /html/portlet/login/create_account_user_name.jspf 아래에 있습니다. jsp 페이지를 사용자 정의하기위한 파일은 "jsp"가 아니며 "jsp"가 아니기 때문에 jsp 파일의 Eclipse 창에 표시되지 않기 때문에jspf 후크를 사용하여 LifeRay 포틀릿 사용자 정의

다른 사람에게 해결책을 제공합니까? create_account_user_name.jspf의

내용 :

<%@ include file="/html/portlet/login/init.jsp" %> 

<% 
String redirect = ParamUtil.getString(request, "redirect"); 

String openId = ParamUtil.getString(request, "openId"); 
boolean male = ParamUtil.getBoolean(request, "male", true); 

Calendar birthdayCalendar = CalendarFactoryUtil.getCalendar(); 

birthdayCalendar.set(Calendar.MONTH, Calendar.JANUARY); 
birthdayCalendar.set(Calendar.DATE, 1); 
birthdayCalendar.set(Calendar.YEAR, 1970); 
%> 

<portlet:actionURL secure="<%= PropsValues.COMPANY_SECURITY_AUTH_REQUIRES_HTTPS || request.isSecure() %>" var="createAccountURL"> 
     <portlet:param name="struts_action" value="/login/create_account" /> 
</portlet:actionURL> 

<aui:form action="<%= createAccountURL %>" method="post" name="fm"> 
     <aui:input name="saveLastPath" type="hidden" value="<%= false %>" /> 
     <aui:input name="<%= Constants.CMD %>" type="hidden" value="<%= Constants.ADD %>" /> 
     <aui:input name="redirect" type="hidden" value="<%= redirect %>" /> 
     <aui:input name="openId" type="hidden" value="<%= openId %>" /> 

     <liferay-ui:error exception="<%= AddressCityException.class %>" message="please-enter-a-valid-city" /> 
     <liferay-ui:error exception="<%= AddressStreetException.class %>" message="please-enter-a-valid-street" /> 
     <liferay-ui:error exception="<%= AddressZipException.class %>" message="please-enter-a-valid-postal-code" /> 
     <liferay-ui:error exception="<%= CaptchaMaxChallengesException.class %>" message="maximum-number-of-captcha-attempts-exceeded" /> 
     <liferay-ui:error exception="<%= CaptchaTextException.class %>" message="text-verification-failed" /> 
     <liferay-ui:error exception="<%= CompanyMaxUsersException.class %>" message="unable-to-create-user-account-because-the-maximum-number-of-users-has-been-reached" /> 
     <liferay-ui:error exception="<%= ContactFirstNameException.class %>" message="please-enter-a-valid-first-name" /> 
     <liferay-ui:error exception="<%= ContactFullNameException.class %>" message="please-enter-a-valid-first-middle-and-last-name" /> 
     <liferay-ui:error exception="<%= ContactLastNameException.class %>" message="please-enter-a-valid-last-name" /> 
     <liferay-ui:error exception="<%= DuplicateOpenIdException.class %>" message="a-user-with-that-open-id-already-exists" /> 
     <liferay-ui:error exception="<%= DuplicateUserEmailAddressException.class %>" message="the-email-address-you-requested-is-already-taken" /> 
     <liferay-ui:error exception="<%= DuplicateUserIdException.class %>" message="the-user-id-you-requested-is-already-taken" /> 
     <liferay-ui:error exception="<%= DuplicateUserScreenNameException.class %>" message="the-screen-name-you-requested-is-already-taken" /> 
     <liferay-ui:error exception="<%= EmailAddressException.class %>" message="please-enter-a-valid-email-address" /> 

     <liferay-ui:error exception="<%= GroupFriendlyURLException.class %>"> 

       <% 
       GroupFriendlyURLException gfurle = (GroupFriendlyURLException)errorException; 
       %> 

       <c:if test="<%= gfurle.getType() == GroupFriendlyURLException.DUPLICATE %>"> 
         <liferay-ui:message key="the-screen-name-you-requested-is-associated-with-an-existing-friendly-url" /> 
       </c:if> 
     </liferay-ui:error> 

     <liferay-ui:error exception="<%= NoSuchCountryException.class %>" message="please-select-a-country" /> 
     <liferay-ui:error exception="<%= NoSuchListTypeException.class %>" message="please-select-a-type" /> 
     <liferay-ui:error exception="<%= NoSuchRegionException.class %>" message="please-select-a-region" /> 
     <liferay-ui:error exception="<%= PhoneNumberException.class %>" message="please-enter-a-valid-phone-number" /> 
     <liferay-ui:error exception="<%= RequiredFieldException.class %>" message="please-fill-out-all-required-fields" /> 
     <liferay-ui:error exception="<%= ReservedUserEmailAddressException.class %>" message="the-email-address-you-requested-is-reserved" /> 
     <liferay-ui:error exception="<%= ReservedUserIdException.class %>" message="the-user-id-you-requested-is-reserved" /> 
     <liferay-ui:error exception="<%= ReservedUserScreenNameException.class %>" message="the-screen-name-you-requested-is-reserved" /> 
     <liferay-ui:error exception="<%= TermsOfUseException.class %>" message="you-must-agree-to-the-terms-of-use" /> 
     <liferay-ui:error exception="<%= UserEmailAddressException.class %>" message="please-enter-a-valid-email-address" /> 
     <liferay-ui:error exception="<%= UserIdException.class %>" message="please-enter-a-valid-user-id" /> 

     <liferay-ui:error exception="<%= UserPasswordException.class %>"> 

       <% 
       UserPasswordException upe = (UserPasswordException)errorException; 
       %> 

       <c:if test="<%= upe.getType() == UserPasswordException.PASSWORD_CONTAINS_TRIVIAL_WORDS %>"> 
         <liferay-ui:message key="that-password-uses-common-words-please-enter-in-a-password-that-is-harder-to-guess-i-e-contains-a-mix-of-numbers-and-letters" /> 
       </c:if> 

       <c:if test="<%= upe.getType() == UserPasswordException.PASSWORD_INVALID %>"> 
         <liferay-ui:message key="that-password-is-invalid-please-enter-in-a-different-password" /> 
       </c:if> 

       <c:if test="<%= upe.getType() == UserPasswordException.PASSWORD_LENGTH %>"> 

         <% 
         PasswordPolicy passwordPolicy = PasswordPolicyLocalServiceUtil.getDefaultPasswordPolicy(company.getCompanyId()); 
         %> 

         <%= LanguageUtil.format(pageContext, "that-password-is-too-short-or-too-long-please-make-sure-your-password-is-between-x-and-512-characters", String.valueOf(passwordPolicy.getMinLength()), false) %> 
       </c:if> 

       <c:if test="<%= upe.getType() == UserPasswordException.PASSWORD_TOO_TRIVIAL %>"> 
         <liferay-ui:message key="that-password-is-too-trivial" /> 
       </c:if> 

       <c:if test="<%= upe.getType() == UserPasswordException.PASSWORDS_DO_NOT_MATCH %>"> 
         <liferay-ui:message key="the-passwords-you-entered-do-not-match-each-other-please-re-enter-your-password" /> 
       </c:if> 
     </liferay-ui:error> 

     <liferay-ui:error exception="<%= UserScreenNameException.class %>" message="please-enter-a-valid-screen-name" /> 
     <liferay-ui:error exception="<%= WebsiteURLException.class %>" message="please-enter-a-valid-url" /> 

     <c:if test='<%= SessionMessages.contains(request, "openIdUserInformationMissing") %>'> 
       <div class="alert alert-info"> 
         <liferay-ui:message key="you-have-successfully-authenticated-please-provide-the-following-required-information-to-access-the-portal" /> 
       </div> 
     </c:if> 

     <aui:model-context model="<%= Contact.class %>" /> 

     <aui:fieldset column="<%= true %>"> 
       <aui:col width="<%= 50 %>"> 
         <%@ include file="/html/portlet/login/create_account_user_name.jspf" %> 

         <c:if test="<%= !PrefsPropsUtil.getBoolean(company.getCompanyId(), PropsKeys.USERS_SCREEN_NAME_ALWAYS_AUTOGENERATE) %>"> 
           <aui:input model="<%= User.class %>" name="screenName" /> 
         </c:if> 

         <aui:input autoFocus="<%= true %>" model="<%= User.class %>" name="emailAddress"> 
           <c:if test="<%= PrefsPropsUtil.getBoolean(company.getCompanyId(), PropsKeys.USERS_EMAIL_ADDRESS_REQUIRED) %>"> 
             <aui:validator name="required" /> 
           </c:if> 
         </aui:input> 
       </aui:col> 

       <aui:col width="<%= 50 %>"> 
         <c:if test="<%= PropsValues.LOGIN_CREATE_ACCOUNT_ALLOW_CUSTOM_PASSWORD %>"> 
           <aui:input label="password" name="password1" size="30" type="password" value="" /> 

           <aui:input label="enter-again" name="password2" size="30" type="password" value=""> 
             <aui:validator name="equalTo"> 
               '#<portlet:namespace />password1' 
             </aui:validator> 
           </aui:input> 
         </c:if> 

         <c:choose> 
           <c:when test="<%= PrefsPropsUtil.getBoolean(company.getCompanyId(), PropsKeys.FIELD_ENABLE_COM_LIFERAY_PORTAL_MODEL_CONTACT_BIRTHDAY) %>"> 
             <aui:input name="birthday" value="<%= birthdayCalendar %>" /> 
           </c:when> 
           <c:otherwise> 
             <aui:input name="birthdayMonth" type="hidden" value="<%= Calendar.JANUARY %>" /> 
             <aui:input name="birthdayDay" type="hidden" value="1" /> 
             <aui:input name="birthdayYear" type="hidden" value="1970" /> 
           </c:otherwise> 
         </c:choose> 

         <c:if test="<%= PrefsPropsUtil.getBoolean(company.getCompanyId(), PropsKeys.FIELD_ENABLE_COM_LIFERAY_PORTAL_MODEL_CONTACT_MALE) %>"> 
           <aui:select label="gender" name="male"> 
             <aui:option label="male" value="1" /> 
             <aui:option label="female" selected="<%= !male %>" value="0" /> 
           </aui:select> 
         </c:if> 

         <c:if test="<%= PropsValues.CAPTCHA_CHECK_PORTAL_CREATE_ACCOUNT %>"> 
           <portlet:resourceURL var="captchaURL"> 
             <portlet:param name="struts_action" value="/login/captcha" /> 
           </portlet:resourceURL> 

           <liferay-ui:captcha url="<%= captchaURL %>" /> 
         </c:if> 
       </aui:col> 
     </aui:fieldset> 

     <aui:button-row> 
       <aui:button type="submit" /> 
     </aui:button-row> 
</aui:form> 

<liferay-util:include page="/html/portlet/login/navigation.jsp" /> 
+0

을 필요로하는가하는 Liferay-hook.xml 당신이 JSP 오버라이드에 대해 설정할 수있는 유일한 지시는

<custom-jsp-dir>/custom_jsp</custom-jsp-dir> 

주의하시기 바랍니다 너의 jspf를 포함하는 당신의 후크 –

+0

예, 나는 jsp 파일 /html/portlet/login/create_account.jsp를 포함 시켰지 만 jsp 파일에는 "Middle name"필드를 나타내는 aui 태그가 없다. 그 태그는 jspf 파일에 JSP 파일이 아닙니다 –

+1

jspf 파일의 이름을 변경하고 create_account.jsp에 새 이름을 입력하십시오 –

답변

3

은 당신의 docroot를/custom_jsp 내부의 원본 파일 /html/portlet/login/create_account_user_name.jspf을 복사 create_account.jsp의

<aui:input autoFocus="<%= windowState.equals(WindowState.MAXIMIZED) %>" model="<%= User.class %>" name="firstName" /> 

<aui:input model="<%= User.class %>" name="middleName" /> 

<aui:input model="<%= User.class %>" name="lastName"> 
    <c:if test="<%= PrefsPropsUtil.getBoolean(company.getCompanyId(), PropsKeys.USERS_LAST_NAME_REQUIRED, PropsValues.USERS_LAST_NAME_REQUIRED) %>"> 
     <aui:validator name="required" /> 
    </c:if> 
</aui:input> 

내용/html/portlet/login/디렉토리에 있습니다. 어떤 식성이 당신에게 보여 주지만, 당신의 후크의 모든 JSP/JSP는 원래의 liferay 파일을 대체 할 것입니다.

/html/portlet/users_admin/user/details_user_name.jspf 파일을 편집했습니다 (LDAP에서 오는 사용자의 필드 수정이 비활성화되었습니다).

당신은 습관에서 JSP 파일을 추가, 모든 JSP 파일을 지정하기 위해 당신의 루트 디렉토리

+0

잘 작동하는 Emanuele –