2.2.3.1
리빌더
리빌더
다운로드
리빌더 데모
리빌더 마켓 데모
빌더 소개
n
이용가이드
소식
소식
공지사항
이벤트
업데이트 노트
업데이트 캘린더
개발실적
부가기능
부가기능
전체
게시판
시스템
확장기능
API
최신글
위젯
레이아웃
u
웹폰트
부가서비스
부가서비스
Rb 프리미엄
Rb 테마
Rb 에디터
Rb 어드민
멤버십
리셀러
에디터
웹뷰 패키징
신규개발 의뢰
자료실
자료실
유저 자료실
멤버십 자료실
지원
지원
질문과 답변
버그제보
개선 및 제안
기술지원 요청
포럼
포럼
자유 게시판
n
팁과 노하우
사용후기
많이 검색된 키워드
#
2025
#
2026
#
배너
#
alert
#
toast
검색조건
제목+내용
제목
내용
회원아이디
이름
and
or
로그인후 이용해주세요.
로그인
회원가입
팁과노하우
검색
포인트정책
팁과노하우 포인트 정책
글쓰기
100P
댓글
10P
전체 115건 / 5 페이지
55
오래 전
2025.02.05
오래 전
비회원은 ? 시간 동안 댓글을 볼 수 없는 기능을 추가 해봅시다!!
안녕하세요...미니님a입니다.
더X라는 사이트에는 재미난 시스템이 하나 있습니다.게시판의 내용을 볼 수 있지만, 비회원은 특정 시간 동안 댓글을 볼 수 없습니다. 아래처럼요
이 기능!! 만들어봅시다.기본 게시판과 통합 게시판 모두 작성되어있습니다.
[기본 게시판 설정]
theme/rb.basic/skin/board/rb.basic_bbs/view_comment.skin.php 파일을 열어주세요
그리고 52번 라인을 찾아주세요 만약 커스터 마이징을 했다면 아래 코드를 찾아주시면 됩니다.
<!-- 댓글 출력 --> <div class="cmt_contents"> <p> <?php if (strstr($list[$i]['wr_option'], "secret")) { ?><img src="<?php echo $board_skin_url; ?>/img/ico_sec.svg" alt="비밀글"><?php } ?> <?php echo $comment ?> </p>
위 코드를 아래 코드로 통으로 변경해주세요
<!-- 댓글 출력 --> <!-- 시간 체크 추가 --> <?php $diff_time = (time() - (new DateTime($list[$i]['datetime']))->getTimestamp()) / 3600;?> <!-- 시간 체크 추가 --> <div class="cmt_contents"> <p> <?php if (strstr($list[$i]['wr_option'], "secret")) { ?><img src="<?php echo $board_skin_url; ?>/img/icon_secret.gif" alt="비밀글"><?php } ?> <!-- 시간 체크 추가 --> <?php if($diff_time >= 1 || ($is_member && $member['mb_id'])) { echo "<span class='test'>".$comment."</span>"; // 글제목 출력 }else{ echo "<span class=' font-bold block text-center'>비회원은 댓글 작성 기준 1시간 이내의 내용은 확인할 수 없습니다.<br>로그인 이후 즉시 확인할 수 있습니다.</span>"; } ?> <!-- 시간 체크 추가 위에 diff_time 1 이 한시간입니다. 2라면 2시간입니다. --> </p>
[통합 게시판 설정]
theme/rb.basic/skin/board/rb.bbs/skin/cmt/basic/skin.php 파일을 열어주세요
마찬가지로 위와 동일하게 45번 라인에 주석으로 된 댓글 출력을 찾아주세요만약 커스터 마이징을 했다면 아래 코드를 찾아주시면 됩니다.
<!-- 댓글 출력 --> <div class="cmt_contents"> <p> <?php if (strstr($list[$i]['wr_option'], "secret")) { ?><img src="<?php echo $board_skin_url; ?>/img/ico_sec.svg" alt="비밀글"><?php } ?> <?php echo $comment ?> </p>
동일하게 위 코드를 아래 코드로 변경 해주시면 됩니다.
<!-- 댓글 출력 --> <!-- 시간 체크 추가 --> <?php $diff_time = (time() - (new DateTime($list[$i]['datetime']))->getTimestamp()) / 3600;?> <!-- 시간 체크 추가 --> <div class="cmt_contents"> <p> <?php if (strstr($list[$i]['wr_option'], "secret")) { ?><img src="<?php echo $board_skin_url; ?>/img/icon_secret.gif" alt="비밀글"><?php } ?> <!-- 시간 체크 추가 --> <?php if($diff_time >= 1 || ($is_member && $member['mb_id'])) { echo "<span class='test'>".$comment."</span>"; // 글제목 출력 }else{ echo "<span class=' font-bold block text-center'>비회원은 댓글 작성 기준 1시간 이내의 내용은 확인할 수 없습니다.<br>로그인 이후 즉시 확인할 수 있습니다.</span>"; } ?> <!-- 시간 체크 추가 위에 diff_time 1 이 한시간입니다. 2라면 2시간입니다. --> </p>
일반 게시판과 통합 게시판 스샷 라인은 다르지만, 코드가 같아 코드 스크린샷은 하나로 통일 합니다.
위 코드 작성 시 아래 처럼 결과를 볼 수 있습니다.
당연히 로그인 하시면 즉시 볼 수 있습니다.
고맙습니다.
※ 추천은 구걸이라 배웠습니다. 추천 좀!!! ㅎㅎ
미니님a
미니홈
1:1 대화하기
미니홈
1:1 대화하기
인기
226
2
4
54
오래 전
2025.02.04
오래 전
특정 기간에만 동작하는 코드 만들기
안녕하세요...미니님a입니다.
웹 페이지 내 이벤트 혹은 특정 기간에만 어떠한 액션을 주고 싶을 때 유용하게 사용할 수 있습니다.
$current_time = time(); $start_time = strtotime('2025-02-04 00:00:00'); $end_time = strtotime('2025-02-06 23:59:59'); if ($current_time >= $start_time && $current_time <= $end_time) { 하고싶은 동작 }
이렇게 작성하시면,2025년도 02월 04일 00:00:00 ~ 02월 06일 23시59분59초까지만 동작하는 코드를 만들 수 있습니다.
해당 기간이 지나면, 자동으로 동작하지 않기 때문에 따로 지울 필요 없이,나중에 생각나면, 코드를 지우면 되니깐 유용하게 사용할 수 있을 것입니다.
사용예제)크리스마스 기념 포인트 지급, 아이템 지급 / 새해 기념 아이템 지급, 포인트 지급특정 기념 할인 배너 출력 / 특정 기념 할인 팝업창 출력 (50% 할인 등)랜덤으로 할인 쿠폰 제공 등등
사용성에 따라 무궁 무진하게 사용할 수 있을 것입니다.
고맙습니다.
미니님a
미니홈
1:1 대화하기
미니홈
1:1 대화하기
인기
249
5
2
53
오래 전
2025.02.03
오래 전
색상 선정에 고민이 있다면 이 글을 클릭 하세요
안녕하세요...미니님a 입니다.
한번 쯤은 색상이 어울리나? 어떤색을 써야 하나 ? 고민 해보신 적 많으실 것이라 생각됩니다.그래서 개발해봤습니다.
색상 생성기 + 색상 팔레트(추천기) 입니다.
https://colorgenerator.kr/
nextjs15 버전으로 개발 하였으며, 스샷은 다음과 같습니다.
- 색상 생성기
컬러를 입력 시 100 ~ 1000까지의 색상을 추천 해줍니다. 실시간 변경 됩니다.
클릭 시 복사 가능합니다.
내보내기 시 보여지는 컬러를 저장할 수 있습니다 (이미지로 저장됨)
색상 잠금 기능도 추가 하였습니다.
- 색상 추천기
색상 선택 시 유사/보색/분할보색1,2 / 삼각 구도 색을 추천 해줍니다.
내보내기 시 해당 색상을 저장할 수 있습니다.
[테일윈드 색상]
4.0 버전의 색상 950까지 모두 출력 합니다
클릭 시 복사가 가능합니다.
=추가 25.02.04=[이미지 색상 추출]
이미지 업로드 시 사용된 이미지의 색상을 추출합니다.
[사이트 기능]
1. 한국어 / 영어 버전을 지원합니다.
2. 다크 모드를 지원합니다.
3. 모바일 반응형을 지원합니다.
고맙습니다.
미니님a
미니홈
1:1 대화하기
미니홈
1:1 대화하기
인기
280
2
3
52
오래 전
2025.01.31
오래 전
회원 가입 및 회원 정보 수정 시 관리자에게 알림 보내기
안녕하세요...미니님a입니다.
회원 가입 및 회원 정보 수정 시 관리자에게 메시지를 보내는 기능을 추가 해보려고 합니다.초보라도 비교적 간단하게 기능을 추가 할 수 있습니다.
실제 동작은 아래와 같습니다.
다음 경로에서 파일을 열어주세요
theme\rb.basic\skin\member\rb.member\register_form_update.tail.skin.php
해당 파일을 열어
주석이 끝나는 (SMS 문자) 다음에 5줄만 넣어주세요
[code]if ($w == '' || $w == 'u') { $memo_content = $mb_nick.'님이 '.G5_TIME_YMDHIS.'에 '; $memo_content .= ($w == '') ? '회원 가입했습니다.' : '회원 정보를 수정했습니다.'; memo_auto_send($memo_content, '', $config['cf_admin'], "system-msg");}[/code]
끝입니다.
만약 어딘지 잘 모르겠다 하시면 아래 스샷 보시면 이해 되실 겁니다.
만약 나는 어? 그냥 회원 가입만 쓰고 싶은데요? 굳이 정보 수정까진 필요 없어요? 하신다면 코드를 아래 처럼 변경 해주세요
[code]if ($w == '') { $memo_content = $mb_nick.'님이 '.G5_TIME_YMDHIS.'에 '; $memo_content .= '회원 가입했습니다.'; memo_auto_send($memo_content, '', $config['cf_admin'], "system-msg");}[/code]
끝 입니다.
고맙습니다.
미니님a
미니홈
1:1 대화하기
미니홈
1:1 대화하기
인기
281
2
5
51
오래 전
2025.01.23
오래 전
게시물 관리 기능 내 리스트 목록에서 기능을 업데이트 해봅시다!
안녕하세요...미니님a 입니다.
예전에 SIR 에 업로드 된 팁이긴 하지만, 리빌더에는 기본적으로 적용된 게시물 관리 기능 업데이트를 다른 분들께 공유하고자 작성합니다.
기존 게시글을 그대로 복붙이 아닌, 리빌더에 맞게 수정된 게시글입니다. (결과만 예전에 올린 것과 동일)게시물 관리는 빌더설정 > 게시물 관리 메뉴에서 활용할 수 있습니다.
나는 소스에 대해 잘 몰라서, 적용이 어려울 것 같다? 하시는 분들은 아래 링크에서 자료 다운로드 하실 수 있습니다.https://rebuilder.co.kr/userdata/305
실제 구동 되는 영상은 아래와 같습니다.
주의 : 제 코드 라인과는 동일하지 않을 수 있습니다. 본인의 작성된 코드 라인 근처 혹은 검색을 이용해주세요
다음 파일을 열어주세요
adm/rb/bbs_list.php 151번 라인 근처 혹은 다음 코드를 찾아주세요
<th scope="col"><?php echo subject_sort_link('wr_hit'); ?>조회</a></th>
그리고 이 코드를 다음에 2줄을 추가 해줍니다.
<th scope="col"><?php echo subject_sort_link('wr_good'); ?>추천</a></th> <th scope="col"><?php echo subject_sort_link('wr_nogood'); ?>비추천</a></th>
스샷으로 보면 다음과 같습니다.
그 다음 163번 라인 근처 혹은 다음 코드를 찾아 주세요
$bg = 'bg'.($i%2);
그리고 다음 코드를 추가 해주세요
$bo_use_good = $board['bo_use_good']; $bo_use_nogood = $board['bo_use_nogood'];
마찬가지로 스샷으로 보면 다음과 같습니다.
그리고 같은 파일 179번 라인 혹은 다음 코드를 찾아 주세요
<td class="td_mng td_mng_s"><?php echo $row['wr_hit']; ?></td>
그리고 기존 코드 위 찾은 코드도 함께 변경 되어야 합니다.
<td class="td_mng td_mng_s"><input style="text-align:center;" type="number" value="<?php echo $row['wr_hit']; ?>" name="wr_hit[<?php echo $i;?>]"></td> <td class="td_mng td_mng_s"><?php if($bo_use_good) { ?><input style="text-align:center;" type="number" value="<?php echo $row['wr_good']; ?>" name="wr_good[<?php echo $i;?>]"><?php } else { echo '미사용'; } ?></td> <td class="td_mng td_mng_s"><?php if($bo_use_nogood) { ?><input style="text-align:center;" type="number" value="<?php echo $row['wr_nogood']; ?>" name="wr_nogood[<?php echo $i;?>]"><?php } else { echo '미사용'; } ?></td>
아예 기존 wr_hit 도 수정할 수 있게 코드가 변경 된다는 뜻이니 참고하세요
스샷은 다음과 같습니다.
자 그리고 199번 라인 근처 혹은 다음 코드를 찾아 주세요
<input type="submit" name="act_button" value="선택삭제" onclick="document.pressed=this.value" class="btn btn_02">
그리고 그 다음 줄에 추가 해주세요
<input type="submit" name="act_button" value="선택수정" onclick="document.pressed=this.value" class="btn btn_02">
스샷으로 보면 다음과 같습니다.
자 여기까지 하시면 일단 프론트 자체는 끝이 났습니다.
마지막으로 수정 되는 것 까지 하실려면
adm/rb/bbs_list_update.php파일을 열어 주세요
17번 라인 근처 혹은 다음 코드를 찾아 주세요
if ($_POST['act_button'] == "선택삭제") {
그리고 이 코드 바로 위에 다음 코드를 넣습니다.
if($_POST['act_button'] == "선택수정"){ auth_check_menu($auth, $sub_menu, 'd'); for($i=0; $i<$count_post_chk; $i++){ // 실제 번호를 넘김 $k = isset($_POST['chk'][$i]) ? (int) $_POST['chk'][$i] : 0; $iwr_id = isset($_POST['wr_id'][$i]) ? (int) $_POST['wr_id'][$k] : 0; $wr_hit = isset($_POST['wr_hit'][$i]) ? (int) $_POST['wr_hit'][$k] : 0; $wr_good = isset($_POST['wr_good'][$i]) ? (int) $_POST['wr_good'][$k] : 0; $wr_nogood = isset($_POST['wr_nogood'][$i]) ? (int) $_POST['wr_nogood'][$k] : 0; $sql = "update g5_write_{$bo_table} set wr_hit = ${wr_hit}, wr_good = ${wr_good}, wr_nogood = ${wr_nogood} where wr_id = '{$iwr_id}'"; sql_query($sql); } }
마찬가지로 스샷은 다음과 같습니다.
이렇게 하시면, 목록에서 조회수 / 추천수 / 비추천수를 관리자가 임의로 수정할 수 있습니다.
만약 추천/비추천 미사용 시 미사용이라고 안내가 됩니다.
고맙습니다.
미니님a
미니홈
1:1 대화하기
미니홈
1:1 대화하기
인기
292
3
2
50
오래 전
2025.01.21
오래 전
하루 게시글 / 댓글 작성 포인트 지급 제한
안녕하세요...미니님a 입니다.
커뮤니티 사이트 특성상 무제한으로 댓글 혹은 게시글 포인트 지급이 되어 제한 하고자 하시는 분들께서 유용하게 사용할 수 있을 것입니다.
사용하시는 게시판 스킨 디렉토리 내 write_update.head.skin.php / write_comment_update.head.skin.php 파일을 생성 합니다.이는 통합 게시판 / 일반 기본 게시판과 구분 없습니다.
파일명을 보시면 아시겠지만, 댓글 / 게시글을 따로 적용하여야 합니다.
몇번까지 제어하실지는 아래 코드에서 수정 하시면 됩니다. 기본 4로 설정 되어있습니다.
[write_comment_update.head.skin.php] <?php if (!defined('_GNUBOARD_')) exit; $comment_cnt = sql_fetch(" select count(*) as cnt from $write_table where wr_is_comment = '1' and mb_id = '{$member['mb_id']}' and substring(`wr_datetime`,1,10) = '". G5_TIME_YMD ."'"); $comment_max = 4; //하루에 포인트를 부여할 댓글쓰기 회수 // 하루에 댓글쓰기 횟수가 최대회수를 넘었다면 if ($comment_cnt['cnt'] >= $comment_max) { $board['bo_comment_point'] = 0; // 댓글쓰기 포인트 지급 0 } 만약 해당 파일이 있다면 상단에 [code]<?phpif (!defined('_GNUBOARD_')) exit; [/code]
이부분은 생략 하시고 본 코드만 넣어주세요
[write_update.head.skin.php] <?php if (!defined('_GNUBOARD_')) exit; // 게시글 수 확인 $write_cnt = sql_fetch(" select count(*) as cnt from $write_table where wr_is_comment = '0' and mb_id = '{$member['mb_id']}' and substring(`wr_datetime`,1,10) = '". G5_TIME_YMD ."'"); $write_max = 4; //하루에 포인트를 부여할 게시글쓰기 횟수 // 하루에 게시글쓰기 횟수가 최대 횟수를 넘었다면 if ($write_cnt['cnt'] >= $write_max) { $board['bo_write_point'] = 0; // 게시글쓰기 포인트 지급 0 } 마찬가지로 해당 파일이 있다면[code] <?phpif (!defined('_GNUBOARD_')) exit; [/code]이부분은 생략하고 바로 하단에 있는 코드만 넣어주심 되세요
이렇게 하시면 해당 개수 이상일 시 포인트를 지급하지 않습니다.
고맙습니다.
미니님a
미니홈
1:1 대화하기
미니홈
1:1 대화하기
인기
443
4
2
49
오래 전
2025.01.21
오래 전
[수정] 댓글에서 원 작성자 표기 하기
안녕하세요...미니님a 회원입니다.
게시글 작성자가 댓글을 남겼을 때 원 작성자와 동일할 경우 (작성자) 라고 표기하는 팁을 공유하고자 합니다.실 동작화면은 영상이 아닌 스샷으로도 충분하기에 스샷으로 대처합니다.아래 스샷 확인해주세요
사용하시는 게시판 스킨 내 view.comment.php 파일을 열어주세요[09:20 추가] - 만약 통합 게시판을 사용한다면 rb.bbs/skin/cmt/basic/skin.php 파일을 열어서 아래와 똑같이 하시면 됩니다.컨트롤 + F 검색 기능을 활용하여 아래 코드를 찾아주세요
<?php echo $list[$i]['name'] ?>
그리고 바로 아래에 다음 코드를 넣어주시면 끝입니다.
<?php if ($list[$i]['mb_id'] === $write['mb_id']) { ?> <span style="color:#0000ff">(작성자)</span> <?php } ?>
어디에 정확하게 넣는지 모르겠다구요 ? 그럼 아래 스샷을 참조 하세요
이렇게 넣어주시면 됩니다.
고맙습니다.
미니님a
미니홈
1:1 대화하기
미니홈
1:1 대화하기
인기
254
1
2
48
오래 전
2025.01.17
오래 전
게시글이 길어서 짤릴 때 글자수 늘려주는 방법
본문 내용 텍스트가 많이 길어지면텍스트가 짤리게 되는데요.
안 짤리게 수정하는 방법 입니다.
1. phpadmin 접속 후해당 게시판을 찾습니다.
거기서 구조를 선택하면wr_content 필드 타입이 TEXT로 되어 있습니다.
수정하기 눌러서필드 종류를 TEXT 에서 MEDIUMTEXT 또는 LONGTEXT 로 변경 합니다.
2. bbs/write_update.php 파일 수정 if (isset($_POST['wr_content'])) { $wr_content = substr(trim($_POST['wr_content']),0,65536); $wr_content = preg_replace("#[\\\]+$#", "", $wr_content);} 여기서 이 부분 숫자를 아래 참고사항에 있는 최대 저장 크기 값 참고해서 적당히 늘려주세요.$wr_content = substr(trim($_POST['wr_content']),0,16777216);
3. lib/editor.lib.php 파일 수정
아래 함수를 찾은 후 maxlength=\"65536\" 이 부분 최대 저장 크기를 2번 내용처럼 적당히 변경해 주세요.
function editor_html($id, $content){ return "<textarea id=\"$id\" name=\"$id\" style=\"width:100%;\" maxlength=\"65536\">$content</textarea>";
}
삼다수
미니홈
1:1 대화하기
미니홈
1:1 대화하기
인기
232
1
47
오래 전
2025.01.17
오래 전
내가 스크랩 한 게시물은 체크 및 스크랩 총 개수 나타내기
안녕하세요...미니님a 회원입니다.
게시판 목록을 클릭해서 내용을 보면, 스크랩이라는 기능이 있습니다.이 기능을 통해 본인의 판단하에 자주 혹은 유용한 게시글 등을 스크랩하실 텐데요
화면상에 총 개수와 내가 스크랩한 게시글을 표기하는 방법입니다.현재는 아시다시피 내가 스크랩했나? 확인할 수 없습니다. 직접 스크랩 버튼을 눌러야만 확인이 가능한 시스템입니다.
이렇게 번거롭게 확인하는 것 보다 아래 처럼 보여진다면 번거로움이 조금은 줄어들지 않을까요 ?
사용하시는 게시판 스킨의 view.skin.php 파일을 열어 주세요
그리고 다음 코드를 찾아주세요 <?php if ($scrap_href) { ?> <a href="<?php echo $scrap_href; ?>" class="fl_btns font-B" target="_blank" onclick="win_scrap(this.href); return false;">스크랩</a> <?php } ?> 그리고 이 코드를 통으로 아래 코드로 변경만 하시면 됩니다. <?php if ($scrap_href) { $scrap_sql = " select count(*) as cnt from {$g5['scrap_table']} where mb_id = '{$member['mb_id']}' and bo_table = '$bo_table' and wr_id = '{$view['wr_id']}' "; $scrap_row = sql_fetch($scrap_sql);?> <a href="<?php echo $scrap_href;?>" target="_blank" class="fl_btns font-B" onclick="win_scrap(this.href); return false;"><i class="fa fa-<?php echo ($scrap_row['cnt']) ? "check-circle" : ""; ?>" aria-hidden="true"></i> <?php echo ($scrap_row['cnt']) ? "스크랩완료" : "스크랩"; ?> (<?php echo ($scrap_row['cnt']);?>)</a> <?php } ?> 이렇게 변경 해주시면 위 스샷대로 동작할 것입니다.
고맙습니다.
미니님a
미니홈
1:1 대화하기
미니홈
1:1 대화하기
인기
262
3
3
46
오래 전
2025.01.17
오래 전
SQL Injection, XSS 보안 강화하기
update 페이지를 직접 작성하시는 경우 그누보드 내장함수 조합으로SQL Injection, XSS 공격을 방어할 수 있습니다.
보통 update.php 에서
$aaa = isset($_POST['aaa']) ? $_POST['aaa'] : '';$sql = " UPDATE table_name SET aaa = '{$aaa}' WHERE bbb = '{$bbb}' ";sql_query($sql);
이렇게 하기 마련인데, 이렇게되면 공격에 취약해질 수 있습니다.
사용자가 입력 > 저장이 가능한 input 에 스크립트 파일을 추가하는 내용을 입력해서 저장되게하고,스크립트가 실행되면 쿠키 값이나 로컬 스토리지 및 세션 스토리지 등의 정보를 수집해서 서버로 전송할 수도있고, 스크린샷이 캡쳐되어 보내질 수도 있는 위험한 상황이 올 수 있습니다.
일반 문자의 경우$aaa = isset($_POST['aaa']) ? strip_tags(clean_xss_attributes($_POST['aaa'])) : '';
숫자의 경우$aaa = isset($_POST['aaa']) ? intval($_POST['aaa']) : '0';
이렇게 그누보드의 내장 함수와 혼용해서 사용하시면 안전해집니다.
DB로 저장되는 insert 나 update 에서는$sql = " UPDATE table_name SET aaa = '".sql_escape_string($aaa)."' WHERE bbb = '{$bbb}' ";이렇게 사용해서 SQL Injection 을 방어할 수 있습니다.
저희 리빌더도 보안에 신경을 써야 될 것같습니다.감사합니다.
펄스나인
미니홈
1:1 대화하기
미니홈
1:1 대화하기
인기
397
1
5
45
오래 전
2025.01.15
오래 전
[수정] 게시판 내 일정 확률로 보너스 포인트 지급 하기
안녕하세요...미니님a 회원입니다.
먼저 해당 팁은 그누보드 배포사이트인 SIR에도 작성하지 않고 오직 리빌더에만 작성하는 팁이며,기존에 SIR에 업로드 된 스킨 버그 수정된 버전입니다.
※ 본 팁은 손수 작성한 팁이며, 창작으로 제작된 기능이므로, 다른 곳에 퍼가실 땐 반드시 제 닉네임을 작성해주시길 바랍니다. 이는 최소한의 매너입니다. 그럴 일은 없겠지만, 진짜 진짜 만약에 발견되면, 팁 공유에 대한 고민이 ...생기............
자!!! RB 기본 스킨을 이용하면서,아 사용자에게 보너스 포인트 지급을 하고 싶은데 방법이 없을까? 하셨을 운영자님은 안계신가요 ?^^;
해당 내용은 스킨과 연계됩니다. 잘 몰라서 스킨을 변경하실꺼면 아래 링크에서 스킨을 그대로 적용하시면 되며,이미 스킨이 상당히 커스터마이징이 많이 된 상태인 경우 해당 팁만 적용이 가능합니다.https://rebuilder.co.kr/userdata/280
이런 느낌으로 동작합니다.
글 그리고 댓글 모두 적용할 수 있습니다.
1. 사용하시는 게시판 설정으로 들어가주세요그리고 맨 하단에 다음과 같이 추가 해주세요
참고로 여분 필드 9번과 10번을 사용하고 있습니다.혹시라도, 다른 번호를 사용해야 한다면 아래 코드에서 변경 해주십시요.
여분필드 9: 글확률/댓글 확률입니다.여분필드10: 글최소~글최대 / 댓글최소~댓글최대입니다.
따라서 여분필드 9번의 경우 2개의 데이터 10번의 경우 4개의 데이터가 있어야 정상 동작합니다.만약 고정된 포인트를 지급하실려면 4개의 값을 고정해주세요 혹은 2개 2개씩예) 글 100포인트 / 댓글 50포인트
100,100,50,50 으로 저장하시면 됩니다.
자! 이제 수정하러 가봅시다.
사용하시는 게시판 스킨 write_update.skin.php 파일을 열어 아래 코드를 넣어주세요
[추가] 통합 게시판의 경우 update/basic/write_update.skin.php 파일을 열어 아래 코드를 추가 해주세요 (스크린샷과 동일하게 해주시면 됩니다.) $bo_9_values = explode(',', $board['bo_9']); $bo_10_values = explode(',', $board['bo_10']); $probability = $bo_9_values[0]; $randomNumber = mt_rand() / mt_getrandmax(); $point_rand = rand($bo_10_values[0], $bo_10_values[1]); if ($w == "" && $randomNumber <= $probability){ insert_point($member['mb_id'], $point_rand, "{$board['bo_subject']} {$wr_id} 글쓰기 보너스 포인트", $bo_table, $wr_id, '글쓰기보너스'); } 잘 모르겠다 하시면 아래 스샷 참조 하시길 바랍니다.
자 그다음 댓글 보너스 포인트 지급을 위해 write_comment_update.skin.php 파일을 열어 아래 코드를 추가 해주세요[추가]통합 게시판의 경우 update/basic/cmt_update.skin.php 파일을 열어 아래 코드를 추가 해주세요 (스크린샷과 동일하게 해주시면 됩니다.)
$bo_9_values = explode(',', $board['bo_9']); $bo_10_values = explode(',', $board['bo_10']); $probability = $bo_9_values[1]; $randomNumber = mt_rand() / mt_getrandmax(); $point_rand = rand($bo_10_values[2], $bo_10_values[3]); if ($w == "c" && $randomNumber <= $probability){ insert_point($member['mb_id'], $point_rand, "{$board['bo_subject']} {$wr_id}#{$comment_id} 댓글쓰기 보너스 포인트", $bo_table, $comment_id, '코멘트보너스'); }
마찬가지로 난 잘 모르곘다? 하시면 위치는 아래 스샷 참조 하시길 바랍니다.
자! 이제 1/3 왔네요, 이제 화면에 보여줄 차례입니다.view.skin.php 파일을 열어서 다음 코드를 찾아주세요
[추가]통합 게시판의 경우 view/basic/skin.php 파일을 열어 <div id="bo_v_share"> (241번 라인) 을 찾아주세요해당 라인 바로 위에 아래 코드를 넣어주시면 됩니다.
<?php echo get_view_thumbnail($view['content']); ?> </div> 그리고 그 아래에 해당 코드를 넣어주세요
<?php $point_sql = "SELECT * FROM `{$g5['point_table']}` WHERE po_rel_table = '{$bo_table}' and po_rel_id = '{$wr_id}' and po_rel_action = '글쓰기보너스' "; $result_point = sql_fetch($point_sql); if($result_point) { ?> <p class="text-xs" style="font-weight: 500; font-size: 0.75rem; line-height: 1.25rem; padding: 0.625rem 1.25rem; padding-left:0; border-radius: 0.5rem; margin-bottom: 0.5rem; margin-top: 1rem;"> 축하합니다. 보너스 <span style="font-weight:bold;"><?php echo $result_point['po_point']; ?></span>포인트를 획득 하였습니다.</p> <?php } ?>
마찬가지로 난 잘 모르겠는데? 하시면 아래 스샷 참조 하시면 됩니다.
이제 댓글에도 남겨야죠 ?? 댓글은 view_comment.skin.php 파일을 열어서 다음 코드를 찾아주세요
[추가]cmt/basic/skin.php 파일을 열어 아래 소스를 찾아주세요 똑같은 코드가 있습니다.
<?php if($is_comment_reply_edit) { if($w == 'cu') { $sql = " select wr_id, wr_content, mb_id from $write_table where wr_id = '$c_id' and wr_is_comment = '1' "; $cmt = sql_fetch($sql); if (isset($cmt)) { if (!($is_admin || ($member['mb_id'] == $cmt['mb_id'] && $cmt['mb_id']))) { $cmt['wr_content'] = ''; } $c_wr_content = $cmt['wr_content']; } } ?> <?php } ?>
이 코드 아래에 해당 코드를 넣어주세요 <?php $point_sql = "SELECT * FROM `{$g5['point_table']}` WHERE po_rel_table = '{$bo_table}' and po_rel_id = '{$comment_id}' and po_rel_action = '코멘트보너스' "; $result_point = sql_fetch($point_sql); if($result_point) { ?> <p class="text-xs" style="font-weight: 500; font-size: 0.75rem; line-height: 1.25rem; padding: 0.625rem 1.25rem; padding-left:0; border-radius: 0.5rem; margin-bottom: 0.5rem; margin-top: 1rem;"> 축하합니다. 보너스 <span style="font-weight:bold;"><?php echo $result_point['po_point']; ?></span>포인트를 획득 하였습니다.</p> <?php } ?>
이것도 아래 스샷 참고 하시면 위치는 확인 되실 것입니다.
여기까지 오셨다면 아래 기능은 추가가 완료 되었지만, 문제점이 하나 발생합니다.바로 글이나 댓글 삭제 시 보너스 포인트가 회수가 안된다는 버그인데요
이제 그 부분도 해결해보겠습니다.리빌더 기본 스킨에는 해당 파일이 기본적으로 없습니다.따라서 파일명 잘 보시고 직접 생성하셔야 합니다.
만약 해당 파일이 있다면 코드만 넣어주세요
먼저 글삭제 파일 delete.skin.php 파일을 생성 해주세요
그리고 아래 코드를 넣어주세요
[추가]통합 게시판도 하단의 코드는 동일하게 작성하시면 됩니다. <?php if (!defined("_GNUBOARD_")) exit; // 개별 페이지 접근 불가 // 글쓰기 보너스 포인트 회수 $sql_point = "SELECT * FROM `{$g5['point_table']}` WHERE po_rel_table = '{$bo_table}' and po_rel_id = '{$wr_id}' and po_rel_action = '글쓰기보너스' "; $result_point = sql_fetch($sql_point); if($result_point) { insert_point($write['mb_id'], $result_point['po_point'] * (-1), "{$board['bo_subject']} {$write['wr_parent']} 글삭제", $bo_table, $wr_id, '글쓰기삭제'); } // 해당 글의 댓글 보너스 포인트 회수 $sql = " select wr_id, mb_id from {$write_table} where wr_parent = '{$wr_id}' and wr_is_comment = 1 "; $result = sql_query($sql); while ($row = sql_fetch_array($result)) { $sql_comment_point = "SELECT * FROM `{$g5['point_table']}` WHERE po_rel_table = '{$bo_table}' and po_rel_id = '{$row['wr_id']}' and po_rel_action = '코멘트보너스' "; $result_comment_point = sql_fetch($sql_comment_point); if($result_comment_point) { insert_point($row['mb_id'], $result_comment_point['po_point'] * (-1), "{$board['bo_subject']} {$wr_id} 댓글삭제", $bo_table, $row['wr_id'], '댓글삭제'); } }
햐당 파일은 그냥 처음 만든 파일이라 걍 싹 다 복사해서 복붙하시면 됩니다.
이제 댓글 삭제 포인트 회수하러 갑시다.delete_comment.skin.php 파일을 생성 해주세요그리고 아래 코드를 전체 넣어주시면 끝입니다.
[추가]통합 게시판도 하단의 코드는 동일하게 작성하시면 됩니다. <?php if (!defined("_GNUBOARD_")) exit; // 개별 페이지 접근 불가 $sql_point = "SELECT * FROM `{$g5['point_table']}` WHERE po_rel_table = '{$bo_table}' and po_rel_id = '{$comment_id}' and po_rel_action = '코멘트보너스' "; $result_point = sql_fetch($sql_point); if($result_point) { insert_point($write['mb_id'], $result_point['po_point'] * (-1), "{$board['bo_subject']} {$write['wr_parent']}-{$comment_id} 댓글삭제", $bo_table, $wr_id, '댓글삭제'); }
그러면 아래 처럼가 잘 처리 될 것입니다.
아래는 전체적으로 구동되는 움짤 영상입니다. 클릭 하시면 큰 화면에서 확인이 가능합니다.고맙습니다.
[수정]
25. 02. 23- 통합 게시판용 소스에 대한 설명 추가
미니님a
미니홈
1:1 대화하기
미니홈
1:1 대화하기
인기
283
1
2
44
오래 전
2025.01.05
오래 전
베이직2 게시판 리스트에 인기글, 공지사항 넣기
list.skin.php
271줄 아래<?php if($list[$i]['comment_cnt']) { ?><span class="fl_icons font-B main_color">+<?php echo number_format($list[$i]['wr_comment']); ?></span><?php } ?>
넣어 주면 됩니다.
<?php if($list[$i]['icon_new'] || $list[$i]['icon_hot'] || $list[$i]['is_notice']) { ?> <!--<?php if ($list[$i]['icon_new']) echo "<span class="lb_ico_new">새글</span>"; ?>--> <?php if ($list[$i]['icon_hot']) echo "<span class="lb_ico_hot">인기</span>"; ?> <?php if ($list[$i]['is_notice']) echo "<span class="lb_ico_noti">공지</span>"; ?> <?php } ?>
삼다수
미니홈
1:1 대화하기
미니홈
1:1 대화하기
인기
311
2
3
43
오래 전
2024.12.27
오래 전
쇼핑몰 스킨 설정을 미리 지정 하는 팁입니다.
반복 작업을 하다 보니선택의 의미가 없는 듯 해서요.
(테마)basic으로 미리 설정 해 두는 것 입니다.
/adm/shop_admin/itemform.php 에서
13~14 번째 줄
'it_skin'=>'','it_mobile_skin'=>'', 해당 부분을
'it_skin'=>'theme/basic','it_mobile_skin'=>'theme/basic',
해주면 테마 basic이 선택 되어 나옵니다.
삼다수
미니홈
1:1 대화하기
미니홈
1:1 대화하기
인기
262
3
1
42
오래 전
2024.12.24
오래 전
보안서버 입력시 경로 입력하기
config.php 파일에서아래의 부분에 주소를 적게 되는데요.
define('G5_DOMAIN', '');define('G5_HTTPS_DOMAIN', '');
잘 못 입력하면접속이 되기도 하고 안되기도 하고 하더군요.
아래와 같이 넣어주면쉽게 고민 안하고 잘 접속 됩니다.
define('G5_DOMAIN', 'https://'.$_SERVER['HTTP_HOST']);define('G5_HTTPS_DOMAIN', 'https://'.$_SERVER['HTTP_HOST']);
폰트어썸도 안 깨진 답니다.
삼다수
미니홈
1:1 대화하기
미니홈
1:1 대화하기
인기
278
2
4
41
오래 전
2024.12.20
오래 전
카카오톡 링크 보낼 때 이미지 깔끔하게 보내기
카카오톡 에서 자신의 홈페이지를 링크 걸 때원하는 이미지로 보내지는 겁니다.
환경설정 > 추가 메타태그에 넣어 주세요.
<meta property="og:title" content="홈페이지 제목"/> <meta property="og:url" content="홈페이지 주소/"/> <meta property="og:description" content="홈페이지 설명"/> <meta name="format-detection" content="telephone=no"> <meta property="og:image" content="홈페이지 주소/img/cacao.png?ver=20241220"/>
다른 이미지로 변경시20241220 이부분을 오늘 날짜로 바꾸어 주면 이미지가 빨리 갱신 될 거에요.
삼다수
미니홈
1:1 대화하기
미니홈
1:1 대화하기
인기
567
3
2
검색
처음
1
페이지
2
페이지
3
페이지
4
페이지
열린
5
페이지
다음
맨끝
검색
게시물 검색
검색대상
제목
내용
제목+내용
글쓴이
글쓴이(코)
검색어
필수
Guest
로그인
회원가입
리빌더
리빌더
다운로드
리빌더 데모
리빌더 마켓 데모
빌더 소개
n
이용가이드
소식
소식
공지사항
이벤트
업데이트 노트
업데이트 캘린더
개발실적
부가기능
부가기능
전체
게시판
시스템
확장기능
API
최신글
위젯
레이아웃
u
웹폰트
부가서비스
부가서비스
Rb 프리미엄
Rb 테마
Rb 에디터
Rb 어드민
멤버십
리셀러
에디터
웹뷰 패키징
신규개발 의뢰
자료실
자료실
유저 자료실
멤버십 자료실
지원
지원
질문과 답변
버그제보
개선 및 제안
기술지원 요청
포럼
포럼
자유 게시판
n
팁과 노하우
사용후기