답변 26개 이상으로 늘리는 방법(임시) > 그누보드5 팁자료실

그누보드5 팁자료실

답변 26개 이상으로 늘리는 방법(임시) 정보

답변 26개 이상으로 늘리는 방법(임시)

본문

답변 26개 이상으로 늘리는 방법이 있는데 모든 경우까지 완벽하게 변경하는 것이 아님을 알려드립니다. 심지어 저도차도 제가 사용한 방법에 대해 모든 상황을 테스트 해보지 않았습니다.
제가 생각하는 가능한 기능 : 원글 아래로 달 수 있는 1차 답변을 26개에서 9999개로 늘린다.
,원글 과 답변글 수정 및 삭제 가능.
제가 생각하는 사용하면 안되는 기능 : 답변의 답변기능까지는 작업하지 않았으며 제대로 작동지 않을것입니다.(추가로 수정하세요.)
조건 : 관리자 모드 > 해당 게시판 수정 > 답변 달기 기본값(1)으로 되어있는지 확인
 
www/bbs/write.php
약 131번째 줄쯤부터 나오는 코드를 다음과 같이 수정

    // 최대 답변은 테이블에 잡아놓은 wr_reply 사이즈만큼만 가능합니다.
    if (strlen($reply_array['wr_reply']) == 10){
        alert('더 이상 답변하실 수 없습니다.\\n\\n답변은 10단계 까지만 가능합니다.');
}


    $reply_len = strlen($reply_array['wr_reply']) + 1;
    if ($board['bo_reply_order']) {
        $begin_reply_char = '1';
        $end_reply_char = '9999';
        $reply_number = +1;
        //$sql = " select MAX(SUBSTRING(wr_reply, {$reply_len}, 1)) as reply from {$write_table} where wr_num = '{$reply_array['wr_num']}' and SUBSTRING(wr_reply, {$reply_len}, 1) <> '' ";
$sql = " select MAX(wr_reply) as reply from {$write_table} where wr_num = '{$reply_array['wr_num']}' ";
    } else {
        $begin_reply_char = 'Z';
        $end_reply_char = 'A';
        $reply_number = -1;
        $sql = " select MIN(SUBSTRING(wr_reply, {$reply_len}, 1)) as reply from {$write_table} where wr_num = '{$reply_array['wr_num']}' and SUBSTRING(wr_reply, {$reply_len}, 1) <> '' ";
    }
    //if ($reply_array['wr_reply']) $sql .= " and wr_reply like '{$reply_array['wr_reply']}%' ";
echo $sql;

    $row = sql_fetch($sql);

www/bbs/write_update.php
약 154번째 줄쯤부터 나오는 코드를 다음과 같이 수정
    // 게시글 배열 참조
    $reply_array = &$wr;


    // 최대 답변은 테이블에 잡아놓은 wr_reply 사이즈만큼만 가능합니다.
    if (strlen($reply_array['wr_reply']) == 10) {
        alert("더 이상 답변하실 수 없습니다.\\n답변은 10단계 까지만 가능합니다.");
    }


    $reply_len = strlen($reply_array['wr_reply']) + 1;
    if ($board['bo_reply_order']) {
        $begin_reply_char = '1';
        $end_reply_char = '9999';
        $reply_number = +1;
        //$sql = " select MAX(SUBSTRING(wr_reply, $reply_len, 1)) as reply from {$write_table} where wr_num = '{$reply_array['wr_num']}' and SUBSTRING(wr_reply, {$reply_len}, 1) <> '' ";
$sql = " select MAX(wr_reply) as reply from {$write_table} where wr_num = '{$reply_array['wr_num']}' ";
    } else {
        $begin_reply_char = 'Z';
        $end_reply_char = 'A';
        $reply_number = -1;
        $sql = " select MIN(SUBSTRING(wr_reply, {$reply_len}, 1)) as reply from {$write_table} where wr_num = '{$reply_array['wr_num']}' and SUBSTRING(wr_reply, {$reply_len}, 1) <> '' ";
    }
    //if ($reply_array['wr_reply']) $sql .= " and wr_reply like '{$reply_array['wr_reply']}%' ";
    $row = sql_fetch($sql);


    if (!$row['reply']) $reply_char = $begin_reply_char;
    //} else if ($row['reply'] == $end_reply_char) { // A~Z은 26 입니다.
    //    alert("더 이상 답변하실 수 없습니다.\\n답변은 26개 까지만 가능합니다.");
    //} else {
else $reply_char = $row['reply'] + $reply_number;
   



    $reply = $reply_array['wr_reply'] . $reply_char;
-DB에서 해당 테이블 wr_reply 을 int(10)으로 변경

★위 코드는 필요한 기능 외의 상황은 테스트하지 않았습니다. 다만 이와 비슷한 요청이 많은데도 불구하고 답변이 없어서 제가 수정한 만큼만 올려봅니다.
추천
2

댓글 7개

질문 들립니다. 말씀하신대로 따라했는데요.. 따라한 결과 리스트페이지에서 원글과 답변글의 구분이 가지 않게 됩니다. 답변글에는 아이콘나오고 들여쓰기가 되게끔 되어있는데.. 말씀대로 하면 원글도 아이콘 나오고 들여쓰기가 되네요.... 원글과 답변글 구분할 수 있게끔 할 수 없을까요??
제이프로님 좋은 팁 감사합니다.

그누보드5 사용하고 있는데..

< 조건 : 관리자 모드 > 해당 게시판 수정 > 답변 달기 기본값(1)으로 되어있는지 확인 >

이 부분이 어디인지 찾지 못했습니다.
관리자모드페이지에서 어디를 봐야 할까요?

그리고, 특정게시판만 적용하고 싶을경우에는
if($bo_table=="보드명"){ //게시판이 "보드명"일 경우...
이렇게 해도 괜찮을까요?
'답변 달기 기본값' 게시판 수정 페이지에서 ctrl +f 를 눌러서 찾아보시기 바랍니다.

음 오래전 것이라 확신은 못하겠습니다만 DB값도 함께 바뀌기 때문에 특정 테이블만 적용하려면 연결된 다른 부분도 함께 고려하시기 바랍니다.
위의 방법으로 답글을 잘 늘려서 사용하는데..
리스트 페이지에는 답글이 안보이도록 하고,
보기페이지 아래 전체보기리스트에 해당 답변글만 출력되게 하였습니다.

리스트 페이지글과 전체보기리스트의 번호가 이어서 출력되어
답글번호를 포함하여 페이징이 됩니다.
그리고, 답변글은 페이징이 되지 않습니다.

의뢰 수준의 작업일 수도 있지만 좋은 팁의 보완이 있을까 하여 문의드려봅니다.
전체 2,426 |RSS
그누보드5 팁자료실 내용 검색

회원로그인

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