2026, 새로운 도약을 시작합니다.

get_menu_db 메뉴 함수에 도메인 자동으로 추가하기

· 3개월 전 · 167 · 1

안녕하세요. 비버팩토리 입니다.

작업도중에 메뉴 함수쪽에는 도메인이 빠져있어서 자동으로 추가되게 수정했습니다.

관리자 페이지 보면 메뉴 관리가 있습니다.

예를들어서 /bbs/content.php?co_id=company 이런식으로

도메인을 깜빡하고 입력 안한채로 저장 했을경우 

자동으로 잡히게 수정했습니다. 

훅 (hook)으로 만들었기 때문에 extend 확장해서 사용하셔도 되고 따로 라이브러리 보관하셔도 됩니다.

코드 만족 하신다면 추천부탁드립니다.

유지보수 문의 주세요

https://kmong.com/gig/546111

카카오톡문의

https://open.kakao.com/o/sHmfqQde

텔레그램

@beaverfactory 

[code]

add_replace('get_menu_db', function ($use_mobile) {
    global $g5;

    // 1) 훅 인자가 배열로 올 수 있음 → 첫 요소만 사용
    if (is_array($use_mobile)) {
        $use_mobile = $use_mobile[0] ?? 0;
    }

    // 2) bool/문자 정규화
    $use_mobile = (int)!!$use_mobile; // 0 or 1

    // 3) 캐시
    static $cache = [];
    $key = $use_mobile;
    if (isset($cache[$key])) {
        return $cache[$key];
    }

    $where = $use_mobile ? "me_mobile_use = '1'" : "me_use = '1'";

    $sql = "SELECT *
            FROM {$g5['menu_table']}
            WHERE $where
              AND LENGTH(me_code) = 2
            ORDER BY me_order, me_id";
    $result = sql_query($sql);

    $cache[$key] = [];

    // 공통 베이스 URL
    $base_url = (defined('G5_URL') && G5_URL) ? G5_URL : G5_HTTPS_DOMAIN;

    for ($i = 0; $row = sql_fetch_array($result); $i++) {

        $row['ori_me_link'] = $row['me_link'];

        // 도메인이 없을 경우만 베이스 URL 추가
        if (!preg_match('#^https?://#i', $row['me_link'])) {
            $row['me_link'] = rtrim($base_url, '/') . '/' . ltrim($row['me_link'], '/');
        }

        $row['me_link'] = short_url_clean($row['me_link']);
        $row['sub'] = [];

        // 서브메뉴 조회
        $sql2 = "SELECT *
                 FROM {$g5['menu_table']}
                 WHERE $where
                   AND LENGTH(me_code) = 4
                   AND SUBSTRING(me_code, 1, 2) = '{$row['me_code']}'
                 ORDER BY me_order, me_id";
        $result2 = sql_query($sql2);
        for ($k = 0; $row2 = sql_fetch_array($result2); $k++) {

            $row2['ori_me_link'] = $row2['me_link'];

            // 도메인이 없을 경우만 베이스 URL 추가
            if (!preg_match('#^https?://#i', $row2['me_link'])) {
                $row2['me_link'] = rtrim($base_url, '/') . '/' . ltrim($row2['me_link'], '/');
            }

            $row2['me_link'] = short_url_clean($row2['me_link']);
            $row['sub'][$k] = $row2;
        }

        $cache[$key][$i] = $row;
    }

    return $cache[$key];
}, G5_HOOK_DEFAULT_PRIORITY, 1);

[/code]

|

댓글 1개

댓글 작성

댓글을 작성하시려면 로그인이 필요합니다.

로그인하기

그누보드5 팁자료실

번호 제목 글쓴이 날짜 조회
공지 3년 전 조회 4,598
2741 3일 전 조회 110
2740 4일 전 조회 102
2739 1주 전 조회 208
2738 1주 전 조회 217
2737 1주 전 조회 181
2736 1주 전 조회 278
2735 3주 전 조회 281
2734 3주 전 조회 263
2733 1개월 전 조회 265
2732 1개월 전 조회 301
2731 1개월 전 조회 266
2730 1개월 전 조회 224
2729 1개월 전 조회 353
2728 1개월 전 조회 245
2727 1개월 전 조회 422
2726 1개월 전 조회 256
2725 1개월 전 조회 330
2724 1개월 전 조회 358
2723 1개월 전 조회 267
2722 1개월 전 조회 299
2721 1개월 전 조회 211
2720 2개월 전 조회 304
2719 2개월 전 조회 307
2718 2개월 전 조회 201
2717 2개월 전 조회 336
2716 2개월 전 조회 202
2715 2개월 전 조회 311
2714 2개월 전 조회 273
2713 2개월 전 조회 376
2712 2개월 전 조회 289
🐛 버그신고