타인 글 수정,복사 후 저장하려면
본문
가 게시판
나 게시판
회원 A
회원 B
가 게시판에서 A가 작성한 글을
B가 보다가 글보기에 추가되어 있는 응용 버튼을 클릭하면
B가 로그인 된 상태에서 A의 글을 수정모드로 접근해서
B가 내용을 수정하고 마련된 응용 저장 버튼을 클릭하면
나 게시판에 저장되고
그 글은 나 게시판에서 A는 수정을 못하고 B만 수정을 할 수 있도록 하려면
복잡할까요.?
클로드 ai 한테 물어보면서 하는데 잘 안되네요.
나리야 빌더에서 구현하려고 하는데
작업 방향과 팁 좀 부탁드립니다.
답변 3
클로드에서 프로젝트를 만들고,
'Custom Instructions' (맞춤형 지침)에..
"그누보드5 전문가적 관점에서 답변" 식으로 설정해 두면, 도움이 됩니다.
<?php
// 가 게시판의 view.skin.php 에서
// 게시물 버튼 영역에 응용하기 버튼 추가
if ($is_member && $write['mb_id'] != $member['mb_id']) { ?>
<button type="button" onclick="copyToBoard('<?php echo $write['wr_id']; ?>')">응용하기</button>
<?php } ?>
<script>
function copyToBoard(wr_id) {
if(!confirm('이 글을 응용하여 나 게시판에 작성하시겠습니까?')) return;
$.ajax({
url: './board.copy.php',
type: 'POST',
data: {
bo_table_from: '<?php echo $bo_table ?>',
bo_table_to: 'board_b', // 나 게시판 테이블명
wr_id: wr_id,
ori_mb_id: '<?php echo $write["mb_id"] ?>'
},
success: function(data) {
if(data.indexOf('|') !== -1) {
var parts = data.split('|');
if(parts[0] === 'OK') {
location.href = g5_bbs_url + "/write.php?bo_table=board_b&w=u&wr_id=" + parts[1];
}
} else {
alert('처리 중 오류가 발생했습니다.');
}
}
});
}
</script>
<?php
// board.copy.php 파일 생성
include_once('./_common.php');
if (!$is_member) die('member required');
$bo_table_from = $_POST['bo_table_from'];
$bo_table_to = $_POST['bo_table_to'];
$wr_id = $_POST['wr_id'];
// 원본 글 가져오기
$write = sql_fetch(" select * from {$write_table} where wr_id = '{$wr_id}' ");
// 새 글 등록 (나 게시판에)
$sql = " insert into {$g5['write_prefix']}{$bo_table_to}
set wr_num = '{$wr_num}',
wr_reply = '',
wr_subject = '".addslashes($write['wr_subject'])."',
wr_content = '".addslashes($write['wr_content'])."',
mb_id = '{$member['mb_id']}',
wr_password = '',
wr_datetime = '".G5_TIME_YMDHIS."',
wr_last = '".G5_TIME_YMDHIS."',
wr_parent = '',
wr_1 = '{$write['mb_id']}', // 원작자 ID
wr_2 = '{$bo_table_from}', // 원본 게시판
wr_3 = '{$wr_id}' // 원본 글번호
";
sql_query($sql);
$new_wr_id = sql_insert_id();
echo "OK|{$new_wr_id}";
<?php
// 나 게시판의 write.skin.php 상단에 추가
if($w == 'u' && $write['wr_1']) { // 응용글인 경우
if($write['wr_1'] == $member['mb_id']) {
alert('원작자는 응용글을 수정할 수 없습니다.');
}
if($write['mb_id'] != $member['mb_id']) {
alert('응용글 작성자만 수정할 수 있습니다.');
}
// 원본글 정보 표시 (선택사항)
$origin_href = get_pretty_url($write['wr_2'], $write['wr_3']);
echo '<div class="origin-info">* 원본글: <a href="'.$origin_href.'" target="_blank">보기</a></div>';
}
?>
수정을 어느 정도 하실진 모르겠는데, SEO에 안 좋을 것 같아요.
1. B가 보다가 글보기에 추가되어 있는 응용 버튼을 클릭하면 ==>버튼 링크를 다음처럼 만드세요
<a href="write.php?bo_table=나게시판&wr_id_a=<?pho echo $wr_id;?>">내글로등록</a>
2. write.skin.php상단에 넣으세요
$write_table_a = $g5['write_prefix'].'가게시판';
if(!empty($wr_id_a)){
$row=sql_fetch("select * from $write_table_a where wr_id=$wr_id_a ");
$subject = $row['wr_subject'];
$is_dhtml_editor = $board['bo_use_dhtml_editor']? true : false;
$content = get_text($row['wr_content'], 0);
$editor_html = editor_html('wr_content', $content, $is_dhtml_editor);
}
이렇게하면 가게시판 내용을 수정해서 등록할 수 있게 됩니다
B가 나게시판에 등록했으니 A는 당연히 이 글을 수정할 수 없습니다