포럼
[시니시즘] '내용을 입력해주세요' 무시하기 팁
2011.05.13 11:24
게시판 스킨을 만들다보면 content 항목 자체가 필요 없을 때가 있습니다. (지금껏 없으셨더라도 언젠간 있으실 겁니다...;)
그런데 내용을 입력하지 않고 등록을 누르면 '내용을 입력해주세요'라고 경고창이 뜨게 되죠.
그걸 간단히 무시해버리는 팁을 오늘 알려드릴게용 ㅋ
XE에서 내용을 입력하는 부분은 editor로 처리되게 됩니다.
이런식으로 말이죠.
<div class="editor">{$oDocument->getEditor()}</div>
보통은 이걸 지워버리고 input으로 content 값을 삽입해주면 경고창이 안뜰거라고 생각하죠.
<input name="content" value="내용입니다">
그런데 이렇게 해도 '내용을 입력해주세요'라는 창은 뜹니다ㅡㅡ^
이 경고 메세지를 원천적으로 봉쇄하는 방법은 필터 파일을 수정하는 겁니다.
아래처럼요.
/modules/board/tpl/filter/insert.xml
content 부분을 수정해주면 됩니다.
<filter name="insert" module="pxeboard" act="procBoardInsertDocument"> <form> <node target="nick_name" required="true" maxlength="20"/> <node target="password" required="true" /> <node target="email_address" maxlength="250" /> <node target="homepage" maxlength="250"/> <node target="title" required="true" minlength="1" maxlength="250" /> <node target="content" required="true" /> <node target="category_srl" required="true" /> <node target="attach_file" /> <node target="attach_screenshot" /> </form> <response callback_func="completeDocumentInserted"> <tag name="error" /> <tag name="message" /> <tag name="mid" /> <tag name="document_srl" /> <tag name="category_srl" /> </response> </filter>
요렇게 수정해주면 됩니다.
<filter name="insert" module="pxeboard" act="procBoardInsertDocument"> <form> <node target="nick_name" required="true" maxlength="20"/> <node target="password" required="true" /> <node target="email_address" maxlength="250" /> <node target="homepage" maxlength="250"/> <node target="title" required="true" minlength="1" maxlength="250" /> <node target="content" /> <node target="category_srl" required="true" /> <node target="attach_file" /> <node target="attach_screenshot" /> </form> <response callback_func="completeDocumentInserted"> <tag name="error" /> <tag name="message" /> <tag name="mid" /> <tag name="document_srl" /> <tag name="category_srl" /> </response> </filter>
그런데 이렇게 해버리면 스킨을 독립적으로 구동할 수 없습니다.
스킨을 깔 때마다 해당 부분을 수정해줘야 되죠ㅠ
그리고 가능하면 XE의 원본 파일들을 건드리지 않는걸 지향하기 때문에
(예전에 제 마음대로 XE 파일들을 튜닝한 웹사이트가 있는데 아직까지 새 버전으로 업그레이드를 못하고 있다는 ㅡㅡㅋ)
최종적인 해결책은 아래처럼 해결하면 됩니다.
아래 파일을 수정해주세용.
/modules/board/skins/해당스킨/write_form.html
js 파일을 import하는 코드 아래 부분에 넣어주세용.
이런 소스들 아래에 넣어주세용.
<!--#include("_header.html")-->
<!--%import("../../tpl/js/write_form.js")-->
<!--%import("../../tpl/js/labelbox.js")-->
아래 소스를 넣어주시면 됩니당 ㅋ
<script language="JavaScript"> (function($){ $("html").ready(function(){ jQuery('#xpress-editor-1').val("안녕하세요 내용입니다"); }); })(jQuery); </script>
끝 ㅋ
댓글 6
-
앙까?
2011.05.14 16:20
-
시니시즘
2011.05.15 19:55
오 저보다 고수신데요!!
앙까님 방법이 가장 깔끔해 보입니다^^ -
앙까?
2011.05.15 23:47
ㅎㅎ 예전에 form 입력변수들 validation 처리때문에 이것저것 하다보니 알게 된 방법입니다. ^^
수강신청접수 같은경우 외부페이지로 만들어야 했는데 그때는 filter가 안먹더군요.
그래서 아래의 방법으로 처리했었죠.
filter script를 보고 따라 만들었는데 잘 작동 하더군요.
<form id="fo_insert_membership" action="./" method="get" onsubmit="return false;" style="margin-bottom:50px;">...</form><script type="text/javascript">(function($){$(function(){$('#fo_insert_membership').submit(function () {// 입력값 체크...// 입력값 검사 통과후var params={}, responses=[], data=jQuery(this).serializeArray();jQuery.each(data, function(i, field){var val = field.value.trim();if(!val) return true;if(/\[\]$/.test(field.name)) field.name = field.name.replace(/\[\]$/, '+ '');if(params[field.name]) params[field.name] += '|@|'+val;else params[field.name] = field.value;});responses = ['error','message','mid','member_srl'];if(confirm('수강신청 하시겠습니까?')){exec_xml('membership','procMembershipSignUp', params, completeMembershipSignUp, responses, params, this);return true;}else{$(':disabled').attr('disabled','');return false;}});});})(jQuery);</script> -
시니시즘
2011.05.16 11:21
유용한 소스 공유해주셔서 감사합니다^^
다음에 기회가 있으면 참고해서 적용해보도록 할게요! -
피비햄
2011.05.16 15:28
앙까?님 방법으로 해보니 '내용을 입력해주세요' 메세지는 안나오는데.....
글이 목록에 없네요...ㅠㅠ 등록이 안되는건가????
-
앙까?
2011.05.16 17:55
myInsert.xml 파일을 해당 스킨 디렌토리의 filter 디렉토리에 올리셨나요?
그리고 제가 제시한 방식은 board 모듈에 해당하는 방식입니다.
boardex나 pxeboard의 경우는 그에 해당하는 module명과 action을 사용하셔야 합니다.
글쓴이 | 제목 | 최종 글 |
---|---|---|
난다날아 | XE Core 1.4.5에서 JS 파일 추가 변동사항[XE 버그로 결론] [4] | 2011.04.02 by 행복한고니 |
hika1 | 쉬운설치 동기화 건의 [2] | 2011.03.30 by sol |
hika1 | svg 파일과 MIME 등 관계에 대해 [5] | 2011.03.30 by 백성찬 |
씨지 | 스펨공동대응모듈 프로젝트에 이슈적고 스펨처리당한듯.^^;; | |
철갑 | XE모듈에 대해서 공부중인데 몇가지 질문이 있습니다. [2] | 2011.03.29 by 철갑 |
쿤. | 27시간동안 해결을 못해서 질문드립니다.(엉엉ㅠㅠ) [1] | 2011.03.28 by SMaker |
yumenohosi | XE의 DB 데이터 모델을 구할수 없을까요 [1] | 2011.03.28 by criuce |
Ti27 | XE 궁금한 사항 및 개선되었으면 하는 내용들.. | |
푸름빠 | 사용자 정의 처리 루틴 필요성 [1] | 2011.03.26 by SMaker |
정찬명 | XE를 자동차에 비유하면 이런 느낌일까요? [7] | 2011.03.26 by 인생예술가 |
999 | DB 설계 구조가 속도에 영향을 줄수도.... [3] | 2011.03.24 by ForHanbi |
999 | 커뮤니티 - XE사용팁은 위키 게시판으로.. | |
mglradio | xe 사전 있나요? [1] | 2011.03.24 by 에메랄드그린 |
어쿠스틱 | 1.4.4.4 모바일은 깨져보이는 부분이 있습니다. [4] | 2011.03.24 by 어쿠스틱 |
김 무건 | iePngFix | |
김태형650 | XE에서는 LDAP 연동 완전히 배제된 건가요?? [1] | 2011.03.22 by 난다날아 |
웹 엔진 | 검색 키워드는 어떤방식으로 코드로 바꾸나요? [4] | 2011.03.19 by 웹 엔진 |
푸하라 | singleton 관련 궁금한 부분.... [6] | 2011.03.18 by 푸하라 |
행복한고니 | PHP4는 개발이 더이상 안되나 봅니다. [11] | 2020.03.14 by BlogJh |
999 | 트래픽 문제에 대해 토론해 봅시다. [1] | 2011.03.17 by Treasurej |
제가 아는 코어 소스를 건드리지 않는 방법중 또 하나의 방법은
filter파일 자체를 변경하는 것도 추천드립니다. ^^
board모듈 같은 경우 function dispBoardWrite() 멤버함수에서
Context::addJsFilter($this->module_path.'tpl/filter', 'insert.xml');
형식으로 filter 스크립트를 적용시키는데요.
스킨에서도 직접 적용할 수 있습니다.
초기버전에서 이렇게 사용했었죠. ^^
modules/board/skins/나의스킨/filter/myInsert,xml
procFilter호출시 자신의 filter를 호출하도록 하면 됩니다. ^^
<!-- 게시물 작성 폼 -->