Joomla 3을 기반으로 웹 사이트를 구축하고 있습니다. 이름, 사용자 이름, password1 (두 번째, 첫 번째는 password2이므로 필드 유효성 검사를 비활성화해야합니다.) and email2 그리고 email1을 사용자 이름으로 사용합니다 (사용자 인증을 위해 플러그인 이메일을 설치했습니다). 파일 구성 요소/com_users/models/forms/registration.xml에서이 필드를 제거하려고했지만 유효성 검사가 아직 남아 있습니다. 이 필드를 삭제하지 않고 필수 항목 인 "true"를 false로 변경하면 등록이 전혀 작동하지 않으며 DB에 저장된 사용자도 전혀 작동하지 않습니다. 이 필드를 어떻게 비활성화 할 수 있습니까?Joomla 3 등록에서 일부 필드의 유효성을 사용하지 않도록 설정하는 방법
답변
쉬운 해결 방법이 아니므로 Joomla 및 PHP에 대한 기본적인 지식이 필요하지만 가능한 한 간단하게 설명해 드리겠습니다. 뷰 템플릿 재정의 당신이 당신의 등록 뷰 템플릿의 재정의를 만들어야합니다 모든
먼저 (증거 줌라 업데이트를 유지하기 위해) 만들기
>>>. 이렇게하려면 /templates/YOUT_TEMPLATE/html/com_users/registration 폴더를 만들고 /components/com_users/views/registration/tmpl/default.php 파일을 복사하십시오.
지금부터 템플릿 폴더의 등록 출력을 수정할 수 있습니다. 등록 양식 출력 수정
>>> 줌라 파일 형태가 정의 /components/com_users/models/forms/registration.xml, 모든 필드를 취하고, 그들을 출력 기본적
관점. 그러나 모든 필드를 사용하지 않으려면 수동으로 필드를 출력해야합니다. 예제 코드는 등록 할 전자 메일 및 암호 필드 만 출력합니다. 다음은 샘플 코드는 이렇게이다 : (default.php 파일)
<?php
defined('_JEXEC') or die;
JHtml::_('behavior.keepalive');
?>
<div class="grid_8" id="register_block">
<div class="content_block">
<h1>Registracija</h1>
<div class="login<?php echo $this->pageclass_sfx?>">
<form id="member-registration" action="<?php echo JRoute::_('index.php?option=com_users&task=registration2.register'); ?>" method="post" enctype="multipart/form-data">
<div>
<div class="login-fields">
<label id="jform_email1-lbl" for="jform_email1">E-mail:</label>
<input type="text" name="jform[email1]" id="jform_email1" value="" size="30">
</div>
<div class="login-fields">
<label id="jform_password1-lbl" for="jform_password1">Password:</label>
<input type="password" name="jform[password1]" id="jform_password1" value="" autocomplete="off" size="30">
</div>
<button type="submit" class="button"><?php echo JText::_('JREGISTER');?></button>
<input type="hidden" name="option" value="com_users" />
<input type="hidden" name="task" value="registration2.register" />
<?php echo JHtml::_('form.token');?>
</div>
</form>
</div>
</div>
</div>
주의 사항, 나는 또한 registration2.register에 registration.register에서 작업 값을 대체 한 것으로, 나는 우회 이런 짓을 내 자신의 컨트롤러를 사용하는 일부 유효성 검사 규칙. 컨트롤러 오버라이드를 만들기
>>>
파일 /components/com_users/controllers/registration.php를 찾아이 같은 폴더에 registration2.php 전화의 사본을 만들 수 있습니다.
파일 열기 registration2.php 및 Joomla를 등록 양식에 지금부터 UsersControllerRegistration2
에 UsersControllerRegistration에서의 클래스 이름을 변경 새 사용자를 만들려면이 클래스를 사용합니다.
는 레지스터라는 방법을 찾아이 줄을 찾을 :$requestData = JRequest::getVar('jform', array(), 'post', 'array');
이 줌라가의 얻을 등록 양식 데이터입니다.다음 줄을 추가합니다 :
$requestData['name'] = $requestData['email1'];
$requestData['username'] = $requestData['email1'];
$requestData['email2'] = $requestData['email1'];
$requestData['password2'] = $requestData['password1'];
그것은 등록 정보 누락 추가하고 확인을 통과하는 데 도움이됩니다.
참고 : 이것은 주 로직을 표시하는 샘플 코드입니다. 누구든지 더 좋은 해결책을 가지고 있다면, 나는 그것을 듣기보다 기쁠 것입니다.
것은 같은 생각에 따라, 간단한 해결책은 com_users \ 전망 \ 등록 \ tmpl \ default.php 위
<button type="submit" class="btn btn-primary validate"><?php echo JText::_('JREGISTER');?></button>
의 값에 숨겨진 입력을 추가 포함 할 수
<input type="hidden" id="jform[username]" name="jform[username]" value="username" />
<input type="hidden" id="jform_name" name="jform[name]" value="name" />
그것을 유효성 검사를 통과하면 컨트롤러 등을 더 이상 오버라이드 할 필요가 없습니다.
- 1. DateTimePicker에서 일부 날짜를 사용하지 않도록 설정하는 방법
- 2. EditText를 사용하지 않도록 설정하는 방법
- 3. Vaadin 테이블 지연로드를 사용하지 않도록 설정하는 방법
- 4. LogBack, 특정 환경에서 사용하지 않도록 설정하는 방법
- 5. 일부 열을 사용하지 않도록 설정하십시오.
- 6. DetailViewController UIBarButtonItem을 RootViewController에서 사용하지 않도록 설정하는 방법?
- 7. 자동으로 창을 사용하지 않도록 설정하는 방법
- 8. 내 ListView에서 항목을 사용하지 않도록 설정하는 방법
- 9. Access 2007을 사용하지 않도록 설정하는 방법
- 10. Java : JSpinner 경고음을 사용하지 않도록 설정하는 방법
- 11. 하위 div에서 탭을 사용하지 않도록 설정하는 방법
- 12. Outlook에서 비어있는 제목을 사용하지 않도록 설정하는 방법
- 13. froala 편집기에서 이모티콘을 사용하지 않도록 설정하는 방법
- 14. WebGrid에서 페이징을 사용하지 않도록 설정하는 방법
- 15. valuearea에서 텍스트 영역을 사용하지 않도록 설정하는 방법
- 16. 페이지 스크롤을 사용하거나 사용하지 않도록 설정하는 방법
- 17. 메시지를 사용하지 않도록 설정하는 방법 CMake
- 18. NSURLSessionTask에서 캐싱을 사용하지 않도록 설정하는 방법
- 19. 내 코드에서 블루투스를 사용하지 않도록 설정하는 방법?
- 20. Process.StandardOutput에서 출력 버퍼링을 사용하지 않도록 설정하는 방법
- 21. Plugin.xml에서 JavaItem이 MenuItem을 사용하지 않도록 설정하는 방법
- 22. 디렉터리마다 Keep-Alive를 사용하지 않도록 설정하는 방법
- 23. PHP에서 링크를 사용하거나 사용하지 않도록 설정하는 방법
- 24. Google지도에서 기본 infoWindow를 사용하지 않도록 설정하는 방법
- 25. ScalaTest에서 테스트 스위트를 사용하지 않도록 설정하는 방법
- 26. Xamarin.Android에서 TeeChart를 사용하지 않도록 설정하는 방법?
- 27. ListView에서 특정 행을 사용하지 않도록 설정하는 방법
- 28. MariaDB에서 테스트 스위트를 사용하지 않도록 설정하는 방법
- 29. 네비게이터에서 데이터 레이블을 사용하지 않도록 설정하는 방법
- 30. Maven에서 프록시 서버를 사용하지 않도록 설정하는 방법
코어 파일을 해킹하지 않는 것 외에도. Joomla 3의 정확한 버전을 사용하고 있습니까? – Craig
최신 3.2.1 – stckvrw
사람들이 원하는 것을 넣을 수있게 허용하는 것이 매우 위험 할 수 있으므로 유효성 검사를 변경하지 말고 변경하지 않으십시오. 이런 이유로 몇 가지 최소한의 것들이 시행됩니다. 정말로 원하는 것은 새로운 등록 구성 요소를 만들고 핵심 구성 요소를 사용하지 않는 것입니다. 그런 다음 누군가가 핵심 서비스로 이동하려고 시도하면 리디렉션을 강제하기 위해 플러그인을 사용합니다. 핵심 joomla에서 당신은 사용자 이름, 비밀 번호 및 이메일 주소가 있어야하며 그들은 플러그인을 사용하여 사용자 이름과 이메일이 동일하게 작동하도록 할 수 있지만 그들은 별도로 저장해야합니다. – Elin