영카트 상품상세, 리스트 페이지에서 클래스 추가

매출이 오르면 내리는 수수료! 지금 수수료센터에서 전자결제(PG)수수료 비교견적 신청해 보세요!
영카트 상품상세, 리스트 페이지에서 클래스 추가

QA

영카트 상품상세, 리스트 페이지에서 클래스 추가

본문

안녕하세요,

 

      <ul class="gnb">

 

        <?php

        ob_start();

        $menu_datas = get_menu_db(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']) ? '[[ML]]' : '';

        ?>

        <li class="depth1 " style="z-index:<?php echo $gnb_zindex--; ?>" >

            <a MO href="<?php echo $row['me_link']; ?>" target="_<?php echo $row['me_target']; ?>" class="depth1_a <?=$add_class; ?>"><?php echo $row['me_name'] ?><?=$add_class ? "[[MO]]" : ""; ?></a>

            <?php

            $k = 0;

            foreach( (array) $row['sub'] as $row2 ){

 

                if( empty($row2) ) continue;

 

                if($k == 0)

                    echo '<ul class="snb">'.PHP_EOL;

            ?>

                <li class="depth2"><a href="<?php echo $row2['me_link']; ?>" target="_<?php echo $row2['me_target']; ?>" class=""><?php echo $row2['me_name'] ?></a></li>

            <?php

            $k++;

            }

            if($k > 0)

                echo '</ul>'.PHP_EOL;

            ?>

        </li>

        <?php

        $i++;

        }

 

        $top_menu = ob_get_contents();

        ob_end_clean();

 

        echo str_replace("[[MO]]","",$top_menu);

        ?>

      </ul>

 

위는 제 서브내비를 불러오기 위한 코드인데요.

 

 

depth1에 class on을 넣고싶습니다.

 

A, B, C 라는 상품 분류가 있고

 

A분류에는 aa 상품이 있다고 가정했을때

 

A분류 리스트 페이지에서도, aa상품 상세페이지에서도 A가 표시된 depth1에는 on 클래스를 추가하고싶습니다.

 

혹시 방법이 있는지요?

이 질문에 댓글 쓰기 :

답변 1

아래 코드 참고를 한번 해보시겠어요..

 

 

 

<ul class="gnb">
<?php
ob_start();
$menu_datas = get_menu_db(0, true);
$gnb_zindex = 999;
$i = 0;

// 현재 카테고리 정보 가져오기
$current_ca_id = '';
if (defined('_SHOP_')) {
    if ($it_id) {  // 상품 상세 페이지
        $sql = " SELECT ca_id FROM {$g5['g5_shop_item_table']} WHERE it_id = '$it_id' ";
        $row = sql_fetch($sql);
        $current_ca_id = $row['ca_id'];
    } else if ($ca_id) {  // 상품 리스트 페이지
        $current_ca_id = $ca_id;
    }
}

foreach ($menu_datas as $row) {
    if (empty($row)) continue;
    
    $add_class = (isset($row['sub']) && $row['sub']) ? '[[ML]]' : '';
    
    // 현재 메뉴가 활성화되어야 하는지 확인
    $is_active = false;
    
    // 메뉴 링크에서 ca_id 추출
    $menu_ca_id = '';
    if (preg_match('/ca_id=([^&]*)/', $row['me_link'], $matches)) {
        $menu_ca_id = $matches[1];
    }
    
    // 현재 카테고리와 메뉴의 카테고리가 일치하는지 확인
    if ($current_ca_id && $menu_ca_id) {
        // 대분류만 비교 (첫 2자리)
        if (substr($current_ca_id, 0, 2) === substr($menu_ca_id, 0, 2)) {
            $is_active = true;
        }
    }
    
    // on 클래스 추가
    $depth1_class = 'depth1' . ($is_active ? ' on' : '');
?>
    <li class="<?php echo $depth1_class; ?>" style="z-index:<?php echo $gnb_zindex--; ?>">
        <a href="<?php echo $row['me_link']; ?>" target="_<?php echo $row['me_target']; ?>" 
           class="depth1_a <?=$add_class; ?>">
            <?php echo $row['me_name'] ?><?=$add_class ? "[[MO]]" : ""; ?>
        </a>
        <?php
        $k = 0;
        foreach ((array) $row['sub'] as $row2) {
            if (empty($row2)) continue;
            
            if ($k == 0)
                echo '<ul class="snb">'.PHP_EOL;
        ?>
            <li class="depth2">
                <a href="<?php echo $row2['me_link']; ?>" target="_<?php echo $row2['me_target']; ?>" 
                   class="">
                    <?php echo $row2['me_name'] ?>
                </a>
            </li>
        <?php
            $k++;
        }
        if ($k > 0)
            echo '</ul>'.PHP_EOL;
        ?>
    </li>
<?php
    $i++;
}

$top_menu = ob_get_contents();
ob_end_clean();

echo str_replace("[[MO]]", "", $top_menu);
?>
</ul>

 

 

 

답변을 작성하시기 전에 로그인 해주세요.
전체 270
QA 내용 검색

회원로그인

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