비버팩토리

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

· 2025-10-12 (일) 18:50:52 · 3437 · 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 팁자료실

2,788건
+
제목 글쓴이 날짜 조회
25-10-13 조회 3,288
25-10-12 조회 3,840
25-10-12 조회 3,241
25-10-12 조회 3,438
25-10-10 조회 3,262
25-10-10 조회 2,996
25-10-09 조회 3,446
25-10-08 조회 3,111
25-10-02 조회 3,232
25-10-02 조회 3,584
25-10-01 조회 3,027
25-09-29 조회 3,134
25-09-25 조회 3,377
25-09-25 조회 3,896
25-09-22 조회 3,570
25-09-19 조회 3,149
25-09-19 조회 3,476
25-09-16 조회 3,085
25-09-16 조회 3,248
25-09-12 조회 3,451
25-09-11 조회 3,068
25-09-09 조회 3,318
25-09-09 조회 3,201
25-09-08 조회 3,206
25-09-06 조회 3,493
25-09-05 조회 4,375
25-09-04 조회 3,400
25-09-04 조회 3,171
25-09-03 조회 3,471
25-09-03 조회 3,612