상품 리스트 스킨에서 조건별 상품 출력하기

상품 리스트 스킨에서 조건별 상품 출력하기

QA

상품 리스트 스킨에서 조건별 상품 출력하기

본문

밑에 드렸던 질문인데 다시한번 질문드립니다.

 

리스트스킨을 통해 상품을 출력할때 여분필드1의 값에 해당하는 상품만 출력하고 싶습니다.

통상적으로 shop/list.php 에서 $list = new item_list(); 항목에서 각각 정의하고,

list10.skin.php 에서    

 if ($this->view_it_name) {
        echo stripslashes($row['it_name'])."\n";

    }

이런식으로 출력을 하는데요, 아쉽게도 현재 스킨은 조건문을다 걷어버린상태입니다.

답글에 먼지손님께서 아래처럼 구현해주셨는데요, list.php 를 건드려도 스킨에서 출력되는건 영향을

못끼치는 상태입니다.

 

<?php

$list = new item_list();

$list->set_type(1); // 스킨파일과 썸네일 크기등 나머지와 동일하게 셋팅하기 위함

$list->set_query("select * from `{$g5['g5_shop_item_table']}` where it_use = '1'  and it_1='1'  order by it_order, it_id desc limit 10");

echo $list->run();

?>

 

근본적으로 프론트 리스트에 상품을 뿌려주는 쿼리문이 있을텐데요 여기에 where 절을 추가 하면 안될까요?? 아님 다른방법이 없을런지요??

 

아래는 현재의 스킨소스입니다.

 

 

<?php
if (!defined('_GNUBOARD_')) exit; // 개별 페이지 접근 불가
// add_stylesheet('css 구문', 출력순서); 숫자가 작을 수록 먼저 출력됨
add_stylesheet('<link rel="stylesheet" href="'.G5_SHOP_CSS_URL.'/style.css">', 0);
 
?>
<script type="text/javascript"> 
$(document).ready( 
function() { 
$.each($('.tr_arr:odd'), function(i){ // 홀수 번째 
$(this).css("backgroundColor", "#F7F7F7"); 
}); 
$.each($('.tr_arr:even'), function(i){ //짝수 번째 
$(this).css("backgroundColor", "#FFFFFF"); 
}); 
}); 
 
$(function(){
 $('.forRowspan').each(function() {
  var table = this;
  $.each([1] , function(c, v) {
   var tds = $('>tbody>tr>td:nth-child(' + v + ')', table).toArray(), i = 0, j = 0;
   for(j = 1; j < tds.length; j ++) {
    if(tds[i].innerHTML != tds[j].innerHTML) {
     $(tds[i]).attr('rowspan', j - i);
     i = j;
     continue;
    }
    $(tds[j]).hide();
   }
   j --;
   if(tds[i].innerHTML == tds[j].innerHTML) {
    $(tds[i]).attr('rowspan', j - i + 1);
   }
  });
 });
});
</script> 

  
<div style="width: 1000px;  border-top: 0px solid #DEDEDE; border-bottom: 2px solid #DEDEDE;">
  <table  cellpadding="0" cellspacing="1" border="0" style="width:1000px; background-color:#CCC" class="forRowspan">
  
    <?php for ($i=0; $row=sql_fetch_array($result); $i++) { 
 
    // 상품품절체크
  $is_soldout = is_soldout($row['it_id']);
  // 주문가능체크
  $is_orderable = true;
    if(!$row['it_use'] || $row['it_tel_inq'] || $is_soldout)
        $is_orderable = false;
  
   ?>
 

<a href=""></a>
     <tr class="tr_arr"> 
   
            <td width="350px" style="padding:4px 10px; line-height:180%" onClick="window.open('<?php echo G5_SHOP_URL; ?>/item_popup.php?it_id=<?php echo $row['it_id'] ?>','mailform','width=600, height=520, toolbar=no, menubar=no, scrollbars=yes, resizable=yes');">  
<span style="font-size:14px"><? echo $row['it_name'] ?></span>   <img src = "../img/course/info_kangja.jpg" align="absmiddle">
<br />
<span style="color:#666; font-size:14px">
     <?php if($row['it_basic'])
  {
   echo conv_content($row['it_basic'], $html); 
  }  
   ?>
</span>
</td>

 <td width="200px" style="padding:4px 10px"> </td>
  <td width="420px" style="padding:4px 10px">
        <span style="font-size:13px">            
  <?php 
        $sql2 = "select * from `teacher` where `it_id` = '{$row['it_id']}'";
  $result2 = sql_query($sql2, false);
         for ($i=0; $row2=sql_fetch_array($result2); $i++) { 
  ?> 
   <b><?php echo $row2['wr_session']; ?></b> <?php echo $row2['wr_teacher']; ?>  
  <? } ?>     
        </span></td>
  <td width="100px" style="padding:4px 10px" align="center">
       <?php  if($row['it_11'] == '신청'){ ?>
        <a href="<?php echo G5_SHOP_URL; ?>/item.php?it_id=<?php echo $row['it_id'] ?>" class="sct_a"><img src = "../img/bbs/btn_B.gif" align="absmiddle"></a>
  <?php } elseif($row['it_11'] == '임박'){ ?>    
        <a href="<?php echo G5_SHOP_URL; ?>/item.php?it_id=<?php echo $row['it_id'] ?>" class="sct_a"><img src = "../img/bbs/btn_ending.gif" align="absmiddle"></a>
        <?php } elseif($row['it_11'] == '마감'){ ?>    
        <img src = "../img/bbs/btn_end.gif" align="absmiddle">
        <?php } elseif($row['it_11'] == '대기중'){ ?>    
        <a href="#" onClick="window.open('../formmail/form_reservation.html','mailform','width=580, height=520, toolbar=no, menubar=no, scrollbars=no, resizable=yes');return false;"><img src = "../img/bbs/btn_k2.gif" align="absmiddle"></a>        
     <?php } ?>    
        </td>
 </tr>
  
    
<? } ?>
    </table>

</div>
 

이 질문에 댓글 쓰기 :

답변 1

원글에 답변했습니다만 검색을 다시 답변답니다.

 

제 답변은 사실 프론트라고 하셔서 shop/index.php 여기를 상정해서 단 답변이었습니다.

list.php도 마찬가지긴 합니다. 요는 set_query()라는 메서드였죠. 조건을 추가하려는등 임의로 sql문을 바꾸려면 이걸 사용하시면 됩니다.

스킨에서는 이미 디비에서 데이터를 가져온 후에 출력만 담당하는 부분이라 조건을 추가하려면 결국 list.php 파일을 수정하셔야 할겁니다.

기본 sql문은 말씀하신대로 shop.lib.php 에 있습니다만 그걸 수정하시면 원치않는 결과를 보실수도..

 

set_query()로 sql문을 새로 지정하면 카테고리가 무시되니 그 부분도 넣어줘야겠네요.

list.php 에서 echo $list->run(); 이 문장을 찾아 바로 위에 추가해주세요.

다른 부분은 가급적 그냥 두심이 좋겠습니다.


        $where = '';
        if ($ca['ca_id']) {
            $where = " ca_id like '{$ca['ca_id']}%' or ca_id2 like '{$ca['ca_id']}%' or ca_id3 like '{$ca['ca_id']}%' ";
        }
        $where .= ($where?' and ':'') . ' it_1="1" '; // 추가 조건문
        $sql = " select * from `{$g5['g5_shop_item_table']}` " . ($where?' where '.$where:'') . ' order by $order_by limit $from_record, ".($ca['ca_list_mod'] * $ca['ca_list_row']);
        $list->set_query($sql);
답변을 작성하시기 전에 로그인 해주세요.
전체 16,792
QA 내용 검색

회원로그인

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