팁과노하우

  • 팁과노하우 포인트 정책
      글쓰기
      100P
      댓글
      10P
  • 전체 104건 / 4 페이지
    • 59
    • 오래 전
      2025.02.14
  • 오래 전
  • 게시판 내 추천해요/별로에요 숫자를 실시간으로 변경해봅시다.
  • 안녕하세요...미니님a입니다.
    리빌더에 추천/비추천 > 추천해요/별로에요 라는 문구로 변경 되어 사용 중이신 것을 알고 계실겁니다.그런데 원래 추천/비추천을 하게 되면 실시간으로 숫자가 올라갑니다.
    그렇지만, 리빌더에는 그 기능이 누락 되어있습니다.기능상 오류는 아니고 리빌더 개발과정에서 해당 태그를 뺀 것으로 보이는데요
    무슨 말인지는 아래 영상 확인해보세요
     그리고 새로고침 하면 정상적으로 숫자가 보여지게 됩니다.
    이걸 수정할 것인데요별거 아닙니다.
    파일 경로는 다음과 같습니다.
    기본: theme/rb.basic/skin/board/rb_basic/view.skin.php통합: theme/rb.basic/skin/board/rb.bbs/skin/view/basic/skin.php 
    아래 코드를 찾아주세요[code]<div id="bo_v_act">        <?php if ($good_href) { ?>        <span class="bo_v_act_gng">            <a href="<?php if(!$is_member) { ?>javascript:alert('로그인 후 이용하실 수 있습니다.');<?php } else { ?><?php echo $good_href.'&amp;'.$qstr ?><?php } ?>" id="good_button" class="bo_v_good">추천해요 <?php echo number_format($view['wr_good']) ?></a>            <b id="bo_v_act_good" class="font-R"></b>        </span>        <?php } ?>        <?php if ($nogood_href) { ?>        <span class="bo_v_act_gng">            <a href="<?php if(!$is_member) { ?>javascript:alert('로그인 후 이용하실 수 있습니다.');<?php } else { ?><?php echo $nogood_href.'&amp;'.$qstr ?><?php } ?>" id="nogood_button" class="bo_v_nogood">별로에요 <?php echo number_format($view['wr_nogood']) ?></a>            <b id="bo_v_act_nogood" class="font-R"></b>        </span>        <?php } ?>    </div>[/code]
    여기에서 
    [code]<?php echo number_format($view['wr_good']) ?> [/code]
    해당 부분을
    [code]<strong><?php echo number_format($view['wr_good']) ?></strong>[/code]
    요렇게 변경 해주세요
    그리고 바로 밑에 별로에요 부분을 찾아주시구요
    [code]<?php echo number_format($view['wr_nogood']) ?>[/code]
    해당 부분을
    [code]<strong><?php echo number_format($view['wr_nogood']) ?></strong>[/code]
    변경하시면 실시간으로 변경 됩니다.구동 영상은 아래를 참조 하세요
    고맙습니다.

     

    • 58
    • 오래 전
      2025.02.12
  • 오래 전
  • 그누보드5(리빌더) 영카트(쇼핑몰) 끄기/사용안하기
  • 그누보드에선 영카트와 그누보드가 하나로 배포 되고, 설치되어 있습니다.근데, 리빌더 혹은 커뮤니티만 운영하고 싶을 경우 SHOP/마켓/영카트 메뉴가 노출 되어 불편을 겪고 계신 분들이 계실텐데요그럴경우 아래의 간단한 조치만으로 해결 할 수 있습니다.
    data/dbconfig.php를 찾습니다
    해당 파일을 열어코드 찾기define('G5_USE_SHOP', true);를 찾아 true 를, false 로 변경
    예시 :define('G5_USE_SHOP', false);
    false로 바꾸면, 그누보드5 관리자 페이지서 쇼핑몰 관련 메뉴들이 전부 하이드 (숨김)처리 됩니다.
    • 57
    • 오래 전
      2025.02.09
  • 오래 전
  • 관리자 추가
  • 그누보드는 기본적으로 최고관리자 1명, 게시판 관리자는 각 게시판별로 1명만 지정할 수 있습니다.관리자가 여러명 필요할 때 참고하세요.


    /extend/default.config.php 파일에 추가 
    // 최고관리자 (회원id 지정)
    if ($member['mb_id'] == '회원아이디1') $is_admin = 'super';
    if ($member['mb_id'] == '회원아이디2') $is_admin = 'super';


    // 최고관리자 (특정 레벨 지정)
    if ($member['mb_level'] == 회원레벨) $is_admin = 'super';
    • 56
    • 오래 전
      2025.02.07
  • 오래 전
  • 공지사항 접기 기능을 만들어 봅시다.
  • 안녕하세요...미니님a입니다.
    공지사항이 너무 많거나 / 사용자 입장을 고려해 공지 사항 닫기(접기) 기능을 간단하게 구현할 수 있습니다.별도로 스킨으로 올리지 않는 이유는 몇가지 코드만 추가 하면 되기 때문입니다.
    기본의 경우 rb.basic_bbs/list.skin.php 파일을 열어 아래 코드를 찾아주세요통합의 경우 rb.bbs/top/basic/skin.php 파일을 열어 동일하게 아래 코드를 찾아주시면 됩니다.
    [code]<ul class="rb_bbs_top">[/code]
    그리고 그 바로 밑에 다음 코드를 추가 해주세요
    [code]<li><button type="button" class="btn_b01 btn notice_icon" title="공지 닫기"><i class="fa fa-bullhorn" aria-hidden="true"></i><span class="sound_only">공지 닫기</span></button></li>[/code]
    잘 모르겠다? 하시면 아래 스샷 참고 하시면 됩니다.

     
    그리고 조금만 내려 보시면 스크립트가 있는데 아래 코드를 찾아주세요기본/통합 둘다 있는 코드입니다.
    [code] $('#point_info_opens_btn').click(function(event) {                        event.stopPropagation();                         $('.point_info_opens').toggle();                        $(this).toggleClass('act');                    });[/code]
    그리고 여기 밑에 아래 코드를 넣어주시면 됩니다.
    [code]     $("tr:has(.lb_ico_noti)").hide();        let notice_shown = localStorage.getItem('notice_shown');        if (!notice_shown) {            $("tr:has(.lb_ico_noti)").show();        }         $(document).on("click", ".notice_icon", function() {            let noticeKey = 'notice_shown';            if (localStorage.getItem(noticeKey) !== 'true') {                localStorage.setItem(noticeKey, 'true');            } else {                localStorage.removeItem(noticeKey);            }            $("tr:has(.lb_ico_noti)").toggle();        });[/code]
    마찬가지로 스샷 참고 하시면 됩니다.

     끝입니다. 이렇게 하시면 공지 접기가 동작하며,
    로컬스토리지를 이용하기 때문에 새로고침을 하더라도 공지 접기가 유효합니다.
    실 동작은 아래 영상은 참고 하세요
    고맙습니다.
    ※ 힘내서 많은 팁을 공유할 수 있도록 추천 한번 부탁드립니다.

     
    • 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>
    일반 게시판과 통합 게시판 스샷 라인은 다르지만, 코드가 같아 코드 스크린샷은 하나로 통일 합니다.

     위 코드 작성 시 아래 처럼 결과를 볼 수 있습니다.

    당연히 로그인 하시면 즉시 볼 수 있습니다.
    고맙습니다.
    ※ 추천은 구걸이라 배웠습니다. 추천 좀!!! ㅎㅎ
    • 1fb981ab72f4a9a369be618d6c4a4b17_1738738249_3428.png
    • 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% 할인 등)랜덤으로 할인 쿠폰 제공 등등
    사용성에 따라 무궁 무진하게 사용할 수 있을 것입니다.
    고맙습니다.
    • 53
    • 오래 전
      2025.02.03
  • 오래 전
  • 색상 선정에 고민이 있다면 이 글을 클릭 하세요
  • 안녕하세요...미니님a 입니다.
    한번 쯤은 색상이 어울리나? 어떤색을 써야 하나 ? 고민 해보신 적 많으실 것이라 생각됩니다.그래서 개발해봤습니다.
    색상 생성기 + 색상 팔레트(추천기) 입니다.
    https://colorgenerator.kr/
    nextjs15 버전으로 개발 하였으며, 스샷은 다음과 같습니다.
    - 색상 생성기 
    컬러를 입력 시 100 ~ 1000까지의 색상을 추천 해줍니다. 실시간 변경 됩니다.
    클릭 시 복사 가능합니다.
    내보내기 시 보여지는 컬러를 저장할 수 있습니다 (이미지로 저장됨)
    색상 잠금 기능도 추가 하였습니다.


     - 색상 추천기
    색상 선택 시 유사/보색/분할보색1,2 / 삼각 구도 색을 추천 해줍니다.
    내보내기 시 해당 색상을 저장할 수 있습니다.

     

    [테일윈드 색상]
    4.0 버전의 색상 950까지 모두 출력 합니다
    클릭 시 복사가 가능합니다.
    =추가 25.02.04=[이미지 색상 추출]
    이미지 업로드 시 사용된 이미지의 색상을 추출합니다.

     
    [사이트 기능]
    1. 한국어 / 영어 버전을 지원합니다.
    2. 다크 모드를 지원합니다.
    3. 모바일 반응형을 지원합니다.
    고맙습니다.
    • ff4da65fbcbb11b8414ed407a9695655_1738569859_2118.png
    • 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]
    끝 입니다.
    고맙습니다.

    • 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);     } }
    마찬가지로 스샷은 다음과 같습니다.


    이렇게 하시면, 목록에서 조회수 / 추천수 / 비추천수를 관리자가 임의로 수정할 수 있습니다. 
    만약 추천/비추천 미사용 시 미사용이라고 안내가 됩니다.

    고맙습니다.

     
    • da0c4c9be8b6d04d7b206de454053c04_1737606268_1063.png
    • 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]이부분은 생략하고 바로 하단에 있는 코드만 넣어주심 되세요
    이렇게 하시면 해당 개수 이상일 시 포인트를 지급하지 않습니다.
    고맙습니다.
    • 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 } ?>
    어디에 정확하게 넣는지 모르겠다구요 ? 그럼 아래 스샷을 참조 하세요

     이렇게 넣어주시면 됩니다.
    고맙습니다.
    • f2b95d45acc6e6039b0f81c3923de12f_1737417638_7815.png
    • 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>";
    }
    • 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 } ?> 이렇게 변경 해주시면 위 스샷대로 동작할 것입니다.
    고맙습니다.
    • 92cb0a4431cc296878f89f679526fd1a_1737072037_9082.png
    • 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 을 방어할 수 있습니다.
    저희 리빌더도 보안에 신경을 써야 될 것같습니다.감사합니다.
    • 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- 통합 게시판용 소스에 대한 설명 추가

    • 92cb0a4431cc296878f89f679526fd1a_1736923772_5857.png

검색

게시물 검색