여분필드를 사용해 스마트에디터를 여러 개 쓰는 기능 오류에 대해 질문드립니다ㅠㅠ

여분필드를 사용해 스마트에디터를 여러 개 쓰는 기능 오류에 대해 질문드립니다ㅠㅠ

QA

여분필드를 사용해 스마트에디터를 여러 개 쓰는 기능 오류에 대해 질문드립니다ㅠㅠ

본문

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

 

두 게시글을 참고했습니다. 그런데 여러 가지 시도를 해도 게시글 작성창에서 에디터가 이렇게 꼬입니다...ㅠㅠㅠ


3542305386_1673858322.8085.png

 

 

배포된 스킨을 사용 중인데, 

[페어설명] 입력란 : 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를 기본적으로 사용하고 있습니다.

이미지 보시면 아시겠지만
[상세 내용 L]에 에디터가 2개 뜹니다.
[상세 내용 L]과 [상세 내용 R]에 각각 하나씩 출력되어야 하는데도요ㅠㅠ;
그리고 아래쪽 [상세 내용 R] 일반 인풋창이 또 출력되고 있고요.
이 일반 인풋텍스트에 내용을 입력해서 수정을 완료하면, 상단 에디터 중 첫번째에 내용이 입력됩니다;

에디터를 wr_5와 wr_content 두 개 쓰겠다는 것 맞습니다.


    <dl>
        <dt>상세 내용(L)</dt>
        <dd>
        <?php echo editor_html("wr_5", $write['wr_5'], $is_dhtml_editor); ?>
       </dd>
    </dl>


    <dl>
        <dt>상세 내용(R)</dt>
        <dd>
        <?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 } ?>
    </dd>
    </dl>


이런식으로 틀을 적용해 보시면 될듯 합니다.

게시글 작성 주소는

/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형식으로 추가 하실 때도 동일하게 하시면됩니다.

 

해보시고 안되시면 쪽지 주시면 도움 드리겠습니다.

답변을 작성하시기 전에 로그인 해주세요.
전체 15
QA 내용 검색

회원로그인

(주)에스아이알소프트 / 대표:홍석명 / (06211) 서울특별시 강남구 역삼동 707-34 한신인터밸리24 서관 1404호 / E-Mail: admin@sir.kr
사업자등록번호: 217-81-36347 / 통신판매업신고번호:2014-서울강남-02098호 / 개인정보보호책임자:김민섭(minsup@sir.kr)
© SIRSOFT