[관리자 메뉴설정] 다국어버전 추가 메뉴 설정 > 그누보드5 스킨

그누보드5 스킨

좋은 댓글과 좋아요는 제작자에게 큰힘이 됩니다.

[관리자 메뉴설정] 다국어버전 추가 메뉴 설정 정보

레이아웃 [관리자 메뉴설정] 다국어버전 추가 메뉴 설정

첨부파일

adm.zip (3.9K) 44회 다운로드 2023-03-12 16:31:37 포인트 차감10
테스트한 버전5.4.2
호환 가능 버전5.3 이상

본문

다국어버전의 메뉴를 따로 영문으로 해야하는경우 필요해서 만들어 보았습니다.

 

전체조건

$g5['menu_table'] 테이블을 하나를 테이블 복사

관리자에서 해당 위치로 들어가면 자동테이블 create 됩니다.

$g5['menu_table_en']

 


/data/dbconfig.php 에 추가해야할 부분
$g5['menu_table'] = G5_TABLE_PREFIX.'menu'; // 메뉴관리 테이블
$g5['menu_table_en'] = G5_TABLE_PREFIX.'menu_en'; ==> 추가한 부분

 


/admin/admin.menu100.php 에 메뉴 추가
array('100290', '메뉴설정', G5_ADMIN_URL.'/menu_list.php',     'cf_menu', 1),
array('100291', '메뉴설정(영문)', G5_ADMIN_URL.'/menu_list_en.php',     'cf_menu', 1),

 

/lib/get_data.lib.php 함수 추가

 


function get_menu_db_en($use_mobile=0, $is_cache=false){
    global $g5;
    static $cache = array();
    
    $cache = run_replace('get_menu_db_cache', $cache, $use_mobile, $is_cache);
    
    $key = md5($use_mobile);
    if( $is_cache && isset($cache[$key]) ){
        return $cache[$key];
    }
    
    $where = $use_mobile ? "me_mobile_use = '1'" : "me_use = '1'";
    if( !($cache[$key] = run_replace('get_menu_db', array(), $use_mobile)) ){
        $sql = " select *
                    from {$g5['menu_table_en']}
                    where $where
                      and length(me_code) = '2'
                    order by me_order, me_id ";
        $result = sql_query($sql, false);
        for ($i=0; $row=sql_fetch_array($result); $i++) {
            
            $row['ori_me_link'] = $row['me_link'];
            $row['me_link'] = short_url_clean($row['me_link']);
            $cache[$key][$i] = $row;
            $sql2 = " select *
                        from {$g5['menu_table_en']}
                        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'];
                $row2['me_link'] = short_url_clean($row2['me_link']);
                $cache[$key][$i]['sub'][$k] = $row2;
            }
        }
    }
    return $cache[$key];
}

 

이후 프론트에서 함수 호출하여 사용

 


<ul class="gnb_ul">
                    <?php
                        $menu_datas = get_menu_db_en(0, true);
                        $gnb_zindex = 999; // gnb_1dli z-index 값 설정용
                        $i = 0;
                        foreach( $menu_datas as $row ){
                            if( empty($row) ) continue;
                            $add_class = (isset($row['sub']) && $row['sub']) ? 'gnb_al_li_plus' : '';
                        ?>
                        <li class="gnb_li">
                            <h2>
                                <a href="<?php echo $row['me_link']; ?>" target="_<?php echo $row['me_target']; ?>" class="menu01" title="회사소개">
                                <?php echo $row['me_name'] ?>
                                </a>
                            </h2>
                            <?php
                            $k = 0;
                            foreach( (array) $row['sub'] as $row2 ){
                                if( empty($row2) ) continue;
                                if($k == 0)
                                    echo '<ul class="gnb_sub">'.PHP_EOL;
                            ?>
                                <li class="gnb_2dli">
                                    <a href="<?php echo $row2['me_link']; ?>" target="_<?php echo $row2['me_target']; ?>">
                                        <?php echo $row2['me_name'] ?>
                                    </a>
                                </li>
                            <?php
                            $k++;
                            }   //end foreach $row2
                            if($k > 0)
                                echo '</ul>'.PHP_EOL;
                            ?>
                        </li>
                        <?php  } ?>
                    </ul>

 

 

 

추천
7

댓글 전체

설명 내용대로 내용 추가 뒤 관리자 모드에서 새로 생성된 메뉴설정(영문) 항목에서 메뉴 추가를 클릭시 menu_form_en.php 파일이 없다고 하는데 기존 menu_form.php 파일 복사 후 이름 변경 뒤에 사용해도 되나요?

안녕하세요. 완전 초보인데 말씀하신

$g5['menu_table'] 테이블을 하나를 테이블 복사

이부분이 디비에서 하는 부분인가요? 지금 해보려고 하는데

디비접속하니 g5_menu만 보여서 죄송하게 질문드립니다!

감사합니다.

전체 20 |RSS
그누보드5 스킨 내용 검색

회원로그인

(주)에스아이알소프트 / 대표:홍석명 / (06211) 서울특별시 강남구 역삼동 707-34 한신인터밸리24 서관 1404호 / E-Mail: admin@sir.kr
사업자등록번호: 217-81-36347 / 통신판매업신고번호:2014-서울강남-02098호 / 개인정보보호책임자:김민섭(minsup@sir.kr)
© SIRSOFT