영카트 카테고리 등록시 2차 메뉴가 있을때만 class에 값 추가하기

Copy
<?php
    $i = 0;
    foreach($mshop_categories as $cate1){
        if( empty($cate1) ) continue;

        $mshop_ca_row1 = $cate1['text'];
        if($i == 0)
            echo '<ul class="cate">'.PHP_EOL;
    ?>
        <li class="cate_li_1">
            <a href="<?php echo $mshop_ca_row1['url']; ?>" class="cate_li_1_a"><?php echo get_text($mshop_ca_row1['ca_name']); ?></a>
            <?php
            $j=0;
            foreach($cate1 as $key=>$cate2){
                if( empty($cate2) || $key === 'text' ) continue;
               
                $mshop_ca_row2 = $cate2['text'];
                if($j == 0)
                    echo '<ul class="sub_cate sub_cate1">'.PHP_EOL;
            ?>
                <li class="cate_li_2">
                    <a href="<?php echo $mshop_ca_row2['url']; ?>"><?php echo get_text($mshop_ca_row2['ca_name']); ?></a>
                </li>
            <?php
            $j++;
            }

            if($j > 0)
                echo '</ul>'.PHP_EOL;
            ?>
        </li>
    <?php
    $i++;
    }   // end for

    if($i > 0)
        echo '</ul>'.PHP_EOL;
    else
        echo '<p class="no-cate">등록된 분류가 없습니다.</p>'.PHP_EOL;
    ?>

카테고리 등록시 2차 분류가 있을때에만 1차 분류명 <li>에 class 값을 추가하려고 합니다.

위에 소스에서 2차분류가 있을때에만 <li class="cate_li_1">를 <li class="cate_li_1 abc"> 처럼 나타나게 하려고 합니다. 2차 분류가 없을때에는 <li class="cate_li_1"> 그대로 나오게 하고요.

초보라 이리저리 해봐도 잘 안되네요.

부탁드립니다.. ^^

답변 1개

Copy
<?php
    $i = 0;
    foreach($mshop_categories as $cate1){
        if( empty($cate1) ) continue;
        $mshop_ca_row1 = $cate1['text'];
        if($i == 0)
            echo '<ul class="cate">'.PHP_EOL;

        $t_class = (count($cate1) > 0)? ' 클래스명' : '';
    ?>
        <li class="cate_li_1<?php echo $t_class;?>">
            <a href="<?php echo $mshop_ca_row1['url']; ?>" class="cate_li_1_a"><?php echo get_text($mshop_ca_row1['ca_name']); ?></a>
            <?php
            $j=0;
            foreach($cate1 as $key=>$cate2){
                if( empty($cate2) || $key === 'text' ) continue;
               
                $mshop_ca_row2 = $cate2['text'];
                if($j == 0)
                    echo '<ul class="sub_cate sub_cate1">'.PHP_EOL;
            ?>
                <li class="cate_li_2">
                    <a href="<?php echo $mshop_ca_row2['url']; ?>"><?php echo get_text($mshop_ca_row2['ca_name']); ?></a>
                </li>
            <?php
            $j++;
            }
            if($j > 0)
                echo '</ul>'.PHP_EOL;
            ?>
        </li>
    <?php
    $i++;
    }   // end for
    if($i > 0)
        echo '</ul>'.PHP_EOL;
    else
        echo '<p class="no-cate">등록된 분류가 없습니다.</p>'.PHP_EOL;
    ?>

2차 메뉴가 있는지 배열 count해서 $t_class 변수에 클래스명을 분기한 후 출력합니다.

상상만으로 코드 넣었구요 테스트 못해봐서 오류가 있을 수 있습니다.

참고만 해주세요.

로그인 후 평가할 수 있습니다

답변에 대한 댓글 3개

답변 감사합니다. 그런데 2차분류가 있거나 없거나 똑같이 나타나는군요. TT
print_r로 $cate1 뿌려봐서 조건에 맞게 가공해보세요
초보자로 어렵네요 TT

댓글을 작성하려면 로그인이 필요합니다.

답변을 작성하려면 로그인이 필요합니다.

로그인
🐛 버그신고