팁과노하우

  • 팁과노하우 포인트 정책
      글쓰기
      100P
      댓글
      10P
  • 전체 35건 / 1 페이지
    • 35
    • 4일 전
      2024.11.19
  • 4일 전
  • 카카오소셜 토큰 연결끊기
  • 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);//카카오 연결끊기
    • 34
    • 4일 전
      2024.11.19
  • 4일 전
  • 상품보기에서 관리자 바로 수정하기
  • /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]
    • 33
    • 4일 전
      2024.11.19
  • 4일 전
  • 유튜브, 비메오 링크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; ?>
    • 32
    • 8일 전
      2024.11.14
  • 8일 전
  • Froala Editor 에디터에서 고정이 안되는부분
  • 하단 푸터에집어넣으면에디터가 500px높이로 스크롤되어 고정됩니다.
    <style>.fr-wrapper {    height: 500px; /* 고정된 높이 */    overflow-y: auto; /* 내용이 넘칠 때 스크롤 추가 */}
    /* 모바일 화면에서 높이 조정 */@media (max-width: 768px) {    .fr-wrapper {        height: 400px; /* 모바일 높이 */    }}
    </style>
    • 31
    • 9일 전
      2024.11.14
  • 9일 전
  • 입점몰 - 주문한 상품 입점사 파트너에게 문자 전송기능
  • 관리자에게만 문자가 전송되어 입점사는 주문들어온것을 알수가 없습니다. 이부분이 핵심기능이라일단 추가해보았습니다.
    수정은 간단합니다.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(); // 보관하고 있던 결과값을 지웁니다.}
    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

    아래는 기존 소스 그대로 ...

    • 30
    • 9일 전
      2024.11.13
  • 9일 전
  • 바로가기 홈으로 등록한경우 당기면 새로고침 안되는부분 해결방법
  • 바로가기 홈으로 등록한 홈페이지가 위에서 아래로 당기면 새로고침이 안되는데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>
    • 29
    • 11일 전
      2024.11.11
  • 11일 전
  • 윈도우에서 전원 설정에서 최고의 성능 설정
  • 윈도우(키) + r 
    cmdpowercfg -duplicatescheme e9a42b02-d5df-448d-aa00-03f14749eb61Copy위에 글자를 복사해서 붙여넣기 한다. 윈도우(키) + r 
    powercfg.cpl
    실행한다 최고의 성능 설정 할수 있다. 
    • 28
    • 17일 전
      2024.11.06
  • 17일 전
  • 게시글에 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;?>
    • 27
    • 18일 전
      2024.11.05
  • 18일 전
  • 데이터 이전 후 모바일 이미지 늘어 나는 현상 해결
  • 본문 내용을아래와 같이 수정해주면 정상적으로 노출이 됩니다.
    <!-- 본문 내용 시작 { --> <div id="bo_v_con"><?php echo get_view_thumbnail(preg_replace("/height:[0-9]+px/","",$view['content'])); ?></div> <?php //echo $view['rich_content']; // 과 같은 코드를 사용할 경우 ?> <!-- } 본문 내용 끝 -->
    • 26
    • 20일 전
      2024.11.02
  • 20일 전
  • 모바일 하단 퀵 아이콘 버튼을 어플같은 느낌으로 수정
  • 하단 rb.layout_ft/footer.php 를 수정하시면됩니다.기존것은 아이콘만 있어서 검정배경에 약간 어플같은 느낌이 없습니다.이것을 어플같이 하단에 글자가 나오게 수정한것입니다.

    <style>.tail_fixed_gnb {    display: flex;    justify-content: space-around;    align-items: center;    background-color: #ff4078 !important; /* Dark gray background */    padding: 10px 0;}
    .footer-button {    display: flex;    flex-direction: column;    align-items: center;    color: white;    text-align: center;    width: 60px; /* Width can be adjusted as needed */}
    .footer-button button {// color: #444444; /* Set background color for the icon */}
    .footer-button svg {margin-left:-5px;    width: 32px; /* Increase icon size for better visibility */    height: 32px;    margin-bottom: 5px; /* Space between icon and text */    display: block;}
    .footer-button span {margin-top:5px;    font-size: 12px;    color: #fff; /* White color for text */    text-align: center; padding-left:10px;}
    </style>
    <div class="tail_fixed_gnb mobile main_rb_bg">    <div class="footer-button">        <button type="button" onclick="location.href='<?php echo G5_SHOP_URL ?>/cart.php';" title="장바구니">            <!-- SVG Icon --> <svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">            <g clip-path="url(#clip0_526_6)">            <path d="M7.5 19C7.89782 19 8.27936 19.158 8.56066 19.4393C8.84196 19.7206 9 20.1022 9 20.5C9 20.8978 8.84196 21.2794 8.56066 21.5607C8.27936 21.842 7.89782 22 7.5 22C7.10218 22 6.72064 21.842 6.43934 21.5607C6.15804 21.2794 6 20.8978 6 20.5C6 20.1022 6.15804 19.7206 6.43934 19.4393C6.72064 19.158 7.10218 19 7.5 19ZM17.5 19C17.8978 19 18.2794 19.158 18.5607 19.4393C18.842 19.7206 19 20.1022 19 20.5C19 20.8978 18.842 21.2794 18.5607 21.5607C18.2794 21.842 17.8978 22 17.5 22C17.1022 22 16.7206 21.842 16.4393 21.5607C16.158 21.2794 16 20.8978 16 20.5C16 20.1022 16.158 19.7206 16.4393 19.4393C16.7206 19.158 17.1022 19 17.5 19ZM3 2C4.726 2 6.023 3.283 6.145 5H19.802C20.095 4.99996 20.3844 5.06429 20.6498 5.18844C20.9152 5.31259 21.15 5.49354 21.3378 5.71848C21.5255 5.94342 21.6615 6.20686 21.7362 6.49017C21.8109 6.77348 21.8224 7.06974 21.77 7.358L20.133 16.358C20.0492 16.8188 19.8062 17.2356 19.4466 17.5357C19.0869 17.8357 18.6334 18.0001 18.165 18H6.931C6.42514 18 5.93807 17.8083 5.56789 17.4636C5.1977 17.1188 4.97192 16.6466 4.936 16.142L4.136 4.929C4.09 4.31 3.564 4 3 4C2.73478 4 2.48043 3.89464 2.29289 3.70711C2.10536 3.51957 2 3.26522 2 3C2 2.73478 2.10536 2.48043 2.29289 2.29289C2.48043 2.10536 2.73478 2 3 2Z" fill="white"/>            </g>            <defs>            <clipPath id="clip0_526_6">            <rect width="24" height="24" fill="white"/>            </clipPath>            </defs>            </svg>        </button>        <span>장바구니</span>    </div>
        <div class="footer-button">        <button type="button" onclick="location.href='<?php echo G5_SHOP_URL ?>/orderinquiry.php';" title="주문조회">            <!-- SVG Icon -->            <svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">            <g clip-path="url(#clip0_655_31)">            <path fill-rule="evenodd" clip-rule="evenodd" d="M6 3.586C6.37499 3.2109 6.88361 3.00011 7.414 3H16.586C17.1164 3.00011 17.625 3.2109 18 3.586L20.414 6C20.7891 6.37499 20.9999 6.88361 21 7.414V19C21 19.7956 20.6839 20.5587 20.1213 21.1213C19.5587 21.6839 18.7956 22 18 22H6C5.20435 22 4.44129 21.6839 3.87868 21.1213C3.31607 20.5587 3 19.7956 3 19V7.414C3.00011 6.88361 3.2109 6.37499 3.586 6L6 3.586ZM16.586 5H7.414L5.414 7H18.586L16.586 5ZM10 12C10 11.7348 9.89464 11.4804 9.70711 11.2929C9.51957 11.1054 9.26522 11 9 11C8.73478 11 8.48043 11.1054 8.29289 11.2929C8.10536 11.4804 8 11.7348 8 12C8 13.0609 8.42143 14.0783 9.17157 14.8284C9.92172 15.5786 10.9391 16 12 16C13.0609 16 14.0783 15.5786 14.8284 14.8284C15.5786 14.0783 16 13.0609 16 12C16 11.7348 15.8946 11.4804 15.7071 11.2929C15.5196 11.1054 15.2652 11 15 11C14.7348 11 14.4804 11.1054 14.2929 11.2929C14.1054 11.4804 14 11.7348 14 12C14 12.5304 13.7893 13.0391 13.4142 13.4142C13.0391 13.7893 12.5304 14 12 14C11.4696 14 10.9609 13.7893 10.5858 13.4142C10.2107 13.0391 10 12.5304 10 12Z" fill="white"/>            </g>            <defs>            <clipPath id="clip0_655_31">            <rect width="24" height="24" fill="white"/>            </clipPath>            </defs>            </svg>        </button>        <span>주문조회</span>    </div>
        <div class="footer-button">        <button type="button" onclick="location.href='<?php echo G5_SHOP_URL ?>';" title="홈">            <!-- SVG Icon -->            <svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg" title="홈">            <g clip-path="url(#clip0_526_18)">            <path fill-rule="evenodd" clip-rule="evenodd" d="M10.772 2.68799C11.1231 2.41488 11.5552 2.2666 12 2.2666C12.4448 2.2666 12.8769 2.41488 13.228 2.68799L21.612 9.20799C22.365 9.79499 21.949 11 20.997 11H20V19C20 19.5304 19.7893 20.0391 19.4142 20.4142C19.0391 20.7893 18.5304 21 18 21H5.99998C5.46955 21 4.96084 20.7893 4.58577 20.4142C4.2107 20.0391 3.99998 19.5304 3.99998 19V11H3.00298C2.04998 11 1.63598 9.79399 2.38798 9.20899L10.772 2.68799Z" fill="white"/>            </g>            <defs>            <clipPath id="clip0_526_18">            <rect width="24" height="24" fill="white"/>            </clipPath>            </defs>            </svg>        </button>        <span>홈</span>    </div>
        <div class="footer-button">        <button type="button" onclick="location.href='<?php echo G5_SHOP_URL ?>/wishlist.php';" title="위시리스트">            <!-- SVG Icon --><svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">    <path d="M12 21.35l-1.45-1.32C5.4 15.36 2 12.28 2 8.5 2 5.42 4.42 3 7.5 3c1.74 0 3.41.81 4.5 2.09C13.09 3.81 14.76 3 16.5 3 19.58 3 22 5.42 22 8.5c0 3.78-3.4 6.86-8.55 11.54L12 21.35z" fill="white"/></svg>
            </button>        <span>즐겨찾기</span>    </div>
        <div class="footer-button">        <button type="button" onclick="location.href='<?php echo G5_SHOP_URL ?>/couponzone.php';" title="쿠폰존">            <!-- SVG Icon -->            <svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">            <path fill-rule="evenodd" clip-rule="evenodd" d="M10.537 2.16395C10.9407 2.12722 11.3477 2.1727 11.7334 2.29765C12.1191 2.4226 12.4755 2.62443 12.781 2.89095L12.931 3.03095L20.753 10.854C21.2913 11.3924 21.6048 12.1153 21.6298 12.8763C21.6549 13.6372 21.3897 14.3793 20.888 14.952L20.753 15.096L15.096 20.753C14.5576 21.2913 13.8346 21.6047 13.0736 21.6298C12.3127 21.6549 11.5707 21.3897 10.998 20.888L10.854 20.753L3.02998 12.93C2.74346 12.6434 2.51795 12.3019 2.36705 11.9258C2.21615 11.5498 2.14299 11.147 2.15198 10.742L2.16299 10.537L2.63498 5.35195C2.69558 4.68374 2.97844 4.05512 3.43834 3.56658C3.89824 3.07803 4.50864 2.75776 5.17198 2.65695L5.35098 2.63595L10.537 2.16395ZM8.02399 8.02495C7.83823 8.21071 7.69088 8.43123 7.59035 8.67393C7.48982 8.91663 7.43808 9.17676 7.43808 9.43945C7.43808 9.70215 7.48982 9.96227 7.59035 10.205C7.69088 10.4477 7.83823 10.6682 8.02399 10.854C8.20974 11.0397 8.43026 11.1871 8.67296 11.2876C8.91566 11.3881 9.17579 11.4399 9.43849 11.4399C9.70118 11.4399 9.96131 11.3881 10.204 11.2876C10.4467 11.1871 10.6672 11.0397 10.853 10.854C11.2281 10.4788 11.4389 9.96999 11.4389 9.43945C11.4389 8.90891 11.2281 8.4001 10.853 8.02495C10.4778 7.6498 9.96903 7.43905 9.43849 7.43905C8.90795 7.43905 8.39913 7.6498 8.02399 8.02495Z" fill="white"/>            </svg>        </button>        <span>xxxxxxx</span>    </div></div>
    • 25
    • 20일 전
      2024.11.02
  • 20일 전
  • 햄버거 좌측 사이드 아이콘을 서브페이지에서 < 백버튼으로 나오게하기
  • 어플같이 삼선이 나오는게 아닌 서브페이지에서 < 백버튼 나오게 하는법입니다
    header.php 를 수정하시면됩니다.
    아래는 백버튼이 나오지 않게 하는 화면입니다. 이화면만 제외하고 모두 백버튼이 나옵니다.<?php$urls_with_hamburger = [    "https://xxx.co.kr/shop",    "https://xxx.co.kr/shop/",    "https://xxx.co.kr",    "https://xxx.co.kr/",    "https://xxx.co.kr/shop/cart.php",    "https://xxx.co.kr/shop/orderinquiry.php",    "https://xxx.co.kr/shop/wishlist.php",    "https://xxx.co.kr/shop/couponzone.php"];$current_url = "https://" . $_SERVER['HTTP_HOST'] . $_SERVER['REQUEST_URI'];?>


            <?php if (in_array($current_url, $urls_with_hamburger)) { ?>            <!-- 기존 햄버거메뉴-->            <button type="button" alt="메뉴열기" id="tog_gnb_mobile">                <svg width="18" height="16" viewBox="0 0 18 16" fill="none" xmlns="http://www.w3.org/2000/svg">                    <path d="M17 14C17.2549 14.0003 17.5 14.0979 17.6854 14.2728C17.8707 14.4478 17.9822 14.687 17.9972 14.9414C18.0121 15.1958 17.9293 15.4464 17.7657 15.6418C17.6021 15.8373 17.3701 15.9629 17.117 15.993L17 16H1C0.74512 15.9997 0.499968 15.9021 0.314632 15.7272C0.129296 15.5522 0.017765 15.313 0.00282788 15.0586C-0.0121092 14.8042 0.0706746 14.5536 0.234265 14.3582C0.397855 14.1627 0.629904 14.0371 0.883 14.007L1 14H17ZM17 7C17.2652 7 17.5196 7.10536 17.7071 7.29289C17.8946 7.48043 18 7.73478 18 8C18 8.26522 17.8946 8.51957 17.7071 8.70711C17.5196 8.89464 17.2652 9 17 9H1C0.734784 9 0.48043 8.89464 0.292893 8.70711C0.105357 8.51957 0 8.26522 0 8C0 7.73478 0.105357 7.48043 0.292893 7.29289C0.48043 7.10536 0.734784 7 1 7H17ZM17 0C17.2652 0 17.5196 0.105357 17.7071 0.292893C17.8946 0.48043 18 0.734784 18 1C18 1.26522 17.8946 1.51957 17.7071 1.70711C17.5196 1.89464 17.2652 2 17 2H1C0.734784 2 0.48043 1.89464 0.292893 1.70711C0.105357 1.51957 0 1.26522 0 1C0 0.734784 0.105357 0.48043 0.292893 0.292893C0.48043 0.105357 0.734784 0 1 0H17Z" fill="#09244B"/>                </svg>            </button>        <?php } else { ?>            <!-- 아이폰 스타일 백버튼 --><button type="button" onclick="history.back();" alt="뒤로가기" id="back_button">    <svg width="18" height="16" viewBox="0 0 18 16" fill="none" xmlns="http://www.w3.org/2000/svg">        <path d="M10 1L2 8L10 15" stroke="#09244B" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/>    </svg></button>        <?php } ?>
    • 24
    • 24일 전
      2024.10.30
  • 24일 전
  • 자동링크 함수 정규식 수정 (Url 뒤에 괄호 등이 붙는경우 처리방식 개선)
  • 그누보드 원본에서 제공하는 자동링크 관련 입니다.
    2.1 패치에 포함하려고 했으나 수정해야되는 파일이 그누보드에서 업데이트가 자주 있는 핵심파일이라선택적으로 사용하실 수 있도록 코드를 알려드립니다.
    문제) @bank365님 제보댓글 등에서 http, https 를 포함한 링크 삽입시 아래와같은 형태인경우(https://naver.com) 마지막의 괄호가 포함되어 링크가 만들어지는 문제.
    해결)/lib/common.lib.php 256라인 의 함수를 아래와 같이 변경해주세요.
    Url 마지막에 ) ] } 문자가 있을때 링크에 포함하지 않습니다.
    [code]function url_auto_link($str){    global $g5;    global $config;
        $attr_nofollow = (function_exists('check_html_link_nofollow') && check_html_link_nofollow('url_auto_link')) ? ' rel="nofollow"' : '';    $str = str_replace(array("&lt;", "&gt;", "&amp;", "&quot;", "&nbsp;", "&#039;"), array("\t_lt_\t", "\t_gt_\t", "&", "\"", "\t_nbsp_\t", "'"), $str);        // 정규식 수정: URL 마지막에 ) ] } 문자가 올 경우 제외    $str = preg_replace("/([^(href=\"?'?)|(src=\"?'?)]|\(|^)((http|https|ftp|telnet|news|mms):\/\/[a-zA-Z0-9\.-]+\.[가-힣\xA1-\xFEa-zA-Z0-9\.:&#!=_\?\/~\+%@;\-\|\,]+)(?<![\)\]\}])/i", "\\1<A HREF=\"\\2\" TARGET=\"{$config['cf_link_target']}\" $attr_nofollow>\\2</A>", $str);        $str = preg_replace("/(^|[\"'\s(])(www\.[^\"'\s()]+)/i", "\\1<A HREF=\"http://\\2\" TARGET=\"{$config['cf_link_target']}\" $attr_nofollow>\\2</A>", $str);    $str = preg_replace("/[0-9a-z_-]+@[a-z0-9._-]{4,}/i", "<a href=\"mailto:\\0\" $attr_nofollow>\\0</a>", $str);    $str = str_replace(array("\t_nbsp_\t", "\t_lt_\t", "\t_gt_\t", "'"), array("&nbsp;", "&lt;", "&gt;", "&#039;"), $str);
        return run_replace('url_auto_link', $str);}[/code]
    감사합니다.
    • 23
    • 오래 전
      2024.10.24
  • 오래 전
  • mp4 파일 업로드 시 자동 재생 (스킨 파일 첨부)
  • +첨부 파일은rb.basic_bbs rb.gallery_bbs rb.notice_bbs (해당 게시판 미사용시 이 폴더는 지워주세요) rb.thumb_bbs 게시판의 view.skin.php 파일 입니다.소스편집 하기 귀찮은 분들은 파일만 덮어씌우기 해주세요(기존 올렸던 내용에 코드맹들을 위한 5개 업로드시까지 영상플레이 수작업 해놓았습니다.)=================================================
    게시판에 mp4파일이 첨부되어 있으면
    본문 내용 서 영상을 자동 플레이 시켜주는 팁입니다. mp4 업로드 시 자동 재생 할 게시판 폴더 안에 ex// /theme/rb.basic/skin/board/게시판스킨/ 혹은 /skin/board/게시판스킨/서 view.skin.php 파일을 찾은 후 가장 하단에 <!-- MP4 영상재생1  --><?php if (!empty($view['file'][0]['file'])): ?>    <?php if (str_replace('.mp4', '', $view['file'][0]['file']) != $view['file'][0]['file']): ?>        <script>        bo_v_con.innerHTML = "<video style='display:block;height:500px;width:auto;' src='<?php echo $view['file'][0]['path']."/".$view['file'][0]['file']; ?>' autoplay loop controls controlslist='nodownload'></video>" + bo_v_con.innerHTML;         </script>    <?php endif; ?><?php endif; ?> 위 소스를 첨부하면 됩니다. ※ 추가 설명['file'][0]['file']['file'][0]['file'] 와 ['file'][0]['file']['file'][0]['path'] 와 ['file'][0]['file']에 들어간숫자 0 다섯 개 는첫 번째 첨부 파일로 mp4 업로드 시 영상 재생두 번째로 업로드한 mp4 파일을 영상 재생하려면 0을 모두 1로세 번째로 업로드한 mp4 파일을 영상 재생하려면 0을 2로 바꿔주면 됩니다.나머지 순번도 같은 방식으로 설정 하면 됩니다.※ 여러 개의 mp4 를 첨부하고자 할 경우 위 소스를 복사+붙여 넣기 후 "※ 추가 설명" 부분 숫자만 바꿔주세요. 저같은 경우 첨부파일 갯수를 최대10개로 작성후, 위소스를 10번 작성하여 "※ 추가 설명" 부분만 바꿔준후 10건안에 업로드된 영상만 플레이 되게 해놓았습니다. 친 형님께서 본 소스를 편집&제공해 주셨습니다.감사합니다. +파일첨부 5개 이하 동영상 플레이<!-- MP4 영상재생1  --><?php if (!empty($view['file'][0]['file'])): ?>    <?php if (str_replace('.mp4', '', $view['file'][0]['file']) != $view['file'][0]['file']): ?>        <script>        bo_v_con.innerHTML = "<video style='display:block;height:500px;width:auto;' src='<?php echo $view['file'][0]['path']."/".$view['file'][0]['file']; ?>' autoplay loop controls controlslist='nodownload'></video>" + bo_v_con.innerHTML;         </script>    <?php endif; ?><?php endif; ?>
    <!-- MP4 영상재생2  --><?php if (!empty($view['file'][1]['file'])): ?>    <?php if (str_replace('.mp4', '', $view['file'][1]['file']) != $view['file'][1]['file']): ?>        <script>        bo_v_con.innerHTML = "<video style='display:block;height:500px;width:auto;' src='<?php echo $view['file'][1]['path']."/".$view['file'][1]['file']; ?>' autoplay loop controls controlslist='nodownload'></video>" + bo_v_con.innerHTML;         </script>    <?php endif; ?><?php endif; ?>
    <!-- MP4 영상재생3  --><?php if (!empty($view['file'][2]['file'])): ?>    <?php if (str_replace('.mp4', '', $view['file'][2]['file']) != $view['file'][2]['file']): ?>        <script>        bo_v_con.innerHTML = "<video style='display:block;height:500px;width:auto;' src='<?php echo $view['file'][2]['path']."/".$view['file'][2]['file']; ?>' autoplay loop controls controlslist='nodownload'></video>" + bo_v_con.innerHTML;         </script>    <?php endif; ?><?php endif; ?>
    <!-- MP4 영상재생4  --><?php if (!empty($view['file'][3]['file'])): ?>    <?php if (str_replace('.mp4', '', $view['file'][3]['file']) != $view['file'][3]['file']): ?>        <script>        bo_v_con.innerHTML = "<video style='display:block;height:500px;width:auto;' src='<?php echo $view['file'][3]['path']."/".$view['file'][3]['file']; ?>' autoplay loop controls controlslist='nodownload'></video>" + bo_v_con.innerHTML;         </script>    <?php endif; ?><?php endif; ?>
    <!-- MP4 영상재생5  --><?php if (!empty($view['file'][4]['file'])): ?>    <?php if (str_replace('.mp4', '', $view['file'][4]['file']) != $view['file'][4]['file']): ?>        <script>        bo_v_con.innerHTML = "<video style='display:block;height:500px;width:auto;' src='<?php echo $view['file'][4]['path']."/".$view['file'][4]['file']; ?>' autoplay loop controls controlslist='nodownload'></video>" + bo_v_con.innerHTML;         </script>    <?php endif; ?><?php endif; ?>
    • 22
    • 오래 전
      2024.10.24
  • 오래 전
  • 모바일 안드로이드에서 바탕화면 설치 바로가기 만들기
  • 안녕하세요^^가입후 팁올립니다.모바일 안드로이드에서 바탕화면 설치 바로가기 만들기 팁올립니다.
    지원되는 모바일웹에서만 버튼이 표시되고 해당 버튼은 바로가기가 설치되면 자동 사라집니다.
    1. head.sub.php에  이것추가해주시구요
    <link rel="manifest" href="<?=G5_URL?>/manifest.json">

    2.root에 manifest.json파일 만들어 주고 이름설정해줍니다. 일단 급하신대로 src 이미지는 안넣어도 됩니다.
    {  "name": "xx홈페이지 바로가기",  "short_name": "xx홈페이지",  "start_url": "/",  "display": "standalone",  "background_color": "#ffffff",  "theme_color": "#000000",  "icons": [    {      "src": "xxxxxx/icon-192x192.png",      "type": "image/png",      "sizes": "192x192"    },    {      "src": "xxxxx/icon-512x512.png",      "type": "image/png",      "sizes": "512x512"    }  ]}
    3.검색옆에 +아이콘이 이버튼을 누르면 바탕화면바로가기 아이콘이 생깁니다.

    header.php 헤더상단에추가
    <button id="installButton" type="button" alt="바로가기 추가" class="mobile" style="padding-left:0px;" title="바로가기 추가">    <svg width="20" height="20" viewBox="0 0 20 20" fill="none" xmlns="http://www.w3.org/2000/svg">    <path fill-rule="evenodd" clip-rule="evenodd" d="M10 0C4.47715 0 0 4.47715 0 10C0 15.5228 4.47715 20 10 20C15.5228 20 20 15.5228 20 10C20 4.47715 15.5228 0 10 0ZM10 18C5.58172 18 2 14.4183 2 10C2 5.58172 5.58172 2 10 2C14.4183 2 18 5.58172 18 10C18 14.4183 14.4183 18 10 18ZM10 5C9.44772 5 9 5.44772 9 6V9H6C5.44772 9 5 9.44772 5 10C5 10.5523 5.44772 11 6 11H9V14C9 14.5523 9.44772 15 10 15C10.5523 15 11 14.5523 11 14V11H14C14.5523 11 15 10.5523 15 10C15 9.44772 14.5523 9 14 9H11V6C11 5.44772 10.5523 5 10 5Z" fill="#09244B"/>    </svg></button>                        
    <script>$(document).ready(function() {  // 버튼을 기본적으로 숨김  $('#installButton').hide();
      // PWA 설치 가능 여부 확인  if (window.matchMedia('(display-mode: standalone)').matches) {    // 이미 설치된 경우 버튼 숨기기    console.log('이미 홈 화면에 추가되었습니다.');    $('#installButton').hide();  } else {    // 설치 가능할 때 이벤트 발생    window.addEventListener('beforeinstallprompt', (e) => {      e.preventDefault();      deferredPrompt = e;
          // 지원되는 브라우저에서만 버튼을 보이게 함      $('#installButton').show();
          // 버튼 클릭 시 설치 프로세스 시작      $('#installButton').on('click', function() {        deferredPrompt.prompt();        deferredPrompt.userChoice.then((choiceResult) => {          if (choiceResult.outcome === 'accepted') {            alert('사용자가 홈 화면에 추가를 승인했습니다.');          } else {            alert('사용자가 홈 화면에 추가를 거절했습니다.');          }          deferredPrompt = null; // 이벤트 리셋        });      });    });  }});</script>
    • 21
    • 오래 전
      2024.10.23
  • 오래 전
  • 구글 애드센스 광고 없을 때 여백 없애기
  • 구글 애드센스를 넣었는데광고가 안뜰 때 그 공간이 여백으로 보지는데요.
    아래와 같이 넣어 주면광고가 없을 때는 여백 없이 나오고광고가 있을 때는 광고가 보여 집니다.
    좀 더 깔끔한 홈페이지 운영에 도움이 될 듯 합니다.

    /theme/rb.basic/rb.css/style.css
    ins.adsbygoogle[data-ad-status="unfilled"] {  display: none !important;}

검색

게시물 검색
구매 신청
  • 신용카드 결제는 별도상담을 통해 가능합니다.
    구매문의 : cs@false9.co.kr / 010-6466-3355
    신청 이후 담당자가 개별연락 드리고 있습니다.
    입금자명과 실제 입금자가 동일한 경우 자동처리 됩니다.
  • 결제예정 금액 : 0 (VAT별도)
    하나은행(KOEXKRSE) : 258-910104-00407 / 김은정(인덱스)

  •  
  • 신청 및 FCM 가이드
      안드로이드 웹앱 및 푸시알림을 사용하기위한 A-Z!
      잘 따라오시면 어렵지 않습니다.

      1. FCM (Firebase Cloud Messaging) 세팅하기

      1-1. 시작하기
      https://console.firebase.google.com?hl=ko 으로 접속하여 [시작하기] 를 클릭합니다. FCM은 구글계정이 있으면 무료로 사용 가능 합니다.




      1-2. 프로젝트 생성하기
      [프로젝트 시작하기] 를 클릭합니다.




      프로젝트의 이름을 설정합니다.
      앱이름(사이트명, 상호명)을 영문으로 입력하는것이 가장 좋습니다.
      입력하셨다면 [계속] 을 클릭해주세요.




      애널리틱스 사용설정을 활성화 해주시고(선택사항)
      [계속] 을 클릭해주세요.




      애널리틱스 위치를 [대한민국] 또는 거주국가를 선택하시고 약관 동의 후 [프로젝트 만들기] 를 클릭해주세요.




      프로젝트 생성이 완료 되었습니다. [계속] 을 클릭하시면 FCM메인페이지로 이동 합니다.




      1-3. 앱 생성하기
      이전 단계에서 프로젝트를 생성했습니다.
      이제 프로젝트안에 안드로이드 앱을 생성해보겠습니다.

      FCM 메인 중앙에 주황색 동그란 버튼이 3개 있습니다.
      가운데에 있는 (안드로이드 로고) 버튼을 클릭해주세요.




      버튼을 클릭하셨다면 앱등록 창이 오픈 됩니다.
      안드로이드 패키지 이름 및 앱 닉네임을 입력하세요.

      패키지 이름은 반드시 com.webview.앱영문명 으로 입력하셔야 합니다.
      com.webview. 를 반드시 넣어주셔야 합니다.
      입력 예) com.webview.rebuilder

      앱 닉네임은 사이트명이나 상호명, 앱이름 등을 입력해주시면 됩니다.
      디버그 서명은 입력하지 않아도 됩니다.

      입력을 마치셨다면 [앱등록] 을 클릭해주세요.
      다음페이지로 넘어간다면, 입력하신 패키지명 (com.webview.앱영문명) 을 메모장에 메모해주세요.





      [google-services.json 다운로드] 버튼을 클릭하셔서 파일을 다운받아 주세요.
      다운을 받으셨다면 [다음] 을 클릭해주세요.




      Groovy(build.gradle) 선택하신 후 [다음] 을 클릭해주세요.




      앱 생성이 완료 되었습니다.
      [콘솔로 이동] 을 클릭하시면 메인으로 이동 됩니다.




      1-4. 비공개 키파일 생성하기
      거의 다왔습니다. 조금만 더 힘내세요.
      저도 이거 작성하느라 무쟈게 힘들었습니다. 리빌더화이팅.

      화면 상단에 아까 입력하신 이름으로 앱이 생성된게 보이신다면,
      좌측 상단에 [프로젝트 개요] 메뉴 옆에 톱니바퀴 아이콘을 클릭하여
      [프로젝트 설정] 으로 이동해주세요.




      프로젝트 설정으로 오셨다면 상단 탭메뉴에서 [서비스 계정] 을 클릭하세요.





      화면 아래쪽에 있는 [새 비공개 키 생성] 을 클릭하세요.

      키파일은 버튼 클릭시 자동으로 다운로드 됩니다.
      중요한 파일이므로 파일을 타인에게 공개하거나 해서는 안됩니다.





      친절하게 중요한 파일임을 알려줍니다.
      [키 생성] 을 클릭하면 json 파일이 다운로드 됩니다.




      다운로드된 파일은 rebuilder-demo-a4cc0-firebase-adminsdk-au83h-41e4b5df03.json 과 같은식으로 저장됩니다.
      이름이 너무 긴 관계로 임의파일명으로 변경해주세요.
      가이드에서는 key.json 으로 설명하겠습니다.

      이제 준비는 모두 끝났습니다!
      바탕화면에 1-3에서 다운로드 했던 google-services.json 파일과,
      방금 이름을 변경했던 key.json 파일이 있다면 잘 하셨습니다. (파일아이콘은 무시해주세요. 다를 수 있습니다.)




      2. 리빌더 앱관리 설정하기

      2-1. 파일 업로드하기
      위 단계에서 이름을 변경했던 key.json 파일을 사용하시는 웹서버(웹호스팅)에 FTP 프로그램으로 접속하여 업로드 해주세요.
      업로드 위치는 /data/push/key.json 입니다.

      2-2. 앱관리 설정하기
      관리자모드 > 빌더설정 > 앱관리 메뉴로 이동해주세요.
      [앱관리] 메뉴가 없다면 리빌더 공식홈페이지 > 유료기능 다운로드 에서 [안드로이드 하이브리드 웹앱 + Push 알림] 기능을 다운로드 후 설치해주세요.
      바로가기 > https://rebuilder.co.kr/membership/30

      설치가 되셨다면 관리자모드 > 빌더설정 > 앱관리 메뉴로 이동해주세요.

      스크롤을 내리시면 [FCM 설정] 섹션이 있습니다.
      FCM 패키지명, FCM 프로젝트 ID, FCM 비공개키파일 항목을 모두 입력 하시고
      [확인] 을 클릭해주시면 설정은 마무리 됩니다.




      [FCM 패키지명]
      1-3 에서 설정했던 com.webview.앱영문명 을 입력하시면 됩니다.

      [FCM 프로젝트 ID]
      1-4 에서 이동했던 [프로젝트 설정] 페이지로 이동하시면 내 프로젝트 섹션에서 확인하실 수 있습니다. (스샷참조)

      [FCM 비공개키파일]
      위에서 임의파일명으로 변경했던 파일명 key.json 을 입력하시면 됩니다.




      고생하셨습니다. 모든 설정이 완료 되었습니다.
      1-3 에서 다운로드 했던 google-services.json 파일은
      신청서에 첨부해주셔야 합니다.


      창을 닫아주시고, 신청을 계속해주세요!