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

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

QA

답변 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 di

약 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)으로 변경


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

이 질문에 댓글 쓰기 :

답변 1

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

회원로그인

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