서브페이지 브레드크럼(네비게이션)

서브페이지 브레드크럼(네비게이션)

QA

서브페이지 브레드크럼(네비게이션)

답변 1

본문

안녕하세요 그누보드 초보자입니다.

 

그누보드로 홈페이지를 구축하려고 하는데

조건이 서브페이지에 브레드크럼(네비게이션?)이 있어야 한다고 합니다.

브레드크럼으로 현재 페이지의 메뉴명을 자동으로 불러와야 하는데

만드는 방법이 따로 있나요?(참고할만한 링크라도...) 아니면 직접 만들 수 밖에 없나요?

이 질문에 댓글 쓰기 :

답변 1

* /head.php 또는 /theme/[테마명]/head.php 메뉴 출력 코드 이후 적당한 위치에 삽입


<?php
// 메인페이지가 아닌 경우에만 브레드크럼 표시
if (!defined('_INDEX_')) {
    // 현재 URL 정보 가져오기
    $current_url = $_SERVER['REQUEST_URI'];
    
    // 파라미터 추출
    $bo_table = isset($_GET['bo_table']) ? $_GET['bo_table'] : '';
    $co_id = isset($_GET['co_id']) ? $_GET['co_id'] : '';
    
    // 현재 페이지 정보 초기화
    $depth1 = null;
    $depth2 = null;
    $depth1_name = '';
    $depth2_name = '';
    $breadcrumb_html = '';
    
    // 현재 페이지가 속한 메뉴 찾기
    foreach ($menu_datas as $i => $row) {
        if (empty($row)) continue;
        
        // 1차 메뉴 링크와 현재 URL 비교
        if (($bo_table && strpos($row['me_link'], 'bo_table='.$bo_table) !== false) || 
            ($co_id && strpos($row['me_link'], 'co_id='.$co_id) !== false) || 
            (!$bo_table && !$co_id && strpos($current_url, $row['me_link']) !== false)) {
            $depth1 = $i;
            $depth1_name = $row['me_name'];
            break;
        }
        
        // 2차 메뉴 링크와 현재 URL 비교
        if (isset($row['sub']) && is_array($row['sub'])) {
            foreach ($row['sub'] as $j => $row2) {
                if (empty($row2)) continue;
                
                if (($bo_table && strpos($row2['me_link'], 'bo_table='.$bo_table) !== false) || 
                    ($co_id && strpos($row2['me_link'], 'co_id='.$co_id) !== false) || 
                    (!$bo_table && !$co_id && strpos($current_url, $row2['me_link']) !== false)) {
                    $depth1 = $i;
                    $depth2 = $j;
                    $depth1_name = $row['me_name'];
                    $depth2_name = $row2['me_name'];
                    break 2;
                }
            }
        }
    }
    
    // 브레드크럼 구성
    if ($depth1_name) {
        $breadcrumb_html = '<div class="breadcrumb">';
        $breadcrumb_html .= '<a href="'.G5_URL.'">홈</a>';
        
        if ($depth1_name) {
            $breadcrumb_html .= ' > <a href="'.$menu_datas[$depth1]['me_link'].'">'.$depth1_name.'</a>';
        }
        
        if ($depth2_name) {
            $breadcrumb_html .= ' > <strong>'.$depth2_name.'</strong>';
        }
        
        $breadcrumb_html .= '</div>';
        
        // 브레드크럼 출력
        echo $breadcrumb_html;
    }
}
?>

.breadcrumb {
    padding: 10px 0;
    margin-bottom: 15px;
    font-size: 14px;
}
.breadcrumb a {
    color: #666;
}
.breadcrumb strong {
    color: #333;
    font-weight: 600;
}
답변을 작성하시기 전에 로그인 해주세요.
QA 내용 검색
질문등록
전체 13
© SIRSOFT
현재 페이지 제일 처음으로