제로보드4는 공식적으로 더 이상 개발되지도 배포되지도 않습니다.
제로보드4를 사용하기 위한 팁보다 제로보드4를 안전하고 무사히 다른 툴로 이전하는 팁들을 게재해주시면 감사하겠습니다.
시간이 오래 지난 만큼 오래된 프로그램은 보안 및 사용성에 있어 문제가 많으니 이해 바랍니다.
qkrwogks2
<input type=checkbox name=is_secret <?=$secret?> value=1>
이 부분을
<input type=checkbox name=is_secret value=1 checked="checked">
그리고 하단 스크립트 부분에 이렇게 적용하셔야 합니다.
<script type="text/javascript">
var oEditors = [];
nhn.husky.EZCreator.createInIFrame(oEditors, "ir1", "SEditorSkin.html", "createSEditorInIFrame");
function _onSubmit(elClicked){
oEditors.getById["ir1"].exec("UPDATE_IR_FIELD", []);
if(!document.getElementById("subject").value) {alert('제목을 입력해 주세요.');return false;}
if(!document.getElementById("ir1").value) {alert('내용을 입력해 주세요.');return false;}
}
</script>
이런식으로... 그리고 SEditorSkin.html는 경로에 맞게 수정해주셔야 합니다.
위에 제가 잘못 말씀드렸네요.
테스트결과 현재는 function _onSubmit(elClicked){}안에서는 어떤 방법으로든지
if(!document.getElementById("subject").value) {alert('+
'제목을 입력해 주세요.');return false;}와
같은 방법으로는 폼체크가 안됩니다.
지금 폼체크가 되는 것은 제로보드의 check_submit()에서 되고있습니다.
(이걸 제가 function _onSubmit(elClicked){}안에서 체크가 되는 걸로 잘 못 알았습니다.)
또 에디터가 아직 개발중이여선지
nhn.husky.EZCreator.createInIFrame(oEditors, "ir1", "SEditorSkin.html", "createSEditorInIFrame", null, true);
와 같이 끝에 true를 적으면 페이지 접근조차 안됩니다.(에러발생)
실험해보시고 다른 정보있으시면 알려주시면 감사하겠습니다.
qkrwogks2
write.php 보시면 form 체크하는게 check_submit();로 되어 있습니다. 이것을 제가 말씀드린것처럼 _onSubmit..로 바꿔주시면 됩니다.
그리고 전 아래와 같이 해서 잘 쓰고 있습니다.
개발중이어서 true로 적으면 페이지 접근이 안되는게 아니라, 해당 스크립트를 페이지 최하단(foot)에 넣지 않아 발생하는 에러입니다. write.php에 이 소스를 넣지 않고 페이지의 footer 파일에 넣으시길 바랍니다.
<script type="text/javascript">
var oEditors = [];
nhn.husky.EZCreator.createInIFrame(oEditors, "ir1", "SEditorSkin.html", "createSEditorInIFrame", null, true);
function _onSubmit(elClicked){
oEditors.getById["ir1"].exec("UPDATE_IR_FIELD", []);
if(!document.getElementById("subject").value){alert('제목을 입력해 주세요.');document.getElementById("subject").focus();return false;}
if(!document.getElementById("ir1").value){alert('내용을 입력해 주세요.');return false;}
try{elClicked.form.submit();}catch(e){}
}
</script>
# bbs/SmartEditorBasic 에디터 폴더 위치가 이렇다면...
(제껀 0.3.12 버전이군요.)
# 스킨 write.php 파일 열고 제일 위에
<script type="text/javascript" src="SmartEditorBasic/js/HuskyEZCreator.js"></script>
# html사용 체크박스 채크된 상태로 만들고, 히든타입으로 안보이게 감춰 주고...
<input type=hidden class=basket id=use_html name=use_html checked value=1>
# textarea는 대충 name=memo 정도면 되고...
<textarea name=memo ....><?=$memo?></textarea>
# 제일 밑에 스크립트 삽입.
<script>
var oEditors = [];
nhn.husky.EZCreator.createInIFrame(oEditors, "memo", "SmartEditorBasic/SEditorSkin.html", "createSEditorInIFrame");
// var oEditors = [];
// 마지막 옵션은 체감 속도 증진을 위해서 페이지 로딩 완료시 까지 화면 표시를 하지 않는 옵션 입니다.
// 개발 작업시에는 이 값을 false로 설정 하세요.
// nhn.husky.EZCreator.createInIFrame(oEditors, "ir1", "editor/SEditorSkin.html", "createSEditorInIFrame", null, true);
// 복수개의 에디터를 생성하고자 할 경우, 아래와 같은 방식으로 호출하고 oEditors.getById["ir2"]이나 oEditors[1]을 이용해 접근하면 됩니다.
// nhn.husky.EZCreator.createInIFrame(oEditors, "ir2", "SEditorSkin.html", "createSEditorInIFrame", null, true);
function pasteHTMLDemo(){
sHTML = "<span style='color:#FF0000'>이미지 등도 이렇게 삽입하면 됩니다.</span>";
oEditors.getById["memo"].exec("PASTE_HTML", [sHTML]);
}
function showHTML(){
alert(oEditors.getById["memo"].getIR());
}
function _onSubmit(elClicked){
// 에디터의 내용을 에디터 생성시에 사용했던 textarea에 넣어 줍니다.
oEditors.getById["memo"].exec("UPDATE_IR_FIELD", []);
// 에디터의 내용에 대한 값 검증은 이곳에서 document.getElementById("ir1").value를 이용해서 처리하면 됩니다.
try{
elClicked.form.submit();
}catch(e){}
}
</script>
asdf
작동이 되는거까진 확인했는데요.
게시판(글쓰는 화면)이 오그라들어버리더군요;;;
테이블 가로폭을 아무리 조정해도 변화는 없구요.(관리페이지와 스킨의 php, css모두 건드려 봤습니다.)
게시판을 하나만 띄워서 테스트 했기 때문에 다른 외부적 요인은 없을 것이구요;
원인이 뭘까요?;
저는 그냥 해도 댜충 별 이상없이 나오더라구요.
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Smart Editor™</title>
<link href="css/default.css" rel="stylesheet" type="text/css" />
<script type="text/javascript" src="js/jindo.min.js" charset="utf-8"></script>
<script type="text/javascript" src="js/Husky.SE_Basic.js" charset="utf-8"></script>
서종훈
아래 테그의 <>를 [] 로 변경 하였습니다. 에디터로 일괄 변경해서 사용하세요!
문제 1. 내용을 입력하라는 메시지 해결 방법.
텍스트입력 창의 id 갑과 가장 하단의 스크립트와 id값 통일.
memo로 하든지 ir1으로 하든지.
해당 스킨의 wirte.php 수정
# 텍스트 입력창 부분
[textarea name=memo id=memo [?=size2(90)?] rows=18 class=textarea style=width:99%][?=$memo?][/textarea]
#하단 스크립트
[script]
var oEditors = [];
nhn.husky.EZCreator.createInIFrame(oEditors, "memo", "SmartEditorBasic/SEditorSkin.html", "createSEditorInIFrame");
// var oEditors = [];
// 마지막 옵션은 체감 속도 증진을 위해서 페이지 로딩 완료시 까지 화면 표시를 하지 않는 옵션 입니다.
// 개발 작업시에는 이 값을 false로 설정 하세요.
// nhn.husky.EZCreator.createInIFrame(oEditors, "ir1", "editor/SEditorSkin.html", "createSEditorInIFrame", null, true);
// 복수개의 에디터를 생성하고자 할 경우, 아래와 같은 방식으로 호출하고 oEditors.getById["ir2"]이나 oEditors[1]을 이용해 접근하면 됩니다.
// nhn.husky.EZCreator.createInIFrame(oEditors, "ir2", "SEditorSkin.html", "createSEditorInIFrame", null, true);
function pasteHTMLDemo(){
sHTML = "[span style='color:#FF0000']이미지 등도 이렇게 삽입하면 됩니다.[/span]";
oEditors.getById["memo"].exec("PASTE_HTML", [sHTML]);
}
function showHTML(){
alert(oEditors.getById["memo"].getIR());
}
function _onSubmit(elClicked){
// 에디터의 내용을 에디터 생성시에 사용했던 textarea에 넣어 줍니다.
oEditors.getById["memo"].exec("UPDATE_IR_FIELD", []);
// 에디터의 내용에 대한 값 검증은 이곳에서 document.getElementById("ir1").value를 이용해서 처리하면 됩니다.
try{
elClicked.form.submit();
}catch(e){}
}
[/script]
문제 2. 테이블 입력시 테이블 만큼 [br]테그가 나오는 것 해결 방법.
이건 자동 줄 바꿈 기능이 켜져 있어서 그렇습니다.
해당 스킨의 wirte.php의 52번줄의 옵션 중 html 테그 입력을 선택하는 부분을 다음과 같이 변경 하시기 바랍니다.
[input type=hidden class=basket id=use_html name=use_html checked value=2]
내용을 계속 입력하라고 나옵니다. 팁오려주신것도 해보고 밑에 리플들도 참고해서 해봤는데 아무리해도 안되네요...
아래 소스가 현재 적용된 내용인데 어디가 잘못된건지 지적해주시면 감사하겠습니다. 제발 도와주세요...
2틀째 원본파일에 계속 이래저래 바꿔가면서 해보고 있는데 도무지 해결방법을 찾지 못하겠습니다..ㅠㅠ
<script type="text/javascript" src="./se/js/HuskyEZCreator.js"></script>
<input type=submit value="확인" class=submit accesskey="s" onclick=_onsubmit(this)>
<script>
var oEditors = [];
nhn.husky.EZCreator.createInIFrame(oEditors, "memo", "./se/SEditorSkin.html", "createSEditorInIFrame");
function pasteHTMLDemo(){
sHTML = "<span style='color:#FF0000'>이미지 등도 이렇게 삽입하면 됩니다.</span>";
oEditors.getById["memo"].exec("PASTE_HTML", [sHTML]);
}
function showHTML(){
alert(oEditors.getById["memo"].getIR());
}
function _onSubmit(elClicked){
oEditors.getById["memo"].exec("UPDATE_IR_FIELD", []);
try{
elClicked.form.submit();
}catch(e){}
}
</script>
<script type="text/javascript" src="./SE/js/HuskyEZCreator.js"></script>
<form method="post" name="write" action="write_ok.php" onsubmit="return check_submit();" enctype=multipart/form-data>
<input type="hidden" name="page" value="<?=$page?>" />
<input type="hidden" name="id" value="<?=$id?>" />
<input type="hidden" name="no" value="<?=$no?>" />
<input type="hidden" name="select_arrange" value="<?=$select_arrange?>" />
<input type="hidden" name="desc" value="<?=$desc?>" />
<input type="hidden" name="page_num" value="<?=$page_num?>" />
<input type="hidden" name="keyword" value="<?=$keyword?>" />
<input type="hidden" name="category" value="<?=$category?>" />
<input type="hidden" id="sn" name="sn" value="<?=$sn?>" />
<input type="hidden" id="ss" name="ss" value="<?=$ss?>" />
<input type="hidden" id="sc" name="sc" value="<?=$sc?>" />
<input type="hidden" name="mode" value="<?=$mode?>" />
<table class="xeWrite_tb" width="<?=$width?>" cellSpacing="0" cellpadding="0">
<colgroup span="2"><col width="130px"></col><col></col></colgroup>
<?=$hide_start?>
<tr>
<td class="xeWrite_td_L">이름</td>
<td class="xeWrite_td_R"><input type="text" name="name" value="<?=$name?>" maxlength="20" class="xeWrite_ip2" /></td>
</tr>
<tr>
<td class="xeWrite_td_L">비밀번호</td>
<td class="xeWrite_td_R"><input type="password" name="password" maxlength="20" class="xeWrite_ip2" /></td>
</tr>
<tr>
<td class="xeWrite_td_L">이메일</td>
<td class="xeWrite_td_R"><input type="text" name="email" value="<?=$email?>" maxlength="200" class="xeWrite_ip1" /></td>
</tr>
<tr>
<td class="xeWrite_td_L">홈페이지</td>
<td class="xeWrite_td_R"><input type="text" name="homepage" value="<?=$homepage?>" maxlength="200" class="xeWrite_ip1" /></td>
</tr>
<?=$hide_end?>
<tr>
<td class="xeWrite_td_L">제목</td>
<td class="xeWrite_td_R"><?=$category_kind?> <input type="text" name="subject" value="<?=$subject?>" maxlength="200" class="xeWrite_ip1" /></td>
</tr>
<tr>
<td class="xeWrite_td_L">옵션</td>
<td class="xeWrite_td_R">
<?=$hide_notice_start?> <input type="checkbox" name="notice" <?=$notice?> value="1" /> 공지사항 <?=$hide_notice_end?>
<?=$hide_html_start?> <input type="checkbox" name="use_html" <?=$use_html?> value="1" /> HTML사용 <?=$hide_html_end?>
<input type="checkbox" name="reply_mail" <?=$reply_mail?> value="1" /> 답변메일받기
<?=$hide_secret_start?> <input type="checkbox" name="is_secret" <?=$secret?> value="1" /> 비밀글 <?=$hide_secret_end?>
</td>
</tr>
<tr>
<td class="xeWrite_memo" colspan="2">
<!--안씀<textarea name="memo" id="ir1" style="width:610px; height:300px"><?=$memo?></textarea>-->
<textarea name=memo id=memo <?=size2(90)?> rows=18 class=textarea style=width:99%><?=$memo?></textarea>
<!----<textarea name="memo" class="xeWrite_memoT"><?=$memo?></textarea></td> ---->
</tr>
<tr class="xeWrite_bttr">
<td class="xeWrite_bttr_L"><a class="button" href="#" onclick="history.go(-1)" title="취소"><span>취소</span></a></td>
<td class="xeWrite_bttr_R">
<a class="button" href="javascript:void(0)" onclick="view_preview()" title="미리보기"><span>미리보기</span></a>
<?if($member[no]&&$setup[grant_imagebox]>=$member[level]) {// 이미지박스?>
<a class="button" href="javascript:void(0)" onclick="showImageBox('<?=$id?>')" title="이미지박스"><span>이미지박스</span></a><?}?></td>
</tr>
<?=$hide_sitelink1_start?>
<tr>
<td class="xeWrite_td_L">링크 1</td>
<td class="xeWrite_td_R"><input type="text" name="sitelink1" value="<?=$sitelink1?>" maxlength="200" class="xeWrite_ip1" /></td>
</tr>
<?=$hide_sitelink1_end?>
<?=$hide_sitelink2_start?>
<tr>
<td class="xeWrite_td_L">링크 2</td>
<td class="xeWrite_td_R"><input type="text" name="sitelink2" value="<?=$sitelink2?>" maxlength="200" class="xeWrite_ip1" /></td>
</tr>
<?=$hide_sitelink2_end?>
<?=$hide_pds_start?>
<tr>
<td class="xeWrite_td_L">파일 1</td>
<td class="xeWrite_td_R"><input type="file" name="file1" maxlength="255" class="xeWrite_ip1" /><?=$file_name1?></td>
</tr>
<tr>
<td class="xeWrite_td_L">파일 2</td>
<td class="xeWrite_td_R"><input type="file" name="file2" maxlength="255" class="xeWrite_ip1" /><?=$file_name2?></td>
</tr>
<?=$hide_pds_end?>
</table>
<input type=hidden class=basket id=use_html name=use_html checked value=2>
<div style="display:block; width:<?=$width?>; height:50px; padding:20px10px; text-align:right">
<span class="button">
<input type="submit" value="작성완료" accesskey="s" title="작성완료" />
</span></div>
</form>
<!--------------------------------------------------------- 스크랩트 시작 ------------------------------------------------->
<script>
var oEditors = [];
nhn.husky.EZCreator.createInIFrame(oEditors, "memo", "./SE/SEditorSkin.html", "createSEditorInIFrame");
// var oEditors = [];
// 마지막 옵션은 체감 속도 증진을 위해서 페이지 로딩 완료시 까지 화면 표시를 하지 않는 옵션 입니다.
// 개발 작업시에는 이 값을 false로 설정 하세요.
// nhn.husky.EZCreator.createInIFrame(oEditors, "ir1", "se/SEditorSkin.html", "createSEditorInIFrame", null, true);
// 복수개의 에디터를 생성하고자 할 경우, 아래와 같은 방식으로 호출하고 oEditors.getById["ir2"]이나 oEditors[1]을 이용해 접근하면 됩니다.
// nhn.husky.EZCreator.createInIFrame(oEditors, "ir2", "se/SEditorSkin.html", "createSEditorInIFrame", null, true);
function pasteHTMLDemo(){
sHTML = "[span style='color:#FF0000']이미지 등도 이렇게 삽입하면 됩니다.[/span]";
oEditors.getById["memo"].exec("PASTE_HTML", [sHTML]);
}
function showHTML(){
alert(oEditors.getById["memo"].getIR());
}
function _onSubmit(elClicked){
// 에디터의 내용을 에디터 생성시에 사용했던 textarea에 넣어 줍니다.
oEditors.getById["memo"].exec("UPDATE_IR_FIELD", []);
// 에디터의 내용에 대한 값 검증은 이곳에서 document.getElementById("ir1").value를 이용해서 처리하면 됩니다.
try{
elClicked.form.submit();
}catch(e){}
}
</script>
제가 뭐가 틀린건가요?ㅠㅠㅠㅠ
많은 분들이 저 처럼 내용을 입력하라고 해서 고민하시는군요. 검색 끝에 이 페이지를 보고 해결했습니다.
이거 줄간격하고 카테고리때문에 포기한분들 많을거같은데요..
줄간격은 게시판 스킨 .css 안에
P {margin:0px;}
저한줄 넣어주시면돼구요.
카테고리는 zb4의 write_ok.php 안에보시면.
if(isblank($subject)) Error("제목을 입력하셔야 합니다");
if(isblank($memo)) Error("내용을 입력하셔야 합니다");
이거 찾아서 그아래
if($setup[use_category]) { if($category<1) Error("카테고리를 선택하여 주십시요."); }
이거한줄 넣어주시면돼요..



다만, 저 같은 초보자도 알아보기 쉽게... write.php파일 내용중... 수정된 부분을 색깔로 표시를 해주시면 어떠실런지요? ^^