게시판 글쓰기,수정,삭제시 특정게시판도 똑같이 적용되게 하려면 어떻게 해야할까요?

게시판 글쓰기,수정,삭제시 특정게시판도 똑같이 적용되게 하려면 어떻게 해야할까요?

QA

게시판 글쓰기,수정,삭제시 특정게시판도 똑같이 적용되게 하려면 어떻게 해야할까요?

본문

안녕하세요 그누보드 초보입니다.

 

항상 QA에서 많은 가르침을 받고있어 감사한 마음뿐입니다.

 

그누보드는 최신버전 그누보드를 다운로드받아 수정중에 있고, basic 테마를 사용중입니다.

 

궁금한게, a라는 게시판에서 글쓰기,글수정,글삭제,파일업로드 되었을때 b게시판에도 같은글이 올라가고, 같이 수정되고, 같이 삭제되고 파일업로드또한 같이 되도록 작업을 하고있습니다.

 

/theme/skin/board/a 라는  스킨폴더에 write_update.skin.php 를 만든후,

https://sir.kr/qa/467590 

 

이 글을 보고 새글등록은 되게 했으나, 수정, 삭제 , 파일업로드는 추가 코드를 만들어봤는데 작동이 되지않아서요..

 

잘못된 코드면 좀 알려주시면 감사하겠습니다.

 

write_update.skin.php 파일 코드입니다.


<?php
if (!defined('_GNUBOARD_')) exit; // 개별 페이지 접근 불가
if ($w =='')
{
$table_copy = "notice"; // 복사 게시판id
$write_table_copy = $g5['write_prefix'] . $table_copy;
$wr_num_copy = get_next_num($write_table_copy);
$sql_copy = " insert into $write_table_copy
set wr_num = '$wr_num_copy',
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_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 = '".G5_TIME_YMDHIS."',
wr_last = '".G5_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_copy);
$wr_id_copy = sql_insert_id();
// 부모 아이디에 UPDATE
sql_query(" update $write_table_copy set wr_parent = '$wr_id_copy' where wr_id = '$wr_id_copy' ");
// 새글 INSERT
sql_query(" insert into {$g5['board_new_table']} ( bo_table, wr_id, wr_parent, bn_datetime, mb_id ) values ( '{$table_copy}', '{$wr_id_copy}', '{$wr_id_copy}', '".G5_TIME_YMDHIS."', '{$member['mb_id']}' ) ");
// 게시글 1 증가
sql_query("update {$g5['board_table']} set bo_count_write = bo_count_write + 1 where bo_table = '{$table_copy}'");
// 복사게시판 최신글 캐시갱신
delete_cache_latest($table_copy);
} elseif ($w == 'u') { // 글 수정 시
// 복사 게시판에서 같은 wr_num을 가진 게시글 찾기
$sql = "SELECT wr_id FROM {$write_table_copy} WHERE wr_num = (SELECT wr_num FROM {$write_table} WHERE wr_id = '{$wr_id}')";
$row = sql_fetch($sql);
$wr_id_copy = $row['wr_id'];
$sql = "UPDATE {$write_table_copy}
SET 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_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}'
WHERE wr_id = '{$wr_id_copy}'";
sql_query($sql);
} elseif ($w == 'd') { // 글 삭제 시
// 복사 게시판에서 같은 wr_num을 가진 게시글 찾기
$sql = "SELECT wr_id FROM {$write_table_copy} WHERE wr_num = (SELECT wr_num FROM {$write_table} WHERE wr_id = '{$wr_id}')";
$row = sql_fetch($sql);
$wr_id_copy = $row['wr_id'];
// 게시글 삭제
$sql = "DELETE FROM {$write_table_copy} WHERE wr_id = '{$wr_id_copy}'";
sql_query($sql);
// 코멘트 삭제
$sql = "DELETE FROM {$g5['comment_table']} WHERE bo_table = '{$table_copy}' AND wr_id = '{$wr_id_copy}'";
sql_query($sql);
// 새글 삭제
$sql = "DELETE FROM {$g5['board_new_table']} WHERE bo_table = '{$table_copy}' AND wr_id = '{$wr_id_copy}'";
sql_query($sql);
// 게시글 수 감소
$sql = "UPDATE {$g5['board_table']} SET bo_count_write = bo_count_write - 1 WHERE bo_table = '{$table_copy}'";
sql_query($sql);
}
?>

이 질문에 댓글 쓰기 :

답변 2

되긴 하겠죠...보통 바라보는 bo_table의 명을 가지고 DB처리 까지 하는거니까..
근데 굳이...뭐 이유가 있으시겠지요...
여튼 skin 을 하나 복사 하셔서 저용도로 사용되는 1개의 게시판으로만 사용하십시요.
그리고 해당 list.skin 에서 해당 bo_table 을 특정 게시판(같이 사용할) 명으로 지정해버리십시요.

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

회원로그인

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