추천수에 따른 게시물이동을 비추천으로 바꾸는데 도움을 주세요 > 그누4 질문답변

그누4 질문답변

그누보드4 관련 질문은 QA 로 이전됩니다. QA 그누보드4 바로가기
기존 게시물은 열람만 가능합니다.

추천수에 따른 게시물이동을 비추천으로 바꾸는데 도움을 주세요 정보

추천수에 따른 게시물이동을 비추천으로 바꾸는데 도움을 주세요

본문

추천수에 따른 게시물이동소스입니다.
비추천에 따른 게시물이동소스로 변경하려고
하루종일 붙잡는데 ㅠ.ㅠ 잘 안되네요.

어디어디를 수정해야할지 초보를 위해 헌신을 부탁드립니다.
제 마음과 사랑을 겁니다. ㅠㅠㅠㅠㅠ


[[ good.php ]]
 /bbs/good.php

<?
include_once("./_common.php");

echo "<meta http-equiv='content-type' content='text/html; charset=$g4[charset]'>";

if (!$is_member)
{
    $href = "./login.php?$qstr&url=".urlencode("./board.php?bo_table=$bo_table&wr_id=$wr_id");

    echo "<script language='JavaScript'>alert('회원만 가능합니다.'); top.location.href = '$href';</script>";
    exit;
}

if (!($bo_table && $wr_id))
    alert_close("값이 제대로 넘어오지 않았습니다.");

$ss_name = "ss_view_{$bo_table}_{$wr_id}";
if (!get_session($ss_name))
    alert_close("해당 게시물에서만 추천 또는 비추천 하실 수 있습니다.");

$row = sql_fetch(" select count(*) as cnt from {$g4[write_prefix]}{$bo_table} ", FALSE);
if (!$row[cnt])
    alert_close("존재하는 게시판이 아닙니다.");

if ($good == "good" || $good == "nogood")
{
    if($write[mb_id] == $member[mb_id])
        alert_close("자신의 글에는 추천 또는 비추천 하실 수 없습니다.");

    if (!$board[bo_use_good] && $good == "good")
        alert_close("이 게시판은 추천 기능을 사용하지 않습니다.");

    if (!$board[bo_use_nogood] && $good == "nogood")
        alert_close("이 게시판은 비추천 기능을 사용하지 않습니다.");

    $sql = " select bg_flag from $g4[board_good_table]
              where bo_table = '$bo_table'
                and wr_id = '$wr_id'
                and mb_id = '$member[mb_id]'
                and bg_flag in ('good', 'nogood') ";
    $row = sql_fetch($sql);

    if ($row[bg_flag])
    {
        if ($row[bg_flag] == "good")
            $status = "추천";
        else
            $status = "비추천";
       
        echo "<script language='JavaScript'>alert('이미 \'$status\' 하신 글 입니다.');</script>";
    }
    else
    {
        // 추천(찬성), 비추천(반대) 카운트 증가
        sql_query(" update {$g4[write_prefix]}{$bo_table} set wr_{$good} = wr_{$good} + 1 where wr_id = '$wr_id' ");


//////////////////////////////////////////////////////////////////////////////////////////////
///////////// 추천수에 따른 best 갤러리로 이동 060610 pearl짓거리 전문 추가  /////////////////
//////////////////////////////////////////////////////////////////////////////////////////////

// 추천시 이동할 게시판 설정과 추천수 확인용 쿼리
$sql5 = "select * from $g4[board_table] where bo_table = '$bo_table'";
$result5 = sql_query($sql5);

while($row5 = sql_fetch_array($result5))
{
if($row5[bo_3] && $row5[bo_4])
{
// 여분필드3 에 설정된 이동할 게시판 이름 설정
$move_bo_table = $row5[bo_3]; // 테이블 이름 저장
$move_write_table = $g4['write_prefix'] . $move_bo_table; // DB 테이블명 저장


// 여분필드4 에 설정된 추천수 설정
$goodCnt = $row5[bo_4];
}
else
{
$goodCnt = '0.3'; // 추천수가 없으면 0.3 세팅(의미 없음)
}
}

// 해당 게시물 현재 추천수 조회 쿼리
$row = sql_fetch("select wr_good from {$g4[write_prefix]}{$bo_table} where wr_id = '$wr_id'",FALSE);

// 추천수가 이동할 값인지 비교, good(추천) 인지 비교 - 추천수가 안됐거나 good(추천)이 아니면 실행 안됨
if ($row[wr_good] == $goodCnt && $good == "good")
{

// board_good 테이블, 추천 내역 생성
sql_query(" insert $g4[board_good_table] set bo_table = '$bo_table', wr_id = '$wr_id', mb_id = '$member[mb_id]', bg_flag = '$good', bg_datetime = '$g4[time_ymdhis]' ");

$sw = "move"; // 이동이 아니라 복사일 경우는 copy
$act = "이동"; // 이동이 아니라 복사일 경우는 복사
$wr_id_list = $wr_id;

$save = array();
$save_count_write = 0;
$save_count_comment = 0;9
$cnt = 0;

$src_dir = "$g4[path]/data/file/$bo_table"; // 원본 디렉토리
$dst_dir = "$g4[path]/data/file/$move_bo_table"; // 복사본 디렉토리

$count_write = 0;
        $count_comment = 0;

// 해당 게시물 번호 조회
$sql4 = "select wr_num from $write_table where wr_id = '$wr_id'";
        $result4 = sql_fetch($sql4);
$wr_num = $result4[wr_num];

// 해당 게시물 조회 - 본문, 코멘트, 답글까지
$sql2 = " select * from $write_table where wr_num = $wr_num order by wr_parent, wr_comment desc, wr_id ";
$result2 = sql_query($sql2);

// 이동할 게시판에 게시물 순번 설정
$next_wr_num = get_next_num($move_write_table);
   
// 게시물 본문과 코멘트, 답글이 다 이동할때까지
        while ($row2 = sql_fetch_array($result2))
        {

            // 본문 글에 이동 되었다는 메세지 추가
            if (!$row2[wr_is_comment] && $config[cf_use_copy_log])
                $row2[wr_content] .= " \n[이 게시물은 추천수 $goodCnt 이상으로, {$board[bo_subject]} 게시판에서 $move_bo_table 게시판으로 " . ($sw == 'copy' ? '복사' : '이동') ." 되었습니다]";

// 이동되는 게시판에 추가
            $sql = " insert into $move_write_table
                        set wr_num            = '$next_wr_num',
                            wr_reply          = '$row2[wr_reply]',
                            wr_is_comment    = '$row2[wr_is_comment]',
                            wr_comment        = '$row2[wr_comment]',
                            wr_comment_reply  = '$row2[wr_comment_reply]',
                            ca_name          = '".addslashes($row2[ca_name])."',
                            wr_option        = '$row2[wr_option]',
                            wr_subject        = '".addslashes($row2[wr_subject])."',
                            wr_content        = '".addslashes($row2[wr_content])."',
                            wr_link1          = '".addslashes($row2[wr_link1])."',
                            wr_link2          = '".addslashes($row2[wr_link2])."',
                            wr_link1_hit      = '$row2[wr_link1_hit]',
                            wr_link2_hit      = '$row2[wr_link2_hit]',
                            wr_trackback      = '".addslashes($row2[wr_trackback])."',
                            wr_hit            = '$row2[wr_hit]',
                            wr_good          = '$row2[wr_good]',
                            wr_nogood        = '$row2[wr_nogood]',
                            mb_id            = '$row2[mb_id]',
                            wr_password      = '$row2[wr_password]',
                            wr_name          = '".addslashes($row2[wr_name])."',
                            wr_email          = '".addslashes($row2[wr_email])."',
                            wr_homepage      = '".addslashes($row2[wr_homepage])."',
                            wr_datetime      = '$row2[wr_datetime]',
                            wr_ip            = '$row2[wr_ip]',
                            wr_1              = '".addslashes($row2[wr_1])."',
                            wr_2              = '".addslashes($row2[wr_2])."',
                            wr_3              = '".addslashes($row2[wr_3])."',
                            wr_4              = '".addslashes($row2[wr_4])."',
                            wr_5              = '".addslashes($row2[wr_5])."',
                            wr_6              = '".addslashes($row2[wr_6])."',
                            wr_7              = '".addslashes($row2[wr_7])."',
                            wr_8              = '".addslashes($row2[wr_8])."',
                            wr_9              = '".addslashes($row2[wr_9])."',
                            wr_10            = '".addslashes($row2[wr_10])."' ";
            sql_query($sql);

            $insert_id = mysql_insert_id();

            // 코멘트가 아니라면
            if (!$row2[wr_is_comment])
            {
                $save_parent = $insert_id;

                $sql3 = " select * from $g4[board_file_table] where bo_table = '$bo_table' and wr_id = '$row2[wr_id]' order by bf_no ";
                $result3 = sql_query($sql3);
                for ($k=0; $row3 = sql_fetch_array($result3); $k++)
                {
                    if ($row3[bf_file])
                    {
                        // 원본파일을 복사하고 퍼미션을 변경
                        @copy("$src_dir/$row3[bf_file]", "$dst_dir/$row3[bf_file]");
                        @chmod("$dst_dir/$row3[bf_file]", 0606);
// 원본섬네일 파일을 복사하고 퍼미션을 변경
@copy("$src_dir/$row3[bf_file].Thum", "$dst_dir/$row3[bf_file].Thum");
                        @chmod("$dst_dir/$row3[bf_file].Thum", 0606);
                    }

// board_file 테이블 추가
                    $sql = " insert into $g4[board_file_table]
                                set bo_table = '$move_bo_table',
                                    wr_id = '$insert_id',
                                    bf_no = '$row3[bf_no]',
                                    bf_source = '$row3[bf_source]',
                                    bf_file = '$row3[bf_file]',
                                    bf_download = '$row3[bf_download]',
                                    bf_content = '$row3[bf_content]',
                                    bf_filesize = '$row3[bf_filesize]',
                                    bf_width = '$row3[bf_width]',
                                    bf_height = '$row3[bf_height]',
                                    bf_type = '$row3[bf_type]',
                                    bf_datetime = '$row3[bf_datetime]' ";
                    sql_query($sql);

                    if ($sw == "move" && $row3[bf_file])
                        $save[$cnt][bf_file][$k] = "$src_dir/$row3[bf_file]";
                }

                $count_write++;

                if ($sw == "move" && $i == 0)
                {
                    // 스크랩 이동
                    sql_query(" update $g4[scrap_table] set bo_table = '$move_bo_table', wr_id = '$save_parent' where bo_table = '$bo_table' and wr_id = '$row2[wr_id]' ");

                    // 최신글 이동
                    sql_query(" update $g4[board_new_table] set bo_table = '$move_bo_table', wr_id = '$save_parent', wr_parent = '$save_parent' where bo_table = '$bo_table' and wr_id = '$row2[wr_id]' ");
                }
            }
            else
            {
                $count_comment++;

                if ($sw == "move")
                {
                    // 최신글 이동
                    sql_query(" update $g4[board_new_table] set bo_table = '$move_bo_table', wr_id = '$insert_id', wr_parent = '$save_parent' where bo_table = '$bo_table' and wr_id = '$row2[wr_id]' ");
                }
            }

            sql_query(" update $move_write_table set wr_parent = '$save_parent' where wr_id = '$insert_id' ");

            if ($sw == "move")
                $save[$cnt][wr_id] = $row2[wr_parent];

            $cnt++;
        }


        sql_query(" update $g4[board_table] set bo_count_write  = bo_count_write  + '$count_write'  where bo_table = '$move_bo_table' ");
        sql_query(" update $g4[board_table] set bo_count_comment = bo_count_comment + '$count_comment' where bo_table = '$move_bo_table' ");

// '이동' 인경우 원본 게시판의 게시물 삭제
if ($sw == "move")
{
    for ($i=0; $i<count($save); $i++)
    {
        for ($k=0; $k<count($save[$i][bf_file]); $k++)
            @unlink($save[$i][bf_file][$k]);   

        sql_query(" delete from $write_table where wr_parent = '{$save[$i][wr_id]}' ");
        sql_query(" delete from $g4[board_new_table] where bo_table = '$bo_table' and wr_id = '{$save[$i][wr_id]}' ");
        sql_query(" delete from $g4[board_file_table] where bo_table = '$bo_table' and wr_id = '{$save[$i][wr_id]}' ");
    }
    sql_query(" update $g4[board_table] set bo_count_write = bo_count_write - 1, bo_count_comment = bo_count_comment - 1 where bo_table = '$bo_table' ");

// 이동할 추천수가 됐으면 '이 글을 추천 하셨습니다' 대신 이동 됐다는 메세지
echo "<script language='JavaScript'>alert('\'$goodCnt\' 번째 추천입니다. \'$move_bo_table\' 게시판으로 이동 됩니다');</script>";

$href_c = "./board.php?bo_table=$bo_table"; // 이동인 경우 해당 게시물이 게시판에서 삭제 되므로 게시판 보기로 리플래쉬

echo "<script language='JavaScript'>top.location.href = '$href_c';</script>";
}


} // 여기까지 자동이동 if 문 이동 로직

//////////////////////////////////////////////////////////////////////////////////////////////
///////////////////////////// 여기까지 추천수에 의한 자동 이동 로직  /////////////////////////
//////////////////////////////////////////////////////////////////////////////////////////////


        // 내역 생성 - 이동하지 않는 보통때 내역 생성 쿼리
        sql_query(" insert $g4[board_good_table] set bo_table = '$bo_table', wr_id = '$wr_id', mb_id = '$member[mb_id]', bg_flag = '$good', bg_datetime = '$g4[time_ymdhis]' ");


        if ($good == "good")
            $status = "추천";
        else
            $status = "비추천";

        echo "<script language='JavaScript'> alert('이 글을 \'$status\' 하셨습니다.');</script>";

// 기본 good.php 에 없는 건데, 추천 후 해당 게시물 리플래쉬 해줌(추천 카운트 올라간거 확인됨)
$href_r = "./board.php?bo_table=$bo_table&wr_id=$wr_id&page=$page";
echo "<script language='JavaScript'>top.location.href = '$href_r';</script>";
    }
}


?>
  • 복사

댓글 전체

© SIRSOFT
현재 페이지 제일 처음으로