특정게시판의 내용을 다른게시판으로 연결하고 싶습니다.

매출이 오르면 내리는 수수료! 지금 수수료센터에서 전자결제(PG)수수료 비교견적 신청해 보세요!
특정게시판의 내용을 다른게시판으로 연결하고 싶습니다.

QA

특정게시판의 내용을 다른게시판으로 연결하고 싶습니다.

본문

안녕하세요? 첨부이미지와 같이 구현할려고 하는데요.

A게시판의 내용중 일부(여분필드, 첨부이미지)를 신청하기 시  B게시판으로 연결하여 A게시판 일부 내용을 그대로 끌어온 후 글쓰기를 구현 하고 싶은데 

초보자인 저로서는 많이 어렵네요.. 고수님들 답변을 얻을수 있을까요?.

추가로 카테고리(분류)가 있을경우 분류도 끌어올수 있나요?1935377306_1732059849.8356.jpg

이 질문에 댓글 쓰기 :

답변 5

A게시판에서 신청하기 할때 A게시판의 게시물 번호를 넘겨서

B게시판에서 해당 게시물번호로 A게시판의 내용을 불러오면 됩니다.

소스를 일일이 설명할순 없어서..

직접 안되시면 제작의뢰 하셔야할듯 하네요.

 

게시판의 내용과 어떤 기준으로 데이터를 가져올지를 알아야 대응이 가능한 부분이라
해당 기능에 대해 직접 작업이 어렵다면 제작의뢰나 쪽지로 문의 주시면 확인후 대응이 가능합니다.

아래 내용을 보시고 응용 하셔야 합니다.


<?php
// 현재 게시판의 테이블 이름을 설정합니다.
$table_name = 'g5_write_테이블명'; // 실제 테이블 이름으로 변경하세요.
// SQL 쿼리 작성
$sql = "SELECT wr_subject, wr_file FROM $table_name WHERE wr_id = '현재게시물ID'"; // 현재 게시물 ID에 맞게 수정
$result = sql_query($sql);
// 데이터 초기화
$subject = '';
$upload_file = '';
// 결과가 있을 경우 데이터 가져오기
if ($row = sql_fetch_array($result)) {
    $subject = $row['wr_subject'];
    $upload_file = $row['wr_file']; // 업로드 파일명 가져오기
}
?>
<!-- HTML 폼 -->
<form action="작성처리.php" method="post" enctype="multipart/form-data">
    <label for="wr_subject">제목:</label>
    <input type="text" id="wr_subject" name="wr_subject" value="<?php echo htmlspecialchars($subject); ?>" required>
    <label for="upload_file">업로드 파일:</label>
    <input type="file" id="upload_file" name="upload_file" accept="image/*">
    <?php if ($upload_file): ?>
        <p>현재 업로드된 파일: <img src="<?php echo htmlspecialchars($upload_file); ?>" alt="업로드된 이미지" style="max-width: 200px;"></p>
    <?php endif; ?>
    <input type="submit" value="작성하기">
</form>

제가봤을때 코드를 알려드려도 직접 적용하기엔 무리가 있어 보입니다.

의뢰로 가시면 2~3만원 정도면 해결될 문제이니 의뢰로 가보세요..

하루종일 고민할바에 이정도 금액이면 괜찮을것 같습니다.

꽤 복잡한 로직으로 보입니다.

1. 먼저 A게시판(원본)의 view.skin.php 파일에 신청하기 버튼을 추가합니다:


<?php if ($view['wr_id']) { ?>
<a href="<?php echo G5_BBS_URL ?>/write.php?bo_table=게시판B&apply_id=<?php echo $view['wr_id'] ?>&apply_board=<?php echo $bo_table ?>" class="btn_b01 btn">신청하기</a>
<?php } ?>

2. B게시판(신청)의 write.skin.php 파일 상단에 다음 코드를 추가합니다:


<?php
// A게시판 데이터 가져오기
$apply = array();
$apply_image = '';
if(isset($_GET['apply_id']) && isset($_GET['apply_board'])) {
  $apply_id = (int)$_GET['apply_id'];
  $apply_board = preg_replace('/[^a-z0-9_]/i', '', $_GET['apply_board']);
  
  if($apply_id && $apply_board) {
    $write_table = $g5['write_prefix'] . $apply_board;
    $sql = " select * from {$write_table} where wr_id = '{$apply_id}' ";
    $apply = sql_fetch($sql);
    // A게시판의 첨부파일 정보 가져오기 - 첫번째 이미지만
    $apply_file = get_file($apply_board, $apply_id);
    if($apply_file['count']) {
      $thumb = get_list_thumbnail($apply_board, $apply_id, 300, 200);
      if($thumb) {
        $apply_image = '<div class="apply_img_wrap">'.PHP_EOL;
        $apply_image .= '<img src="'.$thumb['src'].'" alt="신청 게시물 이미지">'.PHP_EOL;
        $apply_image .= '<p class="apply_img_title">'.$apply_file[0]['source'].'</p>'.PHP_EOL;
        $apply_image .= '</div>'.PHP_EOL;
      }
    }
  }
}
?>

3. B게시판의 write.skin.php 파일의 form 태그 내부에 추가할 코드:


<!-- 원본글 정보 저장용 hidden 필드 -->
<input type="hidden" name="apply_id" value="<?php echo $apply_id ?>">
<input type="hidden" name="apply_board" value="<?php echo $apply_board ?>">
<!-- 원본글의 여분필드 표시 -->
<?php if($apply['wr_1']) { ?>
<div class="apply_field">
  <label>신청내용</label>
  <div class="apply_value"><?php echo $apply['wr_1'] ?></div>
</div>
<?php } ?>
<!-- 원본글의 첨부이미지 표시 -->
<?php if($apply_image) { ?>
<div class="apply_files">
  <h3>신청 게시물 이미지</h3>
  <?php echo $apply_image ?>
</div>
<?php } ?>
<!-- 이미지 스타일 -->
<style>
/* 신청내용 스타일 */
.apply_field {margin:15px 0;padding:15px;background:#f8f8f8;border-radius:5px}
.apply_field label {display:block;margin-bottom:5px;color:#666}
.apply_value {font-size:1.1em;color:#000}
/* 이미지 표시 스타일 */
.apply_files {margin:20px 0;padding:20px;border:1px solid #ddd;border-radius:5px}
.apply_files h3 {margin-bottom:15px;font-size:1.1em;color:#666}
.apply_img_wrap {text-align:center}
.apply_img_wrap img {max-width:100%;height:auto}
.apply_img_title {margin-top:5px;font-size:0.9em;color:#666}
</style>

4. B게시판의 write_update.skin.php 파일 생성하여 A게시판의 이미지를 복사하는 코드 추가:


<?php
if (!defined('_GNUBOARD_')) exit;
// 원본 게시물 정보가 있는 경우
if(isset($_POST['apply_id']) && isset($_POST['apply_board'])) {
  $apply_id = (int)$_POST['apply_id']; 
  $apply_board = preg_replace('/[^a-z0-9_]/i', '', $_POST['apply_board']);
  if($apply_id && $apply_board) {
    // 원본 게시물의 첨부파일 정보 가져오기
    $apply_file = get_file($apply_board, $apply_id);
    
    if($apply_file['count']) {
      // 첫번째 이미지 파일만 처리
      $file = $apply_file[0];
      
      if($file['bf_file'] && preg_match("/\.(jpg|jpeg|gif|png)$/i", $file['bf_file'])) {
        // 파일 복사
        $src = G5_DATA_PATH.'/file/'.$apply_board.'/'.$file['bf_file'];
        $dst = G5_DATA_PATH.'/file/'.$bo_table.'/'.$file['bf_file'];
        
        if(($src, $dst)) {
          // 파일정보 저장 - bf_no는 0으로 고정(첫번째 파일)
          $sql = " insert into {$g5['board_file_table']}
                    set bo_table = '{$bo_table}',
                        wr_id = '{$wr_id}',
                        bf_no = 0,
                        bf_source = '{$file['bf_source']}',
                        bf_file = '{$file['bf_file']}',
                        bf_download = 0,
                        bf_content = '{$file['bf_content']}',
                        bf_filesize = '{$file['bf_filesize']}',
                        bf_width = '{$file['bf_width']}',
                        bf_height = '{$file['bf_height']}',
                        bf_type = '{$file['bf_type']}',
                        bf_datetime = '".G5_TIME_YMDHIS."' ";
          sql_query($sql);
          
          // 원글의 파일개수 업데이트
          sql_query(" update {$write_table} set wr_file = 1 where wr_id = '{$wr_id}' ");
        }
      }
    }
  }
}
?>
답변을 작성하시기 전에 로그인 해주세요.
전체 0
QA 내용 검색

회원로그인

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