비버팩토리

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

· 2025-10-12 (일) 18:50:52 · 4276 · 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개

댓글을 작성하시려면 로그인이 필요합니다.
+
제목 글쓴이 날짜 조회
25-10-14 조회 4,102
25-10-14 조회 5,065
25-10-13 조회 4,237
25-10-12 조회 4,753
25-10-12 조회 4,175
25-10-12 조회 4,277
25-10-10 조회 4,190
25-10-10 조회 3,826
25-10-09 조회 4,269
25-10-08 조회 3,928
25-10-02 조회 4,099
25-10-02 조회 4,473
25-10-01 조회 3,921
25-09-29 조회 4,006
25-09-25 조회 4,264
25-09-25 조회 4,813
25-09-22 조회 4,428
25-09-19 조회 4,027
25-09-19 조회 4,367
25-09-16 조회 3,951
25-09-16 조회 4,108
25-09-12 조회 4,354
25-09-11 조회 3,900
25-09-09 조회 4,189
25-09-09 조회 4,067
25-09-08 조회 4,087
25-09-06 조회 4,352
25-09-05 조회 5,264
25-09-04 조회 4,265
25-09-04 조회 4,002