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

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

· 2개월 전 · 164 · 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,594
2711 2개월 전 조회 323
2710 2개월 전 조회 225
2709 2개월 전 조회 393
2708 2개월 전 조회 231
2707 2개월 전 조회 274
2706 2개월 전 조회 273
2705 2개월 전 조회 144
2704 2개월 전 조회 295
2703 2개월 전 조회 268
2702 2개월 전 조회 282
2701 2개월 전 조회 278
2700 2개월 전 조회 225
2699 2개월 전 조회 172
2698 2개월 전 조회 221
2697 2개월 전 조회 191
2696 2개월 전 조회 165
2695 3개월 전 조회 321
2694 3개월 전 조회 160
2693 3개월 전 조회 214
2692 3개월 전 조회 219
2691 3개월 전 조회 364
2690 3개월 전 조회 269
2689 3개월 전 조회 290
2688 3개월 전 조회 239
2687 3개월 전 조회 451
2686 3개월 전 조회 503
2685 3개월 전 조회 635
2684 3개월 전 조회 371
2683 3개월 전 조회 513
2682 3개월 전 조회 325
🐛 버그신고