웹마스터 팁
page_full_width" class="col-xs-12" |cond="$__Context->page_full_width">
룰셋 적용 팁
2014.01.20 02:51
일반적으로 룰셋파일은 ./modules/[모듈]/ruleset/[ruleset이름].xml 에 위치하며
다음과 같은 형태로 유효성을 검사합니다.
<form action="./" method="post" ruleset="ruleset_test"> ...
모듈이 아닌 레이아웃이나 위젯의 폼 유효성을 검사하기위해서는 룰셋파일이 ./files/ruleset/[ruleset이름].xml에 위치하며
다음과 같은 형태로 사용합니다.
<form action="./" method="post" ruleset="@ruleset_test"> ...
모듈에 위치한 룰셋은 유효하지 않은 입력이 있는 경우 알림창을 뛰워주지만
./files/ruleset 에 위치한 룰셋은 유효성 검사는 되지만 알림창이 뜨지않는 문제가 있습니다.
이를 해결하기 위해 ./classes/validator/Validator.class.php 222번째줄을 다음과 같이 수정해줍시다.
... $this->_xml_path = $xml_path; ...
... $this->_xml_path = str_replace('\\','/',$xml_path); ...
Tip. 커스텀룰의 경우 룰셋파일에 사용자 정의 메시지를 반영할 수 있습니다.
rule 요소의 자식요소로 message 요소를 추가해주며
field 요소의 자식요소로 title을 추가해줍니다.
<?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 참고하세요.
감사합니다.