리스트 카테고리 하위메뉴.. 고수님들 도와주세요 ㅠㅠ
본문
안녕하세용
listcategory.skin.php 파일입니다..
<?php
if (!defined("_GNUBOARD_")) exit; // 개별 페이지 접근 불가
$str = '';
$exists = false;
$ca_id_len = strlen($ca_id);
$len2 = $ca_id_len + 2;
$len4 = $ca_id_len + 4;
if($ca_id_len == 2) {
$ca_id = substr($ca_id,0,2);
$sql = " select ca_id, ca_name from {$g5['g5_shop_category_table']} where ca_id like '$ca_id%' and length(ca_id) = 4 and ca_use = '1' order by ca_order, ca_id ";
$result = sql_query($sql);
while ($row=sql_fetch_array($result)) {
$row2 = sql_fetch(" select count(*) as cnt from {$g5['g5_shop_item_table']} where (ca_id like '{$row['ca_id']}%' or ca_id2 like '{$row['ca_id']}%' or ca_id3 like '{$row['ca_id']}%') and it_use = '1' ");
$str .= '<li><a href="'.shop_category_url($row['ca_id']).'">'.$row['ca_name'].' ('.$row2['cnt'].')</a></li>';
$exists = true;
}
} elseif($ca_id_len == 4){
$ca_id = substr($ca_id,0,2);
$sql = " select ca_id, ca_name from {$g5['g5_shop_category_table']} where ca_id like '$ca_id%' and length(ca_id) = 4 and ca_use = '1' order by ca_order, ca_id ";
$result = sql_query($sql);
while ($row=sql_fetch_array($result)) {
$row2 = sql_fetch(" select count(*) as cnt from {$g5['g5_shop_item_table']} where (ca_id like '{$row['ca_id']}%' or ca_id2 like '{$row['ca_id']}%' or ca_id3 like '{$row['ca_id']}%') and it_use = '1' ");
$str .= '<li><a href="'.shop_category_url($row['ca_id']).'">'.$row['ca_name'].' ('.$row2['cnt'].')</a></li>';
$exists = true;
}
} elseif($ca_id_len == 6){
$ca_id = substr($ca_id,0,6);
$sql = " select ca_id, ca_name from {$g5['g5_shop_category_table']} where ca_id like '$len4%' and length(ca_id) = 4 and ca_use = '1' order by ca_order, ca_id ";
$result = sql_query($sql);
while ($row=sql_fetch_array($result)) {
$row2 = sql_fetch(" select count(*) as cnt from {$g5['g5_shop_item_table']} where (ca_id like '{$row['ca_id']}%' or ca_id2 like '{$row['ca_id']}%' or ca_id3 like '{$row['ca_id']}%') and it_use = '1' ");
$str .= '<li><a href="'.shop_category_url($row['ca_id']).'">'.$row['ca_name'].' ('.$row2['cnt'].')</a></li>';
$exists = true;
}
}
if ($exists) {
// add_stylesheet('css 구문', 출력순서); 숫자가 작을 수록 먼저 출력됨
add_stylesheet('<link rel="stylesheet" href="'.G5_SHOP_SKIN_URL.'/style.css">', 0);
?>
<!-- 상품분류 1 시작 { -->
<aside id="sct_ct_1" class="sct_ct">
<h2>현재 상품 분류와 관련된 분류</h2>
<ul>
<li><a href="<?php echo shop_category_url(substr($ca_id,0,2)); ?>">전체</a></li>
<?php echo $str; ?>
</ul>
</aside>
<!-- } 상품분류 1 끝 -->
<?php }
전체 = 10
고양이 1 = 1010
고양이 2 = 1020
고양이 3 = 1030
이상태에서 아무대나 들어가도 저 메뉴가 고정돼어있는 상태입니다..
여기서 고양이 1,2,3을 눌렀을때 하위메뉴로 고양이 1을 누르면 고양이 4 = 101010 또는 고양이2를 누르면 102010 이런식으로 하위메뉴가 생기게 할수 있을까요..? 도와주세요고수님들 ㅠㅠ 냥냥..
!-->
답변 2
elseif($ca_id_len == 4){
// $ca_id = substr($ca_id,0,2);
// 이렇게 중간에 $ca_id를 바꾸는 것은 좋지 않습니다. 필요하다면 이렇게...
$ca_id_tmp = substr($ca_id,0,2);
// sql은 이렇게
$sql = " select ca_id, ca_name from {$g5['g5_shop_category_table']} where ca_id like '$ca_id__' and ca_use = '1' order by ca_order, ca_id ";
$result = sql_query($sql);
while ($row=sql_fetch_array($result)) {
$row2 = sql_fetch(" select count(*) as cnt from {$g5['g5_shop_item_table']} where (ca_id like '{$row['ca_id']}%' or ca_id2 like '{$row['ca_id']}%' or ca_id3 like '{$row['ca_id']}%') and it_use = '1' ");
가장 쉽고 할 수 있는 것부터 시작하는 것이 좋습니다. 그런 후 천천히 하나씩 모래성을 쌓아나갑니다.
1) 테스트 페이지를 만듭니다. /test.php
2) common.php 를 인클루드 합니다. include "common.php";
=> 그누보드의 모든 함수/라이브러리를 사용할 수 있습니다.
3) 1차 분류 카테고리 출력부터 해봅니다.
* /test.php
include "common.php";
$sql = "
select ca_id, ca_name
from {$g5['g5_shop_category_table']}
where length(ca_id) = 2
";
$result = sql_query($sql);
while ($row = sql_fetch_array($result)) {
//1차 카테고리 표시
}
4) 브라우저에서 의도한 대로 나오는 지 확인합니다. ~/test.php
이렇게 가장 쉬운것부터 한 다음.. 한 단계씩 살을 붙여 나갑니다.
ca_id 가 '2040' 으로 온경우..
1차 카테고리는 언제나 보여지고.. 20인 카테고리가 'on' class 를 가지면 되는거죠?
2차 카테고리는 '20' 으로 시작하는 2차 카테고리가 모두 보여지고 2040인 카테고리가 'on' class를 가지면 되는거죠?
* /test.php
include "common.php";
$sql = "
select ca_id, ca_name
from {$g5['g5_shop_category_table']}
where length(ca_id) = 2
";
$result = sql_query($sql);
while ($row = sql_fetch_array($result)) {
if (ca_id == $row['ca_id'])
$class = "on"; // ca_id=20 인 카테고리 'on' class 처리
else
$class = "";
}
// '20' 에 해당하는 2차 카테고리
$sql = "
select ca_id, ca_name
from {$g5['g5_shop_category_table']}
where length(ca_id) = 4
and ca_id like '20%'
";
~