그누보드 게시판 댓글 작성 및 수정 페이지에 여분필드 적용하는 방법
페이지 정보

본문
그누보드 basic 스킨 기준으로 댓글 작성 및 수정 페이지에 여분필드를 추가하고, 수정 시 기존 값이 정상적으로 불러와지도록 구현하는 방법을 안내합니다.
그누보드 댓글 작성 및 수정 페이지 여분필드 적용 방법
그누보드 basic 스킨 기준, 댓글 작성 및 수정 페이지에 여분필드를 적용하고 수정 시 기존 값을 불러오려면 view_comment.skin.php 파일을 수정해야 합니다. 작업 전 원본 파일을 반드시 백업하십시오. 이는 수정 과정에서 발생할 수 있는 오류로부터 기존 환경을 보호하기 위한 권장 절차입니다.
1. 댓글 출력 부분에 여분필드 추가
댓글 목록이 출력되는 적당한 위치에 여분필드 출력 코드를 추가합니다.
여분필드1: <?php echo $list[$i]['wr_1'];?>
여분필드2: <?php echo $list[$i]['wr_2'];?>
여분필드3: <?php echo $list[$i]['wr_3'];?>
2. 히든 인풋 태그(값 바인딩) 추가
스킨 파일 내 기존 히든 필드가 있는 위치를 찾아 아래와 같이 여분필드 값을 전달하는 히든 인풋 태그를 추가합니다.
<input type="hidden" value="<?php echo $list[$i]['wr_1']?>" id="save_comment_wr1_<?php echo $comment_id?>">
<input type="hidden" value="<?php echo $list[$i]['wr_2']?>" id="save_comment_wr2_<?php echo $comment_id?>">
<input type="hidden" value="<?php echo $list[$i]['wr_3']?>" id="save_comment_wr3_<?php echo $comment_id?>">
3. 댓글 작성/수정 폼에 입력 요소 추가
댓글 입력 폼 영역의 적당한 위치에 여분필드를 입력하거나 선택할 수 있는 폼 요소를 추가합니다.
<tr>
<th scope="row">여분필드1</th>
<td><input type="text" name="wr_1" id="wr_1" value="<?php echo $wr_1;?>" class="frm_input"></td>
</tr>
<tr>
<th scope="row">여분필드2</th>
<td><input type="text" name="wr_2" id="wr_2" value="<?php echo $wr_2;?>" class="frm_input"></td>
</tr>
<tr>
<th scope="row">여분필드3</th>
<td>
<select name="wr_3" id="wr_3">
<option value="">선택하세요.</option>
<option value="남자" <?php echo ($wr_3 == "남자")? "selected": "";?>>남자</option>
<option value="여자" <?php echo ($wr_3 == "여자")? "selected": "";?>>여자</option>
</select>
</td>
</tr>
4. 하단 수정 스크립트(cu)에 값 복원 로직 추가
파일 하단의 자바스크립트 영역 중 수정 모드(work == 'cu') 처리 부분에 여분필드 값을 폼으로 전달하는 코드를 추가합니다.
if (work == 'cu') {
document.getElementById('wr_1').value = document.getElementById('save_comment_wr1_' + comment_id).value;
document.getElementById('wr_2').value = document.getElementById('save_comment_wr2_' + comment_id).value;
document.getElementById('wr_3').value = document.getElementById('save_comment_wr3_' + comment_id).value;
document.getElementById('wr_content').value = document.getElementById('save_comment_' + comment_id).value;
}
5. 적용 후 확인 및 주의사항
- 동작 확인: 게시판에서 댓글을 작성할 때 여분필드 입력란이 정상적으로 노출되는지, 그리고 기존 댓글을 수정(cu)할 때 입력했던 여분필드 값이 폼에 올바르게 불러와지는지 확인합니다.
- 백엔드 및 DB 처리: 댓글 테이블에 해당 여분필드(
wr_1,wr_2,wr_3등) 컬럼이 실제로 존재해야 하며, 입력된 값이 DB에 정상적으로 저장되도록 처리하려면 사용하는 스킨 경로 안에write_comment_update.skin.php파일을 생성하여 백엔드 데이터 저장 로직을 함께 구성해야 할 수 있습니다. - 복구: 수정 후 오류가 발생하거나 원하지 않는 동작이 나타난다면 백업해 둔 원본 파일을 업로드하여 원래 상태로 복구합니다.
댓글 작성 시 여분필드 값이 비밀글로 작성된 경우, 일반 사용자에게 내용이 노출되는 것을 방지하려면 view_comment.skin.php 파일 내에서 권한 확인 로직을 추가해야 합니다.
권한 제어 처리 방법
댓글 스킨 파일의 반복문(for 또는 foreach) 내부에서 현재 댓글의 비밀글 여부와 현재 사용자의 권한을 비교하는 조건을 설정합니다. 여분필드 출력 코드를 이 조건문으로 감싸면, 작성자나 관리자가 아닌 경우 여분필드 내용이 출력되지 않도록 제어할 수 있습니다.
- 권한 확인 변수 설정: 댓글 스킨 파일 내 반복문 안에서 비밀글 여부 및 권한 확인을 위한 변수를 정의합니다.
- 조건문 적용: 여분필드를 출력하는 HTML 코드 영역을
if조건문으로 감싸, 권한이 있는 경우에만 출력되도록 합니다.
주의사항
- 해당 작업은
view_comment.skin.php파일을 수정해야 하므로, 작업 전 반드시 원본 파일을 백업하시기 바랍니다. - 권한 확인 로직은 게시판 스킨의 구조와 비밀글 처리 방식에 따라 다를 수 있으므로, 현재 사용 중인 스킨의
view_comment.skin.php파일 내 기존 비밀글 출력 제어 코드를 참고하여 적용하십시오.
그누보드 댓글 작성 및 수정 페이지 여분필드 적용 방법
그누보드 basic 스킨 기준, 댓글 작성 및 수정 페이지에 여분필드를 적용하려면 view_comment.skin.php 파일을 수정해야 합니다. 글쓰기 페이지와 달리 댓글 영역에는 여분필드가 기본 반영되어 있지 않으므로 출력, 입력폼, 히든 필드 및 값 복원 스크립트를 수동으로 추가해야 합니다.
1. view_comment.skin.php 수정 위치 및 코드 추가
댓글 출력 부분적당한 위치에 여분필드 출력 코드를 추가합니다.
여분필드1: <?php echo $list[$i]['wr_1'];?>
여분필드2: <?php echo $list[$i]['wr_2'];?>
여분필드3: <?php echo $list[$i]['wr_3'];?>
히든 인풋 태그 추가
비밀글 옵션 코드 주변에서 아래 내용을 찾아 히든 필드와 내용을 바인딩하는 코드를 추가합니다.
<input type="hidden" value="<?php echo strstr($list[$i]['wr_option'],"secret")?>" id="secret_comment_<?php echo $comment_id?>">
<input type="hidden" value="<?php echo $list[$i]['wr_1']?>" id="save_comment_wr1_<?php echo $comment_id?>">
<input type="hidden" value="<?php echo $list[$i]['wr_2']?>" id="save_comment_wr2_<?php echo $comment_id?>">
<input type="hidden" value="<?php echo $list[$i]['wr_3']?>" id="save_comment_wr3_<?php echo $comment_id?>">
<textarea id="save_comment_<?php echo $comment_id?>" style="display:none"><?php echo get_text($list[$i]['content1'], 0)?></textarea>
댓글 작성 및 입력 폼 추가
댓글 작성 영역에 여분필드 입력 요소를 배치합니다.
<tr>
<th scope="row">여분필드1</th>
<td><input type="text" name="wr_1" id="wr_1" value="<?php echo $wr_1;?>" class="frm_input"></td>
</tr>
<tr>
<th scope="row">여분필드2</th>
<td><input type="text" name="wr_2" id="wr_2" value="<?php echo $wr_2;?>" class="frm_input"></td>
</tr>
<tr>
<th scope="row">여분필드3</th>
<td>
<select name="wr_3" id="wr_3">
<option value="">선택하세요.</option>
<option value="남자" <?php echo ($wr_3 == "남자")? "selected": "";?>>남자</option>
<option value="여자" <?php echo ($wr_3 == "여자")? "selected": "";?>>여자</option>
</select>
</td>
</tr>
수정 시 값 복원 스크립트 추가
하단 스크립트 영역에서 work == 'cu' 조건 내부에 여분필드 값을 전달하는 코드를 추가합니다.
if (work == 'cu') {
document.getElementById('wr_1').value = document.getElementById('save_comment_wr1_' + comment_id).value;
document.getElementById('wr_2').value = document.getElementById('save_comment_wr2_' + comment_id).value;
document.getElementById('wr_3').value = document.getElementById('save_comment_wr3_' + comment_id).value;
document.getElementById('wr_content').value = document.getElementById('save_comment_' + comment_id).value;
}
2. 10개 이상 여분필드 사용 및 백엔드 저장 처리 (writecommentupdate.skin.php)
10개 이상의 여분필드를 추가하거나 DB에 별도로 저장하려면, 사용할 게시판 스킨 폴더 안에 write_comment_update.skin.php 파일을 생성하여 백엔드 쿼리를 구성해야 합니다.
<?php
if (!defined("_GNUBOARD_")) exit; // 개별 페이지 접근 불가
$sql = " update $write_table set wr_subject = '$wr_subject', wr_content = '$wr_content', wr_12 = '$wr_12', wr_13 = '$wr_13', wr_14 = '$wr_14', wr_15 = '$wr_15', wr_16 = '$wr_16', wr_17 = '$wr_17', wr_18 = '$wr_18', wr_19 = '$wr_19', wr_20 = '$wr_20', wr_21 = '$wr_21', wr_22 = '$wr_22', wr_23 = '$wr_23', wr_24 = '$wr_24', wr_25 = '$wr_25', wr_26 = '$wr_26', wr_27 = '$wr_27', wr_28 = '$wr_28', wr_29 = '$wr_29', wr_30 = '$wr_30' where wr_id = '$comment_id' ";
sql_query($sql);
?>
3. 적용 후 확인 및 주의사항
- 수정 전 대상 파일을 반드시 백업합니다.
- 댓글 테이블에 해당 여분필드 컬럼이 실제로 존재해야 하며, DB 저장 처리를 위해 추가적인 SQL 작업이나
write_comment_update.skin.php같은 백엔드 처리가 필요할 수 있습니다. - 코드를 적용한 후 댓글 작성 시 여분필드 입력란이 노출되는지, 수정 시 기존에 입력한 값이 폼에 정상적으로 불러와지는지 확인합니다.
상황별 판단 및 행동 지침
| 내 상황 | 우선할 판단 | 다음 행동 |
|---|---|---|
| 댓글 작성 및 수정 페이지에 여분필드 항목이 보이지 않음 | view_comment.skin.php 파일 검토 | 원본 파일을 백업한 뒤, 여분필드 출력 코드, 히든 필드 및 입력폼 요소를 스킨 파일에 직접 추가함 |
| 댓글을 수정(cu)할 때 기존에 입력한 여분필드 값이 폼에 나타나지 않음 | 자바스크립트 값 복원 로직 추가 | 하단 스크립트 영역의 work == 'cu' 조건문에 여분필드 값을 전달하는 코드를 추가함 |
| 10개 이상의 여분필드를 사용하거나 DB에 값이 저장되지 않음 | 백엔드 쿼리 처리 파일 구성 | 게시판 스킨 폴더 안에 write_comment_update.skin.php 파일을 생성하여 여분필드 저장 SQL 쿼리를 작성함 |
실전 FAQ
Q. 댓글에 추가한 여분필드가 비밀글일 때 내용이 그대로 노출되는 문제를 해결하려면 어떻게 하나요?
- 예외 및 대안: 댓글 스킨 파일(
view_comment.skin.php) 내에서 여분필드를 출력할 때 비밀글 여부나 작성자 권한을 확인하는 조건문 로직이 누락되어 발생합니다. 반복문 내부에서 권한 확인 변수를 설정한 뒤, 여분필드 출력 영역을 해당 조건문으로 감싸주면 작성자와 관리자 외의 사용자에게 노출되는 것을 방지할 수 있습니다.
Q. 댓글 수정 시 여분필드 값이 유지되지 않고 비어 있는 상태로 나오는 경우 어떻게 해야 하나요?
- 막히는 지점: 입력 폼에 값(
value)을 출력하는 코드를 넣었더라도 자바스크립트 수정 모드에서 기존 값을 폼으로 불러오는 바인딩 처리가 누락되면 값이 유지되지 않습니다.view_comment.skin.php하단 스크립트의work == 'cu'영역에 각 여분필드 아이디와 히든 필드 값을 연결하는 자바스크립트 대입 코드가 포함되어 있는지 확인해야 합니다.
함께 보면 좋은 글
- 그누보드 게시판 오래된 글 댓글 작성 제한 방법
- 그누보드 댓글 작성 시 대댓글 답변에는 포인트 지급 제외하는 방법
- 그누보드 게시판 및 댓글 작성 시 '올바른 방법으로 이용해 주십시오' 에러 해결 방법
참고자료
기타 참고자료
- 이전글그누보드 게시판 view 페이지에 분류 카테고리 탭 메뉴 출력 방법 26.10.03
- 다음글그누보드 기본 테마 레이아웃 전체 가로 폭 변경 방법 26.10.03
댓글목록
등록된 댓글이 없습니다.