웹마스터 팁

룰셋 적용 팁

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>



ruleset.jpg


Tip. 룰셋파일(.xml)은 UTF-8로 인코딩해야합니다.

 


룰셋 사용법은 https://code.google.com/p/xe-core/wiki/ValidateFormInput#Field's_Attributes 참고하세요.

제목 글쓴이 날짜
룰셋 적용 팁 [1] file 루비스코 2014.01.20