로그인
회원가입
빌런들
회시 발런
게임 빌런
일상생활 속 빌런
메신저 빌런
학교 빌런
중고거래 빌런
연예&셀럽
배우
가수
방송인
인플루언서
미디어허브
미디어
플레이어
알림마당
IT/전자기기
대한민국 정책브리핑
핫딜
|
|
|
고객센터
공지사항
개선/제안
질문/답변
사이트 활용팁
자유게시판
갤러리
동영상
마켓
노트북/데스크
모니터/복합기
PC부품
부품별 A/S 가이드
게임별 추천 사양
추천 컴퓨터 견적
노트북 견적상담
PC 견적상담
다운로드
문서 양식 다운로드
웹솔루션 스토어
자영업자 마케팅
자동화 프로그램
유틸리티 박스
운영체제/PC진단/벤치마크
원하는 소프트웨어 제안
새글
최근 30일 이내 등록된 새글 이에요.
전체
글
댓글
설치, 기본/빌더 설정, 페이지 구성 (레이아웃, 헤더, 푸터, 서브, 문서 페이지), 메뉴설정, 게시판 생성, 사이트 수집, 사이트 등록
[댓글]
현재 댓글 생성 서비스를 이용할 수 없습니다.
관리자 2025-05-16
개선/제안
사이트 등록 - 네이버 서치어드바이저, 구글 서치콘솔
[댓글]
댓글 정렬
관리자 2025-06-06
개선/제안
사이트 등록 - 네이버 서치어드바이저, 구글 서치콘솔
[댓글]
댓글 고정 기능
관리자 2025-06-06
개선/제안
사이트 등록 - 네이버 서치어드바이저, 구글 서치콘솔
[댓글]
이번 약한영웅 첫 4화까지 정말 매력적으로 다가왔지만 남주 연기에서 아쉬움이 커서 다음 편에 대한 기대감이 더욱 커지는 것 같아요 이 드라마는 한국 드라마 중에서도 시청자에게 기분 좋게 다가오는 감정이 느껴져서 부담 없이 즐길 수 있는 신선한 경험을 제공하네요 이번 약한영웅 첫 4화까지 정말 매력적으로 다가왔지만 남주 연기에서 아쉬움이 커서 다음 편에 대한 기대감이 더욱 커지는 것 같아요 이 드라마는 한국 드라마 중에서도 시청자에게 기분 좋게 다가오는 감정이 느껴져서 부담 없이 즐길 수 있는 신선한 경험을 제공하네요 이번 약한영웅 첫 4화까지 정말 매력적으로 다가왔지만 남주 연기에서 아쉬움이 커서 다음 편에 대한 기대감이 더욱 커지는 것 같아요 이 드라마는 한국 드라마 중에서도 시청자에게 기분 좋게 다가오는 감정이 느껴져서 부담 없이 즐길 수 있는 신선한 경험을 제공하네요
관리자 2025-06-06
개선/제안
댓글 추천/비추천
[댓글]
현재 댓글 생성 서비스를 이용할 수 없습니다.
관리자 2025-06-06
사이트 활용팁
댓글 추천/비추천
01. 새로운 파일 ajax.comment_good_nogood.php 생성 그누보드 bbs 디렉토리 안에 ajax.comment_good_nogood.php 파일을 생성하고 아래 내용을 넣어주세요. 이 파일은 댓글 추천/비추천 요청을 처리하고 데이터베이스를 업데이트하는 역할을 합니다. <?php include_once('./_common.php'); if (!defined('_GNUBOARD_')) exit; // 개별 페이지 접근 불가 $comment_id = isset($_POST['comment_id']) ? (int)$_POST['comment_id'] : 0; $action = isset($_POST['action']) ? clean_xss_tags($_POST['action']) : ''; $bo_table = isset($_POST['bo_table']) ? clean_xss_tags($_POST['bo_table']) : ''; $wr_id = isset($_POST['wr_id']) ? (int)$_POST['wr_id'] : 0; // 게시글 ID if (!$comment_id || !$action || !$bo_table || !$wr_id) { die(json_encode(['error' => '잘못된 요청입니다.'])); } // 게시판 설정 정보 가져오기 (권한 체크에 필요) $board = get_board_info($bo_table); if (!$board) { die(json_encode(['error' => '게시판 정보가 없습니다.'])); } // 본문 추천/비추천 권한과 동일하게 적용 // bo_use_good_nogood은 보통 비회원도 추천/비추천이 가능한지 여부를 설정하는 변수입니다. if ($board['bo_use_good_nogood'] && !$member['mb_id']) { // 게시판 설정에서 비회원 추천/비추천을 허용하지 않으면 (즉, 회원만 가능하면) die(json_encode(['error' => '회원만 추천/비추천이 가능합니다.'])); } // IP 중복 체크 (게시글 추천/비추천과 동일하게 적용) // 이 부분은 게시판 설정의 'IP당 추천/비추천수'에 따라 다르게 동작할 수 있습니다. // 현재는 1회만 가능하도록 세션에 저장합니다. $ip = $_SERVER['REMOTE_ADDR']; $ss_name = 'ss_comment_'.$action.'_'.$comment_id; if (get_session($ss_name) == $ip) { die(json_encode(['error' => '이미 ' . ($action == 'good' ? '추천' : '비추천') . '하셨습니다.'])); } // 댓글 정보 가져오기 (cmt_good, cmt_nogood 칼럼 사용) $sql_comment = " SELECT cmt_good, cmt_nogood FROM {$g5['write_prefix']}{$bo_table} WHERE wr_id = '{$comment_id}' "; $comment_row = sql_fetch($sql_comment); if (!$comment_row) { die(json_encode(['error' => '댓글을 찾을 수 없습니다.'])); } $update_field = ''; if ($action === 'good') { $update_field = 'cmt_good'; $current_count = $comment_row['cmt_good']; } elseif ($action === 'nogood') { $update_field = 'cmt_nogood'; $current_count = $comment_row['cmt_nogood']; } else { die(json_encode(['error' => '유효하지 않은 액션입니다.'])); } // 데이터 업데이트 (cmt_good, cmt_nogood 칼럼 사용) $sql_update = " UPDATE {$g5['write_prefix']}{$bo_table} SET {$update_field} = {$update_field} + 1 WHERE wr_id = '{$comment_id}' "; sql_query($sql_update); // 세션에 IP 저장 (중복 추천/비추천 방지) set_session($ss_name, $ip); // 업데이트된 값 다시 가져오기 $new_comment_row = sql_fetch(" SELECT cmt_good, cmt_nogood FROM {$g5['write_prefix']}{$bo_table} WHERE wr_id = '{$comment_id}' "); echo json_encode([ 'success' => true, 'cmt_good_count' => $new_comment_row['cmt_good'], // 변경된 칼럼명에 맞게 'cmt_nogood_count' => $new_comment_row['cmt_nogood'] // 변경된 칼럼명에 맞게 ]); ?> 02. _common.php 파일 확인 (필요시 추가) _common.php 파일에 clean_xss_tags 함수가 포함되어 있는지 확인하세요. 일반적으로 그누보드에는 이 함수가 있지만, 혹시 없다면 아래 코드를 추가해야 합니다. // _common.php 또는 적절한 유틸리티 파일에 추가 if (!function_exists('clean_xss_tags')) { function clean_xss_tags($str) { $str = preg_replace('#</*(?:applet|b(?:ase|gsound)|xss:base|xss:bgsound|b(?:link|ody)|embed|frame(?:set)?|i(?:frame|layer)|l(?:ayer|ink)|meta|object|s(?:cript|tyle)|xml)[^>]*>#is', '', $str); $str = preg_replace('#<([^>]*)(onabort|onactivate|onafterprint|onafterupdate|onbeforeactivate|onbeforecopy|onbeforecut|onbeforedeactivate|onbeforeeditfocus|onbeforepaste|onbeforeprint|onbeforeunload|onbeforeupdate|onblur|onbounce|oncellchange|onchange|onclick|oncontextmenu|oncontrolselect|oncopy|oncut|ondataavailable|ondatasetchanged|ondatasetcomplete|ondblclick|ondeactivate|ondrag|ondragend|ondragenter|ondragleave|ondragover|ondragstart|ondrop|onerror|onerrorupdate|onfilterchange|onfinish|onfocus|onfocusin|onfocusout|onhelp|onkeydown|onkeypress|onkeyup|onlayoutcomplete|onload|onlosecapture|onmousedown|onmouseenter|onmouseleave|onmousemove|onmouseout|onmouseover|onmouseup|onmousewheel|onmove|onmoveend|onmovestart|onpaste|onpropertychange|onreadystatechange|onreset|onresize|onresizeend|onresizestart|onrowenter|onrowexit|onrowsdelete|onrowsinserted|onscroll|onselect|onselectionchange|onselectstart|onstart|onstop|onsubmit|onunload)([ \r\n\t]*)=([ \r\n\t]*)("|\'|"|')([^\5]*)\5([^>]*?)>#is', '<$1$6>', $str); return $str; } } 03. CSS 추가 (style.css 또는 적절한 CSS 파일) 추천/비추천 버튼의 스타일을 위해 style.css 파일 (보통 board_skin_url에 있는)에 아래 CSS를 추가해주세요. /* 댓글 추천/비추천 버튼 */ .cmt_good_btn, .cmt_nogood_btn { display: inline-flex; align-items: center; cursor: pointer; margin-left: 10px; font-size: 13px; /* 폰트 크기 조절 */ color: #666; transition: color 0.2s ease; } .cmt_good_btn:hover, .cmt_nogood_btn:hover { color: #007bff; /* 호버 시 색상 변경 */ } .cmt_good_btn svg, .cmt_nogood_btn svg { margin-right: 3px; vertical-align: middle; } .cmt_good_btn .good_count, .cmt_nogood_btn .nogood_count { font-weight: bold; } .cmt_good_btn.disabled, .cmt_nogood_btn.disabled { cursor: not-allowed; opacity: 0.6; } 04. view_comment.skin.php 파일 수정 ① 파일 상단에 SQL 칼럼 추가 로직 삽입 사용자님의 view_comment.skin.php 파일에 아래 내용을 추가 및 수정합니다. view_comment.skin.php 파일의 가장 상단에 있는 <?php 태그 바로 아래에 다음 코드를 추가합니다. <?php if (!defined('_GNUBOARD_')) exit; // 개별 페이지 접근 불가 // --- [시작] 댓글 추천/비추천 칼럼 존재 여부 확인 및 추가 --- if (isset($bo_table) && $bo_table) { $write_table = $g5['write_prefix'] . $bo_table; // 게시판 테이블명 (댓글 테이블도 동일하게 사용) // cmt_good 칼럼 확인 및 추가 $sql_check_cmt_good = "SHOW COLUMNS FROM `{$write_table}` LIKE 'cmt_good'"; $row_cmt_good = sql_fetch($sql_check_cmt_good); if (!$row_cmt_good) { // 기존 wr_good 칼럼 뒤에 추가하는 것이 자연스러움. 만약 wr_good이 없다면 wr_hit 뒤에. // 여기서는 wr_hit 뒤에 추가하는 것으로 가정합니다. $sql_add_cmt_good = "ALTER TABLE `{$write_table}` ADD `cmt_good` INT(11) NOT NULL DEFAULT '0' AFTER `wr_hit`"; sql_query($sql_add_cmt_good, false); } // cmt_nogood 칼럼 확인 및 추가 $sql_check_cmt_nogood = "SHOW COLUMNS FROM `{$write_table}` LIKE 'cmt_nogood'"; $row_cmt_nogood = sql_fetch($sql_check_cmt_nogood); if (!$row_nogood) { // $row_nogood 대신 $row_cmt_nogood를 확인해야 합니다. // cmt_good 칼럼 뒤에 추가 $sql_add_cmt_nogood = "ALTER TABLE `{$write_table}` ADD `cmt_nogood` INT(11) NOT NULL DEFAULT '0' AFTER `cmt_good`"; sql_query($sql_add_cmt_nogood, false); } } // --- [끝] 댓글 추천/비추천 칼럼 존재 여부 확인 및 추가 --- ?> ② 댓글 작성일자 옆에 추천/비추천 버튼 삽입 view_comment.skin.php 파일에서 div class="gall_date" 부분을 찾습니다. 이 부분은 대략 40~50번째 줄에 있을 것입니다. <p class="p_times" style="margin-bottom:10px;"><span><?php echo date('Y-m-d H:i', strtotime($list[$i]['datetime'])) ?></span></p> 위 코드 바로 아래에 다음 HTML 코드를 추가합니다. <?php if ($list[$i]['mb_id'] != $member['mb_id'] || $member['mb_id'] == '') { // 본인 댓글이 아니거나 비회원일 경우에만 표시 (권한에 따라 조절) ?> <span class="cmt_good_btn" data-comment-id="<?php echo $comment_id; ?>" data-action="good"> <svg width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="feather feather-thumbs-up"><path d="M14 9V5a3 3 0 0 0-3-3l-4 9v11h11.28a2 2 0 0 0 2-1.7l1.38-9a2 2 0 0 0-2-2.3zM7 22H4a2 2 0 0 1-2-2v-7a2 2 0 0 1 2-2h3"></path></svg> <span class="good_count"><?php echo $list[$i]['cmt_good']; // 변경된 칼럼명 ?></span> </span> <span class="cmt_nogood_btn" data-comment-id="<?php echo $comment_id; ?>" data-action="nogood"> <svg width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="feather feather-thumbs-down"><path d="M10 15v4a3 3 0 0 0 3 3l4-9V2H5.72a2 2 0 0 0-2 1.7l-1.38 9a2 2 0 0 0 2 2.3zM17 2h3a2 2 0 0 1 2 2v7a2 2 0 0 1-2 2h-3"></path></svg> <span class="nogood_count"><?php echo $list[$i]['cmt_nogood']; // 변경된 칼럼명 ?></span> </span> <?php } ?> <script> // --- [추가 시작] 댓글 추천/비추천 기능 --- $(document).on('click', '.cmt_good_btn, .cmt_nogood_btn', function() { const btn = $(this); const commentId = btn.data('comment-id'); const action = btn.data('action'); // 'good' 또는 'nogood' // 중복 클릭 방지 if (btn.hasClass('disabled')) { return false; } btn.addClass('disabled'); // 버튼 비활성화 $.ajax({ url: g5_bbs_url + '/ajax.comment_good_nogood.php', // 이 파일을 새로 생성해야 합니다. type: 'POST', data: { comment_id: commentId, action: action, bo_table: '<?php echo $bo_table; ?>', // 게시판 테이블명 wr_id: '<?php echo $wr_id; ?>' // 게시글 ID }, dataType: 'json', success: function(data) { if (data.error) { alert(data.error); } else { if (action === 'good') { btn.find('.good_count').text(data.cmt_good_count); } else if (action === 'nogood') { btn.find('.nogood_count').text(data.cmt_nogood_count); } } }, error: function(xhr, status, error) { console.error("AJAX Error:", status, error); alert('요청 처리 중 오류가 발생했습니다.'); }, complete: function() { btn.removeClass('disabled'); // 버튼 다시 활성화 } }); }); // --- [추가 끝] 댓글 추천/비추천 기능 --- </script>
관리자 2025-06-06
사이트 활용팁
설치, 기본/빌더 설정, 페이지 구성 (레이아웃, 헤더, 푸터, 서브, 문서 페이지), 메뉴설정, 게시판 생성, 사이트 수집, 사이트 등록
[댓글]
현재 댓글 생성 서비스를 이용할 수 없습니다.
관리자 2025-05-16
개선/제안
mac 용 설치 미디어(UBS) 만들기
[댓글]
현재 댓글 생성 서비스를 이용할 수 없습니다.
관리자 2025-01-02
운영체제/편집/PC 진단/벤치마크 프…
설치, 기본/빌더 설정, 페이지 구성 (레이아웃, 헤더, 푸터, 서브, 문서 페이지), 메뉴설정, 게시판 생성, 사이트 수집, 사이트 등록
[댓글]
현재 댓글 생성 서비스를 이용할 수 없습니다.
관리자 2025-05-16
개선/제안
전체댓글 '더보기' 기능 추가 (게시판 댓글 전체, 확장/축소 기능)
[댓글]
현재 댓글 생성 서비스를 이용할 수 없습니다.
관리자 2025-06-06
사이트 활용팁
전체댓글 '더보기' 기능 추가 (게시판 댓글 전체, 확장/축소 기능)
[댓글]
현재 댓글 생성 서비스를 이용할 수 없습니다.
관리자 2025-06-06
사이트 활용팁
전체댓글 '더보기' 기능 추가 (게시판 댓글 전체, 확장/축소 기능)
[댓글]
현재 댓글 생성 서비스를 이용할 수 없습니다.
관리자 2025-06-06
사이트 활용팁
댓글 내용 확장/축소 기능 (댓글 자세히보기 및 접기 기능)
[댓글]
현재 댓글 생성 서비스를 이용할 수 없습니다.
관리자 2025-06-06
사이트 활용팁
전체댓글 '더보기' 기능 추가 (게시판 댓글 전체, 확장/축소 기능)
[댓글]
현재 댓글 생성 서비스를 이용할 수 없습니다.
관리자 2025-06-06
사이트 활용팁
전체댓글 '더보기' 기능 추가 (게시판 댓글 전체, 확장/축소 기능)
[댓글]
현재 댓글 생성 서비스를 이용할 수 없습니다.
관리자 2025-06-06
사이트 활용팁
열린
1
페이지
2
페이지
3
페이지
4
페이지
5
페이지
6
페이지
7
페이지
8
페이지
9
페이지
10
페이지
다음
맨끝
Guest
로그인
회원가입
빌런들
회시 발런
게임 빌런
일상생활 속 빌런
메신저 빌런
학교 빌런
중고거래 빌런
연예&셀럽
배우
가수
방송인
인플루언서
미디어허브
미디어
플레이어
알림마당
IT/전자기기
대한민국 정책브리핑
핫딜
|
|
|
고객센터
공지사항
개선/제안
질문/답변
사이트 활용팁
자유게시판
갤러리
동영상
마켓
노트북/데스크
모니터/복합기
PC부품
부품별 A/S 가이드
게임별 추천 사양
추천 컴퓨터 견적
노트북 견적상담
PC 견적상담
다운로드
문서 양식 다운로드
웹솔루션 스토어
자영업자 마케팅
자동화 프로그램
유틸리티 박스
운영체제/PC진단/벤치마크
원하는 소프트웨어 제안