XE

XE 글이나 코멘트에서 글자수 제한하기

by 보석 posted Jul 27, 2011
?

단축키

Prev이전 문서

Next다음 문서

ESC닫기

크게 작게 위로 아래로 게시글 수정 내역 댓글로 가기 인쇄


팁 공유 게시판에 정리된게 없어서 그런지 질문 게시판에 심심찮게 올라오는 질문인지라 알만한 분들은 다들 아시는 내용이고 제가 발견한 팁도 아니지만 소개해 봅니다.


modules/board/skins/xe_board/filter/insert.xml파일에서
line8 부분의 소스에            부분을 추가 하시면 본문의 길이를 최소 10자 최대 250자로 제한 할 수 있습니다.
<node target="content" required="true" minlength="10" maxlength="250" />

modules/board/skins/xe_board/filter/insert_comment.xml파일에서
line8 부분의 소스에            부분을 추가 하시면 댓글의 길이를 최소 10자 최대 250자로 제한 할 수 있습니다.
<node target="content" required="true" minlength="10" maxlength="250" />

여기서 조심해야 할것은, maxlength을 꼭 설정해야 한다는 것입니다. 이것을 설정하지 않고 minlength만 설정하면 작동하지 않습니다.

글자 길이는 아니지만 추가로. required="true" 옵션을 주면 필수 항목으로 입력받을 수 있게 됩니다.


이걸로 끝내면 거시기하니 괜히 다른거 추가. '특정 게시판'에만 글자수 제한을 적용하고 싶다. 혹은 특정 게시판에는 다른 방식의 글자수 제한을 적용하고 싶다.

이 경우 방법이 2가지가 있습니다. 첫번째는 매우 단순무식하게 스킨을 복사해서 이름을 다른걸로 바꾼 후, 앞에서 나온 필터 파일의 내용만 바꿔주는 것입니다.

write_form.html 파일 윗부분의 <!--%import("filter/insert.xml")-->를 다음으로 대체합니다.

<!--@if(Context::get('mid') == '특정모듈명(게시판이름)')-->
<!--%import("filter/insert_모듈명.xml")-->
<!--@else-->
<!--%import("filter/insert.xml")-->
<!--@end-->


이렇게 되면 특정 모듈에서는 filter/insert.xml 대신 filter/insert_모듈명.xml를 부르게 됩니다. filter/insert_모듈명.xml 만 특정 모듈에 맞춰서 새로운 제한을 넣어서 만들어 저장해두면 되지요.

가령 2개의 특정 게시판이라면 이렇게 하면 됩니다.

<!--@if(Context::get('mid') == '특정모듈명(게시판이름)')-->
<!--%import("filter/insert_모듈명.xml")-->
<!--@elseif(Context::get('mid') == '특정모듈명(게시판이름)')-->
<!--%import("filter/insert_모듈명.xml")-->
<!--@else-->
<!--%import("filter/insert.xml")-->
<!--@end-->

또한 글 말고 댓글에다 이런 특정 모듈에 따른 제한을 적용하고 싶다면 view_document.html과 comment_form.html에서 <!--%import("filter/insert_comment.xml")-->를 찾아서 바꿔주면 됩니다. 물론 코멘트의 필터는 본문 필터와는 다릅니다

 

老姜君 님의 글입니다.



Articles

2 3 4 5 6 7 8 9 10 11