여분필드를 사용해 스마트에디터를 여러 개 쓰는 기능 오류에 대해 질문드립니다ㅠㅠ
본문
https://gnustudy.com/bbs/board.php?bo_table=skin_board&wr_id=14
http://www.gnuwiz.com/bbs/board.php?bo_table=board_tip&wr_id=28
두 게시글을 참고했습니다. 그런데 여러 가지 시도를 해도 게시글 작성창에서 에디터가 이렇게 꼬입니다...ㅠㅠㅠ
배포된 스킨을 사용 중인데,
[페어설명] 입력란 : wr_6 (본래 wr_content로 할당되어 있었으나 여분필드로 변경했음, 일반 text input)
[상세내용 L] : wr_5 (스마트 에디터)
[상세내용 R] : wr_content (스마트 에디터)
이러한 여분필드 입력값을 사용하고 싶습니다.
게시글 작성창 주소 :
http://youthday.ivyro.net/bbs/write.php?w=u&bo_table=profile&wr_id=1&page=
write.skin.php 수정한 부분 코드
1) 첫 부분
<?php
if (!defined('_GNUBOARD_')) exit; // 개별 페이지 접근 불가
if ($w == 'u') {
$wr_5 = get_text(html_purifier($write['wr_5']), 0);
}
// add_stylesheet('css 구문', 출력순서); 숫자가 작을 수록 먼저 출력됨
add_stylesheet('<link rel="stylesheet" href="'.$board_skin_url.'/style.css">', 0);
?>
2) 스마트에디터 출력 부분
<dl>
<dt>페어설명</dt>
<dd>
<input type="text" name="wr_6" value="<?php echo $write['wr_6'] ?>" id="wr_6" class="frm_input full" size="50" maxlength="255">
</dd>
</dl>
-중략-
<dl>
<dt>상세 내용(L)</dt>
<dd>
<tr>
<td class="wr_content">
<?php if($write_min || $write_max) { ?>
<!-- 최소/최대 글자 수 사용 시 -->
<p id="char_count_desc">이 게시판은 최소 <strong><?php echo $write_min; ?></strong>글자 이상, 최대 <strong><?php echo $write_max; ?></strong>글자 이하까지 글을 쓰실 수 있습니다.</p>
<?php } ?>
<?php echo $editor_html; // 에디터 사용시는 에디터로, 아니면 textarea 로 노출 ?>
<?php if($write_min || $write_max) { ?>
<!-- 최소/최대 글자 수 사용 시 -->
<div id="char_count_wrap"><span id="char_count"></span>글자</div>
<?php } ?>
</td>
</tr>
<tr>
<td class="wr_content">
<?php echo editor_html("wr_5", $write['wr_5'], $is_dhtml_editor); ?>
</td>
</tr>
</dd>
</dl>
-중략-
<dl>
<dt>상세 내용(R)</dt>
<dd>
<input type="text" name="wr_content" value="<?php echo $write['wr_content'] ?>" id="wr_content" class="frm_input required full" size="50" maxlength="255">
</dd>
</dl>
3) 하단 함수 스크립트
function fwrite_submit(f)
{
<?php echo $editor_js; // 에디터 사용시 자바스크립트에서 내용을 폼필드로 넣어주며 내용이 입력되었는지 검사함 ?>
<?php echo get_editor_js("wr_5"); ?>
<?php echo chk_editor_js("wr_5"); ?>
이렇게 세 가지 부분 수정했습니다. view는 정상적으로 출력됩니다. 도왖쉐요ㅠㅠㅠ
답변 3
위 내용만 봐서는 확인이 어려워서 어떻게 꼬인다는건지 설명이 필요할듯 합니다.
지금 에디터를 wr_5와 wr_content 두개를 쓰시겠다는 건가요?
참고로 중간에 $editor_html 이라는 변수도 에디터기에 참고해 보시고요
상단에 $editor_html 호출하는 부분이 wr_content를 기본적으로 사용하고 있습니다.
게시글 작성 주소는
/bbs/write.php?bo_table=profile
인것 같고
들어가면 2 개의 엘리먼트에서 id 가 유니크하지 않다고 메세지가 나옵니다.
소스보기를 해보면 실제 id 가 겹치고 있는데
<textarea id="wr_content" name="wr_content" class="smarteditor2" maxlength="65536" style="width:100%;height:300px"></textarea>
...
<input type="text" name="wr_content" value="" id="wr_content" class="frm_input required full" size="50" maxlength="255">
이 값들이 서버로 전송될때는 name 이 같아 이름이
먼저 선언된 textarea 의 값이
나중에 선언된 input 값으로 덮어쓰기 될것 같습니다.
!-->이런경우 간단하게 처리하는 방법 안내드리겠습니다.
// 해당 스킨경로에
write.head.skin.php 파일을 추가하여
// 아래 처럼 추가 합니다.
$wr_5_html = editor_html('wr_5', $content, $is_dhtml_editor);
$wr_5_js = '';
$wr_5_js .= get_editor_js('wr_5', $is_dhtml_editor);
$wr_5_js .= chk_editor_js('wr_5', $is_dhtml_editor);
// 그리고 나서...
write.skin.php 파일에서
// dhtml을 사용하려는 위치에 set
<?php echo $wr_5_html; // 에디터 사용시는 에디터로, 아니면 textarea 로 노출 ?>
function fwrite_submit(f)
{
<?php echo $editor_js; // 에디터 사용시 자바스크립트에서 내용을 폼필드로 넣어주며 내용이 입력되었는지 검사함 ?>
// 이 파일 다음에
<?php echo $wr_5_js; // <-- 요렇게 추가 하면 끝납니다. (wr_6 항목 추가 해도 요렇게 하면되겠습니다... ^^) ?>
위와 같이 활용해서 추가하시면 오류 없이 깔끔하게 처리 할수 있습니다.
wr_6형식으로 추가 하실 때도 동일하게 하시면됩니다.
해보시고 안되시면 쪽지 주시면 도움 드리겠습니다.
!-->