웹마스터 팁
page_full_width">
룰셋 적용 팁
2014.01.20 02:51
일반적으로 룰셋파일은 ./modules/[모듈]/ruleset/[ruleset이름].xml 에 위치하며
다음과 같은 형태로 유효성을 검사합니다.
1 2 | < form action = "./" method = "post" ruleset = "ruleset_test" > ... |
모듈이 아닌 레이아웃이나 위젯의 폼 유효성을 검사하기위해서는 룰셋파일이 ./files/ruleset/[ruleset이름].xml에 위치하며
다음과 같은 형태로 사용합니다.
1 2 | < form action = "./" method = "post" ruleset = "@ruleset_test" > ... |
모듈에 위치한 룰셋은 유효하지 않은 입력이 있는 경우 알림창을 뛰워주지만
./files/ruleset 에 위치한 룰셋은 유효성 검사는 되지만 알림창이 뜨지않는 문제가 있습니다.
이를 해결하기 위해 ./classes/validator/Validator.class.php 222번째줄을 다음과 같이 수정해줍시다.
221 222 223 | ... $this->_xml_path = $xml_path; ... |
221 222 223 | ... $this->_xml_path = str_replace('\\','/',$xml_path); ... |
Tip. 커스텀룰의 경우 룰셋파일에 사용자 정의 메시지를 반영할 수 있습니다.
rule 요소의 자식요소로 message 요소를 추가해주며
field 요소의 자식요소로 title을 추가해줍니다.
1 2 3 4 5 6 7 8 9 10 11 12 13 | <? xml version = "1.0" encoding = "utf-8" ?> < ruleset version = "1.5.0" > < customrules > < rule name = "rule_test" type = "regex" test = '/^[\w-]+((?:\.|\+|\~)[\w-]+)*@[\w-]+(\.[\w-]+)+$/' > < message > <![CDATA[값이 올바르지 않습니다.]]> </ message > </ rule > </ customrules > < fields > < field name = "name" required = "true" rule = "rule_test" > < title > <![CDATA[룰셋]]> </ title > </ field > </ fields > </ ruleset > |
Tip. 룰셋파일(.xml)은 UTF-8로 인코딩해야합니다.
룰셋 사용법은 https://code.google.com/p/xe-core/wiki/ValidateFormInput#Field's_Attributes 참고하세요.
감사합니다.