영카트 리스트
본문
안녕하세요 고수님들
영카트 리스트 페이지에서 코드 하나만 클래스명을 다르게 주고 싶은데 어떻게 해야할까요??
<ul class="sct sct_10">
<?php
$i = 0;
$this->view_star = (method_exists($this, 'view_star')) ? $this->view_star : true;
foreach((array) $list as $row){
if(empty($row)) continue;
$item_link_href = shop_item_url($row['it_id']); // 상품링크
$star_score = $row['it_use_avg'] ? (int) get_star($row['it_use_avg']) : ''; //사용자후기 평균별점
$list_mod = $this->list_mod; // 분류관리에서 1줄당 이미지 수 값 또는 파일에서 지정한 가로 수
$is_soldout = is_soldout($row['it_id'], true); // 품절인지 체크
$i++; // 변수 i 를 증가
?>
<li class="sct_li" data-css="nocss" style="height:auto">
<div class="sct_img">
<a href="<?php echo $item_link_href?>"><?php echo get_it_image($row['it_id'], $this->img_width, $this->img_height, '', '', stripslashes($row['it_name']))."\n"; ?></a>
<?php if (!$is_soldout ) { // 품절 상태가 아니면 출력합니다. ?>
<div class="sct_btn list-10-btn">
<button type="button" class="btn_cart sct_cart" data-it_id="<?php echo $row['it_id']?>"><i class="fa fa-shopping-cart" aria-hidden="true"></i> 장바구니</button>
</div>
<?php } ?>
<div class="cart-layer"></div>
<?php if ($is_soldout) { ?>
<span class="shop_icon_soldout"><span class="soldout_txt">SOLD OUT</span></span>
<?php } ?>
</div>
<div class="sct_ct_wrap">
<div class="sct_txt"><a href="<?php echo $item_link_href ?>"><?php echo stripslashes($row['it_name']) ?></a></div>
<div class="sct_bottom">
<?php if ($this->view_it_cust_price || $this->view_it_price) { ?>
<div class="sct_cost">
<?php if ($this->view_it_price) { echo display_price(get_price($row), $row['it_tel_inq'])."\n"; } ?>
<?php if ($this->view_it_cust_price && $row['it_cust_price']) { echo "<span class=\"sct_dict\">".display_price($row['it_cust_price'])."</span>\n"; } ?>
</div>
<?php } ?>
<!-- 위시리스트 + 공유 버튼 시작 -->
<div class="sct_op_btn">
<button type="button" class="btn_wish" data-it_id="<?php echo $row['it_id'];?>"><i class="fal fa-heart"></i></button>
<!--<button type="button" class="btn_share"><i class="fal fa-share-alt" aria-hidden="true"></i></button>-->
<div class="sct_sns_wrap">
<?php
if ($this->view_sns) {
$sns_top = $this->img_height + 10;
$sns_url = $item_link_href;
$sns_title = get_text($row['it_name']).' | '.get_text($config['cf_title']);
echo "<div class=\"sct_sns\">";
echo "<h3>SNS 공유</h3>";
echo get_sns_share_link('facebook', $sns_url, $sns_title, G5_SHOP_SKIN_URL.'/img/facebook.png');
echo get_sns_share_link('twitter', $sns_url, $sns_title, G5_SHOP_SKIN_URL.'/img/twitter.png');
echo get_sns_share_link('googleplus', $sns_url, $sns_title, G5_SHOP_SKIN_URL.'/img/gplus.png');
echo "<button type=\"button\" class=\"sct_sns_cls\"><span class=\"sound_only\">닫기</span><i class=\"far fa-times\" aria-hidden=\"true\"></i></button>";
echo "</div>\n";
}
?>
<div class="sct_sns_bg"></div>
</div>
</div>
<!--<div class="sit_icon_li"><?php echo item_icon($row) ?></div>-->
</div>
<div class="sct_basic"><?php echo stripslashes($row['it_basic']) ?></div>
</div>
</li>
<?php } ?>
</ul>
답변 2
질문이 모호합니다.
질문에서 말하는 클래스는 어떤 클래스를 대치할지에 대한 기준이 없고
어떤상황일때 A클래스를 B클래스로 바꾸고 싶다 가 있어야 할것같은데
그것도 없네요
리스트는 기본적으로 반복문에 의해서 순환하는 문장입니다.
foreach( (array) $list => $row) {
로 시작하는 부분부터
대응되는
}
가 닫힐때까지 반복하기때문에
어떤 조건일때가 나와야 변경이 가능합니다.
예를들어
가격의 컬러를
특정상품코드 에서 변환하겠다.라면
<?php if ($this->view_it_cust_price || $this->view_it_price) { ?>
<?php
// 상품코드 : 11000111 일때 하위의 컬러가 적용된 클래스를 변경하겠다 라는 의지라면
// 임의의 클래스명 sct_cost_new 라고 지정하고
if ($row['it_id'] == '11000111') {
$sct_class = "sct_cost_new";
}
else {
$sct_class = "sct_cost";
}
?>
<!-- <div class="sct_cost"> --><!--// 기존은 이렇게 되어있던 코드를 주석 : 확인후 삭제해도됩니다. -->
<div class="<?php echo $sct_class;?>"> <!--// 이렇게 변경합니다. -->
<?php if ($this->view_it_price) { echo display_price(get_price($row), $row['it_tel_inq'])."\n"; } ?>
<?php if ($this->view_it_cust_price && $row['it_cust_price']) { echo "<span class=\"sct_dict\">".display_price($row['it_cust_price'])."</span>\n"; } ?>
</div>
<?php } ?>
!-->
코드하나만 class를 다르게 주고 싶은 기준이 있을텐데
$class = (조건문)?"반영할 class":"sct_li";
<li class="<?=$class?>" data-css="nocss" style="height:auto">
이런식으로 조건문을 기준으로 class를 변경해 주시면 됩니다.
답변을 작성하시기 전에 로그인 해주세요.