그누보드 SE 지원확정 (개발중)
2.2.6.1
리빌더
리빌더
빌더 다운로드
2.2.6.1
공지사항
이벤트
업데이트 노트
업데이트 캘린더
개발실적
이용가이드
부가 기능
부가 기능
전체
게시판
시스템
확장기능
API
최신글
위젯
레이아웃
웹폰트
테마
리빌더 전용테마
전체
기업/서비스
커뮤니티
서비스
부가 서비스
멤버십/라이선스
제작 의뢰
웹뷰 패키징
Rb 에디터
u
2.0.7
Rb 프리미엄(G7)
Rb 어드민
허브
콘텐츠 허브
허브 메인
콘텐츠 전체보기
지원
지원
질문과 답변
버그제보
개선 및 제안
기술지원 요청
포럼
포럼
리빌더 라운지
출석체크
자유 게시판
팁과 노하우
AI
사용후기
실험실
Test
AI
.
Studio
AI
.
Studio
배너 생성
이미지 생성
제품 착용컷
제품 배경컷
패키지/목업
이미지 합성
AI
.
Studio
위젯 메이커
(2.2.6 이후)
많이 검색된 키워드
#
ai
#
스토어
#
코비
#
se
#
위젯
검색조건
제목+내용
제목
내용
회원아이디
이름
and
or
로그인후 이용해주세요.
로그인
회원가입
팁과노하우
검색
포인트정책
팁과노하우 포인트 정책
글쓰기
50P
댓글
10P
전체 147건 / 6 페이지
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 대화하기
인기
356
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 대화하기
인기
615
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 대화하기
인기
447
1
3
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 대화하기
인기
402
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 대화하기
인기
391
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 대화하기
인기
409
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 대화하기
인기
900
3
2
40
오래 전
2024.12.19
오래 전
첨부 이미지 중앙 정렬하기
첨부 이미지는 좌측으로 보여 지는데요.
해당 view.skin.php 부분 186번째 줄 보면 (갤러리 게시판 기준)
echo "<div id=\"bo_v_img\">\n"; 이부분을 아래와 같이 수정해 보세요.echo "<div id=\"bo_v_img\" style='text-align:center'>\n";
<!-- 본문 내용 시작 { --> <div id="bo_v_con"> <?php // 파일 출력 $v_img_count = count($view['file']); if($v_img_count) { echo "<div id="bo_v_img" style='text-align:center'>n"; foreach($view['file'] as $view_file) { echo get_file_thumbnail($view_file); } echo "</div>n"; } ?>
삼다수
미니홈
1:1 대화하기
미니홈
1:1 대화하기
인기
571
2
2
39
오래 전
2024.12.14
오래 전
마우스 오버시 카테고리 메뉴 색상 변경하기
해당 보드의 style.css
402 줄 정도 보면
.rb_bbs_wrap #bo_cate a:hover {background-color: transparent; font-family:'font-B',sans-serif; color:#AA20FF;}
color:#AA20FF; 추가 해주면 마우스 오버시 원하는 색상으로 카테고리 메뉴가 나 옵니다.
삼다수
미니홈
1:1 대화하기
미니홈
1:1 대화하기
인기
462
1
3
38
오래 전
2024.12.09
오래 전
금일 게시글 수 및 댓글 수 그리고 신규회원/총 회원 노출하기
카운터 스킨 /theme/rb.basic/skin/visit/basic/ 경로 파일을 수정 해주시면 됩니다.
<?php if ($is_admin == "super") {?> 이 부분은 관리자만 볼 수 있는 권한 입니다.
[code]<?phpif (!defined("_GNUBOARD_")) exit; // 개별 페이지 접근 불가
global $is_admin;
// add_stylesheet('css 구문', 출력순서); 숫자가 작을 수록 먼저 출력됨add_stylesheet('<link rel="stylesheet" href="'.$visit_skin_url.'/style.css">', 0);
$today_date = date("Y-m-d");$today_sql = "SELECT (SELECT COUNT(*) FROM g5_board_new WHERE DATE(bn_datetime) = '$today_date' AND wr_id = wr_parent) AS write_count, (SELECT COUNT(*) FROM g5_board_new WHERE DATE(bn_datetime) = '$today_date' AND wr_id <> wr_parent) AS comment_count"; $today_query = sql_query($today_sql);$today_result = sql_fetch_array($today_query); $write_count = $today_result['write_count'];$comment_count = $today_result['comment_count'];
global $is_admin;
// add_stylesheet('css 구문', 출력순서); 숫자가 작을 수록 먼저 출력됨add_stylesheet('<link rel="stylesheet" href="'.$visit_skin_url.'/style.css">', 0);
?>
<div class="visit_flex"> <ul><li class="RealCount_t main_color font-B">RealCount</li>
<?php if ($is_admin == "super") {?> <li>금일 게시글수 <span class="font-B"><?php echo number_format($write_count) ?></span></li> <li>금일 댓글수 <span class="font-B"><?php echo number_format($comment_count) ?></span></li> <li>신규회원/총 <span class="font-B"> <!-- 접속자집계 시작 { -->
<?php $sql_m7_COUNT="select COUNT(*) as ma_cou from `g5_member` where mb_open_date >=(curdate()-interval 7 day)"; $row_sql_m7_COUNT = sql_fetch($sql_m7_COUNT); echo $row_sql_m7_COUNT[ma_cou];echo "/"; $sql_m_COUNT="SELECT COUNT(*) as ma_cou FROM `g5_member`"; $row_sql_m_COUNT = sql_fetch($sql_m_COUNT);
echo $row_sql_m_COUNT[ma_cou]; ?> <!-- } 접속자집계 끝 --> </li>
<?php } ?> <li>오늘 <span class="font-B"><?php echo number_format($visit[1]) ?></span></li> <li>어제 <span class="font-B"><?php echo number_format($visit[2]) ?></span></li> <li>최대 <span class="font-B"><?php echo number_format($visit[3]) ?></span></li> <li>전체 <span class="font-B"><?php echo number_format($visit[4]) ?></span></li> </ul></div>[/code]
삼다수
미니홈
1:1 대화하기
미니홈
1:1 대화하기
인기
425
4
1
37
오래 전
2024.12.06
오래 전
오른쪽 마우스 클릭 금지 하기
관리자는 오른쪽 마우스가 활성화 되지만회원들은 오른쪽 마우스가 먹통 됩니다.
sir : glitter0gim 님께서 알려주셨어요.
[code]<?php if (!$is_admin): // 관리자 권한 확인 ?> <script> document.addEventListener("DOMContentLoaded", function() { function disableEvent(event) { event.preventDefault(); } // 마우스 오른쪽 방지 document.body.addEventListener("contextmenu", disableEvent); // 드래그 방지 document.body.addEventListener("dragstart", disableEvent); // 텍스트 방지 document.body.addEventListener("selectstart", disableEvent); // 키보드 방지 document.addEventListener("keydown", function(event) { if ((event.ctrlKey || event.metaKey) && (event.key === 'c' || event.key === 's')) { event.preventDefault(); } }); }); </script><?php endif; ?>[/code]
삼다수
미니홈
1:1 대화하기
미니홈
1:1 대화하기
인기
434
3
1
36
오래 전
2024.11.25
오래 전
게시물 가끔 사진이 위에꺼가 아래에 보이는 현상해결법
썸네일이 아래 글에 썸네일이 없는경우아래글에 위에 썸네일이 보이는증상이 있습니다.처리해야할 빨강색 부분입니다.
$thumb = get_list_thumbnail($board['bo_table'], $list[$i]['wr_id'], $board['bo_gallery_width'], $board['bo_gallery_height'], false, true); if($thumb['src']) { if (strstr($list[$i]['wr_option'], 'secret')) { $img_content = '<img src="'.G5_THEME_URL.'/rb.img/sec_image.png" alt="'.$thumb['alt'].'" >'; } else { $img_content = '<img src="'.$thumb['src'].'" alt="'.$thumb['alt'].'" >'; } } else { // 이미지가 없는 경우 $img_content = ''; }
codesos
미니홈
1:1 대화하기
미니홈
1:1 대화하기
인기
406
3
1
35
오래 전
2024.11.19
오래 전
카카오소셜 토큰 연결끊기
kakao로그인후에 연결해제하거나 탈퇴해도 연결이 토큰 끊기지 않는 부분 아래 admin키를 발급받아서 처리하면됩니다.
function getKakaoUserIdByMbId($mb_id) { global $g5; $sql = "SELECT identifier FROM g5_member_social_profiles WHERE mb_id = '{$mb_id}'"; $row = sql_fetch($sql);
if ($row && isset($row['identifier'])) { return $row['identifier']; // 카카오 user_id 반환 } else { return null; // 카카오 user_id가 없음 }}
function kakaoUnlinkUser($kakaoUserId) { $adminKey = 'xxxxxxxxxxxxxxxxxxxxxxxxxxx'; // 카카오 앱의 관리자 키 $url = 'https://kapi.kakao.com/v1/user/unlink';
$headers = array( "Authorization: KakaoAK $adminKey", "Content-Type: application/x-www-form-urlencoded;charset=utf-8" );
$postData = array( 'target_id_type' => 'user_id', 'target_id' => $kakaoUserId );
$ch = curl_init(); curl_setopt($ch, CURLOPT_URL, $url); curl_setopt($ch, CURLOPT_POST, true); curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query($postData)); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
$response = curl_exec($ch); $statusCode = curl_getinfo($ch, CURLINFO_HTTP_CODE); curl_close($ch);
if ($statusCode == 200) { echo "사용자의 카카오 연결이 성공적으로 해제되었습니다."; return true; } else { echo "연결 해제 실패: " . $response; return false; }}
[사용법]
$kakaoUserId = getKakaoUserIdByMbId($mb_id);//소셜 아이디 구하기 kakaoUnlinkUser($kakaoUserId);//카카오 연결끊기
codesos
미니홈
1:1 대화하기
미니홈
1:1 대화하기
인기
616
2
34
오래 전
2024.11.19
오래 전
상품보기에서 관리자 바로 수정하기
/theme/rb.basic/skin/shop/basic/item.form.skin.php
적당한 곳에 넣으시면 노출 됩니다.
[code]<?php if ($is_admin) { ?><a href="<?php echo G5_URL; ?>/adm/shop_admin/itemform.php?w=u&it_id=<?php echo $it['it_id']; ?>&ca_id=<?php echo $it['ca_id']; ?> <font color="red">제품수정</font></a><?php } ?>[/code]
삼다수
미니홈
1:1 대화하기
미니홈
1:1 대화하기
인기
386
3
33
오래 전
2024.11.19
오래 전
유튜브, 비메오 링크1, 2에 등록하면 본문에서 자동출력 및 재생
안녕하세요 저 아래 댓글에 링크1, 링크2에유튜브 비메오 링크 넣으면 본문에 출력되는 방법을 물어보셔서 이렇게 간단한 방법으로 글 남깁니다.~추가로 게시물을 읽으면 링크의 영상이 바로 자동재생 되도록 하였습니다.이부분은 함수에서 ?autoplay=1&mute=1 이부분에 해당 되니 참고하시면 됩니다.
1. 대상파일 : 게시판 스킨 view_skin.php
2. 상단 php 안에 아래 함수 추가
// 링크1과 링크2에 대해 YouTube, Vimeo, twitter, instagram, 링크를 감지하고 변환function embed_video_with_autoplay($url) { // 유튜브 URL 처리 if (preg_match('/youtu\.be\/([a-zA-Z0-9_-]+)/', $url, $matches) || preg_match('/youtube\.com\/.*v=([a-zA-Z0-9_-]+)/', $url, $matches)) { $video_id = $matches[1]; return "<iframe width='100%' height='315' src='https://www.youtube.com/embed/{$video_id}?autoplay=1&mute=1' frameborder='0' allow='autoplay; encrypted-media' allowfullscreen></iframe>"; } // 비메오 URL 처리 if (preg_match('/vimeo\.com\/(\d+)/', $url, $matches)) { $video_id = $matches[1]; return "<iframe width='100%' height='315' src='https://player.vimeo.com/video/{$video_id}?autoplay=1&mute=1' frameborder='0' allow='autoplay; fullscreen' allowfullscreen></iframe>"; }
// 페이스북 동영상 링크에서 ID를 추출 (https://fb.watch/{video_id}) // 페이스북 동영상 링크에서 ID를 추출 (https://www.facebook.com/{page}/videos/{video_id}) if (preg_match('/fb\.watch\/([a-zA-Z0-9_-]+)/', $url, $matches)) { $video_id = $matches[1]; return "<iframe src='https://www.facebook.com/plugins/video.php?href=https://fb.watch/{$video_id}' width='100%' height='315' frameborder='0' allowfullscreen></iframe>"; }
// 유튜브, 비메오, 트위터, 인스타그램 URL이 아니면 빈 문자열 반환 return "";}
3. style 추가<?php.....?><style>iframe { width: 100%; aspect-ratio: 16 / 9; /* 16:9 비율 */ height: auto; /* 실제 높이는 aspect-ratio에 의해 자동 계산됨 */}</style>
4. 출력할 곳에 아래 코드 추가보통 글 내용 최상단에 출력되려면<?php echo get_view_thumbnail($view['content']); ?> 이부분 바로 위에 아래 코드 추가
<?php // 링크1과 링크2 유튜브 또는 비메오 링크 일 경우 본문에 영상 자동재생 되도록 출력 $link1_embed = $view['link'][1] ? embed_video_with_autoplay($view['link'][1]) : ''; $link2_embed = $view['link'][2] ? embed_video_with_autoplay($view['link'][2]) : '';
// 출력 echo $link1_embed; echo $link2_embed; ?>
이진수
미니홈
1:1 대화하기
미니홈
1:1 대화하기
인기
541
3
0
32
오래 전
2024.11.14
오래 전
Froala Editor 에디터에서 고정이 안되는부분
하단 푸터에집어넣으면에디터가 500px높이로 스크롤되어 고정됩니다.
<style>.fr-wrapper { height: 500px; /* 고정된 높이 */ overflow-y: auto; /* 내용이 넘칠 때 스크롤 추가 */}
/* 모바일 화면에서 높이 조정 */@media (max-width: 768px) { .fr-wrapper { height: 400px; /* 모바일 높이 */ }}
</style>
codesos
미니홈
1:1 대화하기
미니홈
1:1 대화하기
인기
475
1
0
31
오래 전
2024.11.14
오래 전
입점몰 - 주문한 상품 입점사 파트너에게 문자 전송기능
관리자에게만 문자가 전송되어 입점사는 주문들어온것을 알수가 없습니다. 이부분이 핵심기능이라일단 추가해보았습니다.
수정은 간단합니다.mobile하고 pc하고 꼭해야합니다shop/orderformupdate.php 에서
870라인정도에 sms발송하는 기능이 있는데 그 윗줄에 그냥 넣으시면됩니다.
주문한 상품의 입점사에게 문자가 발송되고전화번호 중복되지 않습니다.
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// 입점사 정보 가져오기 코드
include_once(G5_LIB_PATH.'/icode.sms.lib.php');
$sql_partner = "SELECT DISTINCT m.mb_hp FROM g5_member m JOIN g5_shop_cart c ON m.mb_id = c.ct_partner JOIN g5_shop_item i ON i.it_id = c.it_id WHERE m.mb_partner = 2 AND c.od_id = '$od_id' AND i.it_partner = c.ct_partner";$result_partner = sql_query($sql_partner);$partner_numbers = array();
while ($row_partner = sql_fetch_array($result_partner)) { if ($row_partner['mb_hp']) { $formatted_number = preg_replace("/[^0-9]/", "", $row_partner['mb_hp']);//str_replace("-", "", $row_partner['mb_hp']); // 하이픈 제거 if (!in_array($formatted_number, $partner_numbers)) { // 입점사 번호 중복 방지 $partner_numbers[] = $formatted_number; } }}
// SMS 전송 시작if (count($partner_numbers) > 0) { $SMS = new SMS; // SMS 연결 $SMS->SMS_con($config['cf_icode_server_ip'], $config['cf_icode_id'], $config['cf_icode_pw'], $config['cf_icode_server_port']);
foreach ($partner_numbers as $recv_number) {//상품에 해당하는 입점사메시지발송
$send_number = preg_replace("/[^0-9]/", "", $default['de_admin_company_tel']); $sms_content = $default['de_sms_cont3']; // 관리자용 메시지 내용
//내용에 값으로 변환작업실시 $sms_content = str_replace("{이름}", $od_name, $sms_content); $sms_content = str_replace("{보낸분}", $od_name, $sms_content); $sms_content = str_replace("{받는분}", $od_b_name, $sms_content); $sms_content = str_replace("{주문번호}", $od_id, $sms_content); $sms_content = str_replace("{주문금액}", number_format($tot_ct_price + $od_send_cost + (int) $od_send_cost2), $sms_content); $sms_content = str_replace("{회원아이디}", $member['mb_id'], $sms_content); $sms_content = str_replace("{회사명}", $default['de_admin_company_name'], $sms_content);
$sms_content = iconv_euckr($sms_content);//한글깨지지않게 처리 echo $SMS->Add($recv_number, $send_number, $config['cf_icode_id'], $sms_content, "");//메시지발송 }
$SMS->Send(); $SMS->Init(); // 보관하고 있던 결과값을 지웁니다.}
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
아래는 기존 소스 그대로 ...
codesos
미니홈
1:1 대화하기
미니홈
1:1 대화하기
인기
417
1
1
30
오래 전
2024.11.13
오래 전
바로가기 홈으로 등록한경우 당기면 새로고침 안되는부분 해결방법
바로가기 홈으로 등록한 홈페이지가 위에서 아래로 당기면 새로고침이 안되는데pwa에서 이부분이 지원이 안되서 따로 만들어야 한다고 합니다.아래소스는 tail.php 하단에 넣으시면됩니다.
<script src="https://cdnjs.cloudflare.com/ajax/libs/pulltorefreshjs/0.1.22/index.umd.min.js"></script>
<script>
let touchStartY = 0;let touchMoveY = 0;let isPullingDown = false;
const standalone = window.matchMedia("(display-mode: standalone)").matches if(standalone) {
// touchstart 이벤트로 초기 터치 지점 저장window.addEventListener('touchstart', function(event) { // 스크롤이 맨 상단인지 확인 (window.scrollY 또는 다른 방식으로) if (document.body.scrollTop === 0 || document.documentElement.scrollTop === 0) { touchStartY = event.touches[0].clientY; isPullingDown = false; // 초기화 }}, false);
// touchmove 이벤트로 사용자가 스크롤하고 있는지 감지window.addEventListener('touchmove', function(event) {
touchMoveY = event.touches[0].clientY;
// 사용자가 아래로 당기고 스크롤이 맨 상단에 있을 때만 동작 if (touchMoveY > touchStartY && (document.body.scrollTop === 0 || document.documentElement.scrollTop === 0)) { let distancePulled = touchMoveY - touchStartY;
// 일정 거리 이상 당기면 새로고침 동작 감지 if (distancePulled > 50) { isPullingDown = true; console.log('Pulling down detected:', distancePulled, 'px'); // 새로고침 UI 표시 등을 여기에 추가 } }}, false);
// touchend 이벤트로 사용자가 손을 뗐을 때 동작window.addEventListener('touchend', function(event) {
// alert(document.body.scrollTop); if (isPullingDown && document.body.scrollTop<=0) { console.log('Released after pulling down'); // 새로고침 또는 다른 동작 실행 window.location.reload(); // 새로고침 isPullingDown = false; }}, false); }
</script>
codesos
미니홈
1:1 대화하기
미니홈
1:1 대화하기
인기
549
1
29
오래 전
2024.11.11
오래 전
윈도우에서 전원 설정에서 최고의 성능 설정
윈도우(키) + r
cmdpowercfg -duplicatescheme e9a42b02-d5df-448d-aa00-03f14749eb61Copy위에 글자를 복사해서 붙여넣기 한다. 윈도우(키) + r
powercfg.cpl
실행한다 최고의 성능 설정 할수 있다.
캐스퍼
미니홈
1:1 대화하기
미니홈
1:1 대화하기
인기
425
2
0
28
오래 전
2024.11.06
오래 전
게시글에 view.skin.php에서 유투브 링크 삽입하면 바로 영상 플레이되게 하는것
<?php //echo get_view_thumbnail($view['content']); ?>를 추석처리후에 아래처럼 바꿔주세요스타일 넣어주시구요
<style>.youtube_wrap { position: relative; padding-bottom: 56.25%; /* 16:9 aspect ratio */ height: 0; overflow: hidden; max-width: 100%; background: #000; margin-top: 20px;}.youtube_wrap iframe { position: absolute; top: 0; left: 0; width: 100%; height: 100%;}
</style>
<?php // Process the content using get_view_thumbnail $processed_content = get_view_thumbnail($view['content']);
// Further process the output to embed YouTube URLs responsively $processed_content = preg_replace_callback( '/(?<!<a href=")https:\/\/(?:www\.)?(?:youtube\.com\/watch\?v=|youtu\.be\/)([a-zA-Z0-9_-]{11})(?!")/', function($matches) { $youtube_id = $matches[1]; return '<div class="youtube_wrap"> <iframe src="https://www.youtube.com/embed/' . $youtube_id . '" frameborder="0" allow="accelerometer; autoplay; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe> </div>'; }, $processed_content ); echo $processed_content;?>
codesos
미니홈
1:1 대화하기
미니홈
1:1 대화하기
인기
578
4
1
검색
처음
이전
열린
6
페이지
7
페이지
8
페이지
맨끝
검색
게시물 검색
검색대상
제목
내용
제목+내용
글쓴이
글쓴이(코)
검색어
필수
Guest
로그인
회원가입
리빌더
리빌더
빌더 다운로드
2.2.6.1
이용가이드
공지사항
이벤트
업데이트 노트
업데이트 캘린더
개발실적
부가 기능
부가 기능
전체
게시판
시스템
확장기능
API
최신글
위젯
레이아웃
웹폰트
테마
리빌더 전용테마
전체
기업/서비스
커뮤니티
서비스
부가 서비스
멤버십/라이선스
제작 의뢰
웹뷰 패키징
Rb 에디터
u
2.0.7
Rb 프리미엄(G7)
Rb 어드민
허브
콘텐츠 허브
허브 메인
콘텐츠 전체보기
지원
지원
질문과 답변
버그제보
개선 및 제안
기술지원 요청
포럼
포럼
리빌더 라운지
출석체크
자유 게시판
팁과 노하우
AI
사용후기
실험실
Test
AI
.
Studio
AI
.
Studio
배너 생성
이미지 생성
제품 착용컷
제품 배경컷
패키지/목업
이미지 합성