그누보드

그누보드 - 글목록에서 간단하게 공지글 등록/해제

마르스컴퍼니 2022. 10. 25. 17:24

그누보드 게시판 글목록에서

간단하게 클릭 한번으로 원하는 게시글을 공지글로 등록 및 해제하는 코드입니다.

 

공지글이 아닌 글은 '글번호'를 클릭하면 공지글로 지정됩니다.

공지글은 [공지]를 클릭하면 공지글에서 해제됩니다.

 

편의상 그누보드 'basic' 게시판 스킨 기준 소스입니다.

(다른 스킨/소스인 경우 적당히 응용하여 적용하면 됩니다.)

 

1. [스킨 디렉토리]/list.skin.php

1) 글번호 td 에 이벤트 처리를 위한 class 설정 't_notice'

<td class="td_num2">
<?php
if ($list[$i]['is_notice'])

<td class="td_num2 t_notice">
<?php
if ($list[$i]['is_notice'])

 

2) 클릭 이벤트 처리용 자바스크립트 함수 추가 

<?php if ($is_checkbox) { ?>
<script>

아래에 추가

$(function() {
	$('.t_notice').css('cursor', 'pointer');

	$('.t_notice').on('click', function() {		
		let _id = $(this).parent().find("input[name^=chk_wr_id]").val();

		$.ajax({
			type: "POST",
			url: "<?php echo $board_skin_url ?>/ajax.notice.php",
			data: {bo_table : g5_bo_table, wr_id : _id  },
			success: function(data) {
				if (data == "1")
					location.href = g5_bbs_url + "/board.php?bo_table=" + g5_bo_table;
			}
		});
	});
});

 

2. [스킨 디렉토리] 에 ajax.notice.php 파일 생성 및 다음 코드 추가 ([스킨 디렉토리]/ajax.notice.php)

(그누보드 루트의 common.php 경로가 맞는지 확인 필요)

<?php
include_once('../../../common.php');

if ($is_admin && $bo_table && $wr_id) {
	$arr_notice = explode(',', trim($board['bo_notice']));
	if (in_array($wr_id, $arr_notice))
		$notice = false;
	else
		$notice = true;
	$bo_notice = board_notice($board['bo_notice'], $wr_id, $notice);
	$sql = " update {$g5['board_table']} set bo_notice = '{$bo_notice}' where bo_table = '{$bo_table}' ";
	$result = sql_query($sql);
	echo $result;
}

 

반응형