본문상단 카테고리 내 링크뒷자리 idx 값 부여 가능한지요.. 채택완료
차차미카엘
7년 전
조회 2,607
영카트5 사용중인데요
상품화면 왼쪽에 1차 카테고리 메뉴가 나열되어있습니다.
링크주소를 살펴보니 /shop/list.php?ca_id=b1&idx=2 이런식으로 되어있는데요
idx 값에 따라 현재 보고있는 카테고리에 활성화 표시가 됩니다.
문제는 제품 아이템 선택시에는 왼쪽메뉴 활성화상태가 유지되는데
상품페이지상단 카테고리 부분 링크 클릭시 활성화가 사라집니다.
listcategory.skin.php 소스를 살펴보면 링크 끝에 idx 값을 부여하지 않더라고요.
요점은
idx값을 받아오기 올수 있으면 제일 좋구요
없다면 노가다 if 문 을 써서 idx 값을 넣어주려 합니다.
예)
만약 ca_id 앞두글자가 a1 을 포함하는 카테고리는 idx=0
만약 ca_id 앞두글자가 b1 을 포함하는 카테고리는 idx=1
만약 ca_id 앞두글자가 c1 을 포함하는 카테고리는 idx=2
.
.
$str .= '
위 소스중에 '.$row['ca_id'].' 뒤에 &idx=__ 가 들어가야 할듯한데요
참고로 카테고리 순서는 바뀔수 있어서 카테고리 이름으로 idx 강제 입력 하려 합니다.
고수님들 부탁드립니당 ㅠ
/skin/shop/basic/listcategory.skin.php
</p>
<p><?php
if (!defined("_GNUBOARD_")) exit; // 개별 페이지 접근 불가</p>
<p>$str = '';
$ca_id_len = strlen($ca_id);</p>
<p>// add_stylesheet('css 구문', 출력순서); 숫자가 작을 수록 먼저 출력됨
add_stylesheet('<link rel="stylesheet" href="'.G5_SHOP_CSS_URL.'/style.css">', 0);</p>
<p>$ca_cnt = $ca_id_len / 2; // 루프횟수</p>
<p>for ($i=0;$i<$ca_cnt;$i++) {</p>
<p> switch ($i) {
case 3:
$str_len = 8; // like '{$ca_id}%'
$get_len = 10; // length(ca_id)
break;
case 2:
$str_len = 6;
$get_len = 8;
break;
case 1:
$str_len = 4;
$get_len = 6;
break;
case 0:
$str_len = 2;
$get_len = 4;
break;
}</p>
<p> $str = substr($ca_id, 0, $str_len);</p>
<p> echo getMsCategory($str, $get_len, $i, $ca_id);</p>
<p>}</p>
<p>
function getMsCategory($ca_id_str, $len, $no, $ca_id) {
global $g5;</p>
<p> $sql = "
select ca_id, ca_name from {$g5['g5_shop_category_table']}
where ca_id like '{$ca_id_str}%' and length(ca_id) = {$len} and ca_use = '1'
order by ca_order, ca_id ";</p>
<p> $result = sql_query($sql);</p>
<p> $str = '<div class="sct_ct_here">';</p>
<p> while ($row=sql_fetch_array($result)) {
if (preg_match("/^{$row['ca_id']}/", $ca_id))
$sct_ct_here = 'sct_ct_here';
else
$sct_ct_here = '';
$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="./list.php?ca_id='.$row['ca_id'].'"class="'.$sct_ct_here.'">'.$row['ca_name'].' ('.$row2['cnt'].') </a></li>'; // LINK
if ($str) $exists = true;
else $exists = false;
}
if($len == 4){</p>
<p>$str .= '<ul style="background:#F0F7FF"></ul>'; // 2차 카테고리 BG 색깔지정</p>
<p>}
elseif($len == 6){
$str .= '<ul style="background:#F5F5F5"></ul>'; // 3차 카테고리 BG 색깔지정</p>
<p>}
$str .= '</div>';</p>
<p> if ($exists) return $str;
else return false;
}
?></p>
<p>
댓글을 작성하려면 로그인이 필요합니다.
답변 1개
채택된 답변
+20 포인트
7년 전
</p>
<p>$str .= '<li><a href="./list.php?ca_id='.$row['ca_id'].'&idx='.$_GET['idx'].'"class="'.$sct_ct_here.'">'.$row['ca_name'].' ('.$row2['cnt'].') </a></li>'; // LINK</p>
<p>
이렇게 하면 안 되나요?
로그인 후 평가할 수 있습니다
답변에 대한 댓글 1개
�
차차미카엘
7년 전
헉~! 한방에 해결되네요! 넘 감사합니다~!!!
댓글을 작성하려면 로그인이 필요합니다.
답변을 작성하려면 로그인이 필요합니다.
로그인