게시물을 자동으로 다른 특정 게시판에 복사하는것이 가능할까요? > 그누4 질문답변

그누4 질문답변

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

게시물을 자동으로 다른 특정 게시판에 복사하는것이 가능할까요? 정보

게시물을 자동으로 다른 특정 게시판에 복사하는것이 가능할까요?

본문

테이블명이 A인 게시판에서 글을 등록하면, 관리자가 게시물 복사를 하지 않아도 자동으로 B라는 게시판에 복사되도록 할수 있을까 해서 문의드립니다..

댓글 전체

아래 구문을 .... write_update.skin.php  에 넣으시면 돼요.
  $se_table  =  "g4_write_test2" ;  //  다른 테이블에 변수 전달할경우

      $sql = " insert into $se_table 
                set wr_num = '$wr_num',
                    wr_reply = '$wr_reply',
                    wr_comment = 0,
                    ca_name = '$ca_name',
                    wr_option = '$html,$secret,$mail',
                    wr_subject = '$wr_subject',
                    wr_content = '$wr_content',
                    wr_link1 = '$wr_link1',
                    wr_link2 = '$wr_link2',
                    wr_link1_hit = 0,
                    wr_link2_hit = 0,
                    wr_trackback = '$wr_trackback',
                    wr_hit = 0,
                    wr_good = 0,
                    wr_nogood = 0,
                    mb_id = '$member[mb_id]',
                    wr_password = '$wr_password',
                    wr_name = '$wr_name',
                    wr_email = '$wr_email',
                    wr_homepage = '$wr_homepage',
                    wr_datetime = '$g4[time_ymdhis]',
                    wr_last = '$g4[time_ymdhis]',
                    wr_ip = '$_SERVER[REMOTE_ADDR]',
                    wr_1 = '$wr_1',
                    wr_2 = '$wr_2',
                    wr_3 = '$wr_3',
                    wr_4 = '$wr_4',
                    wr_5 = '$wr_5',
                    wr_6 = '$wr_6',
                    wr_7 = '$wr_7',
                    wr_8 = '$wr_8',
                    wr_9 = '$wr_9',
                    wr_10 = '$wr_10' ";
    sql_query($sql);
1, 복사할 게시판의 wr_num 값을 가져온후 순서를 만들어야 하고
2, 복사할 게시판에 글갯수를 올려 주어야 하고
3, 인서트된 게시글 번호에서 wr_parent 값을 업데이트 시켜야 하고
4, 복사한 게시글을 새글로 등록 시킨다면 인서트 시켜야 하고
5, 첨부한 파일을 복사해야 하고
6, $insert_id = mysql_insert_id(); // ......이것도 해야 되나?ㅎㅎ
컥.. 그렇군요.. 그럼 자동으로 들어가게 하는건 안한다고 하더라도..
글을 지워야 하는데.. 어떻게 하죠? 삭제가 안되요 ㅠㅠ
그 게시판(복사된 게시판)에 있는거 다 지워도 상관은 없습니다..
현 상태에서는 게시판에서는 삭제를 못합니다. DB에서 삭제 하거나
관리자 모드에서 해당 게시판을 삭제한후 같은 이름으로 다시 생성 하세요.
제가사용중인 데이타 복사하는 방법 이므로 참고하세요.
(참고로 제가 사용중인 타계정 복사코드를 일부 수정 하였으므로 불필요한 코드도 있을 겁니다.)


// 게시판의 다음글 번호를 얻는다.
function get_next_nums2($tables2)
{
    // 가장 작은 번호를 얻어
    $sqls2 = " select min(wr_num) as min_wr_num from $tables2 ";
    $rows2 = sql_fetch($sqls2);
    // 가장 작은 번호에 1을 빼서 넘겨줌
    return (int)($rows2[min_wr_num] - 1);
}

    if ($member[mb_id])
    {
        $mb_id = $member[mb_id];
        $wr_name = $board[bo_use_name] ? $member[mb_name] : $member[mb_nick];
        $wr_password = $member[mb_password];
        $wr_email = $member[mb_email];
        $wr_homepage = $member[mb_homepage];
    }
    else
    {
        $mb_id = "";
        // 비회원의 경우 이름이 누락되는 경우가 있음
        if (!trim($wr_name))
            alert("이름은 필히 입력하셔야 합니다.");
        $wr_password = sql_password($wr_password);
    }

  $cwrite_tables ="sub4_1"//복사할 게시판
  $write_tables2 = $g4[write_prefix] . $cwrite_tables;// 게시판 테이블 전체이름
  $g4['board_tables2'] = $g4['table_prefix'] . "board";        // 게시판 설정 테이블
  $g4['board_new_tables2']  = $g4['table_prefix'] . "board_new";    // 게시판 새글 테이블
  $g4['board_file_tables2']    = $g4['table_prefix'] . "board_file";    // 게시판 첨부파일 테이블

  $wr_nums2 = get_next_nums($write_tables2); //마지막 번호

    $sql = " insert into $write_tables2
                set wr_num = '$wr_nums2',
                    wr_reply = '',
                    wr_comment = 0,
                    ca_name = '$ca_name',
                    wr_option = '$html,$secret,$mail',
                    wr_subject = '$wr_subject',
                    wr_content = '$wr_content',
                    wr_link1 = '$wr_link1',
                    wr_link2 = '$wr_link2',
                    wr_link1_hit = 0,
                    wr_link2_hit = 0,
                    wr_trackback = '$wr_trackback',
                    wr_hit = 0,
                    wr_good = 0,
                    wr_nogood = 0,
                    mb_id = '$member[mb_id]',
                    wr_password = '$wr_password',
                    wr_name = '$wr_name',
                    wr_email = '$wr_email',
                    wr_homepage = '$wr_homepage',
                    wr_datetime = '$g4[time_ymdhis]',
                    wr_last = '$g4[time_ymdhis]',
                    wr_ip = '$_SERVER[REMOTE_ADDR]',
                    wr_1 = '$wr_1',
                    wr_2 = '$wr_2',
                    wr_3 = '$wr_3',
                    wr_4 = '$wr_4',
                    wr_5 = '$wr_5',
                    wr_6 = '$wr_6',
                    wr_7 = '$wr_7',
                    wr_8 = '$wr_8',
                    wr_9 = '$wr_9',
                    wr_10 = '$wr_10' ";
    sql_query($sql);

    $wr_ids2 = mysql_insert_id();

    // 부모 아이디에 UPDATE
    sql_query(" update $write_tables2 set wr_parent = '$wr_ids2' where wr_id = '$wr_ids2' ");

    // 새글 INSERT
    //sql_query(" insert into $g4[board_new_table] ( bo_table, wr_id, wr_parent, bn_datetime ) values ( '$cwrite_tables, '$wr_id', '$wr_id', '$g4[time_ymdhis]' ) ");
    sql_query(" insert into $g4[board_new_tables2] ( bo_table, wr_id, wr_parent, bn_datetime, mb_id ) values ( '$cwrite_tables', '$wr_ids2', '$wr_ids2', '$g4[time_ymdhis]', '$member[mb_id]' ) ");

    // 게시글 1 증가
    sql_query("update $g4[board_tables2] set bo_count_write = bo_count_write + 1 where bo_table = '$cwrite_tables' ");

 $sql3 = " select * from $g4[board_file_table] where bo_table = '$bo_table' and wr_id = '$wr_id' order by bf_no ";
 $result4 = sql_query($sql3);

              $src_dirs = "$g4[path]/data/file/$bo_table"; // 원본 디렉토리
              $dst_dirs = "$g4[path]/data/file/$cwrite_tables"; // 복사본 디렉토리
              for ($ks=0; $rows3 = sql_fetch_array($result4); $ks++)
                {
                    if ($rows3[bf_file])
                    {
                        // 원본파일을 복사하고 퍼미션을 변경
                        @copy("$src_dirs/$rows3[bf_file]", "$dst_dirs/$rows3[bf_file]");
                        @chmod("$dst_dirs/$rows3[bf_file]", 0606);
               
  }
                    $sqls = " insert into $g4[board_file_tables2]
                                set bo_table = '$cwrite_tables',
                                    wr_id = '$wr_ids2',
                                    bf_no = '$rows3[bf_no]',
                                    bf_source = '$rows3[bf_source]',
                                    bf_file = '$rows3[bf_file]',
                                    bf_download = '$rows3[bf_download]',
                                    bf_content = '".addslashes($rows3[bf_content])."',
                                    bf_filesize = '$rows3[bf_filesize]',
                                    bf_width = '$rows3[bf_width]',
                                    bf_height = '$rows3[bf_height]',
                                    bf_type = '$rows3[bf_type]',
                                    bf_datetime = '$rows3[bf_datetime]' ";
                    sql_query($sqls);

}
http://sir.co.kr/bbs/board.php?bo_table=g4_qa&sca=&sfl=wr_subject%7C%7Cwr_content&stx=%BD%D6%B5%D5%C0%CC&sop=and

구현형태는 다르나 동일한 맥락에서 완성된 지니아빠님의 스킨
sir.co.kr/bbs/tb.php/g4_skin/19598
전체 66,558 |RSS
그누4 질문답변 내용 검색

회원로그인

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