채택완료

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

2016-05-03 (화) 13:47:16 8,656

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

리스트스킨을 통해 상품을 출력할때 여분필드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 절을 추가 하면 안될까요?? 아님 다른방법이 없을런지요??

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

 

Copy
<?phpif (!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>&nbsp;&nbsp;&nbsp;<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']; ?>&nbsp;&nbsp;  <? } ?>             </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개

채택된 답변
+20 포인트

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

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

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

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

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

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

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

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

Copy
$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);

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