테스트 사이트 - 개발 중인 베타 버전입니다

영카트 쇼핑몰 메뉴 분류 링크 다르게 거는 방법 도와주세요..ㅠ_ㅠ 채택완료

dpsTldpvm 4년 전 조회 7,408

https://sir.kr/qa/327815

 

위 링크처럼 그누보드 커뮤니티에서 메뉴설정은 직접 링크 걸 수 있게 되어있습니다.

그러나 쇼핑몰 상품 분류관리에서 분류메뉴는 관리자페이지에서 따로 지정할 수 없더라구요...

그래서 FTP안에 소스로 수정을 해줘야하는거 같은데 어떻게 수정하는건지 모르겠어서요ㅠㅠ

 

링크를 각각 원하는대로 다르게 지정해주고 싶은데 어떻게 수정해야할까요..?ㅠㅠ

알려주시면 감사하겠습니다.. 아시는분들은 꼭 부탁드립니다..ㅠ

 

예를들어

상품 분류 리스트가

분류 1 (분류코드:k1설정) / 분류 2 (분류코드:k2설정) / 분류 3 (분류코드:k3설정) / 분류 4 (분류코드:k4설정) 이렇게 설정만 해두고 상품 분류메뉴를 클릭시 링크는 동일하게 하고 싶습니다..

 

--------------------------------------------------------------------------------------------------------

 

< 현재 상황: 자동으로 분류코드대로 생성 >

 

분류1- https://~~~~/shop/list.php?ca_id=k1

분류2- https://~~~~/shop/list.php?ca_id=k2

분류3- https://~~~~/shop/list.php?ca_id=k3

분류4- https://~~~~/shop/list.php?ca_id=k4

 

↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓

 

< 원하는 상황: 하나를 제외하고 원하는 링크로 동일하게 설정 >

 

 

분류1- https://~~~~/shop/list.php?ca_id=k1

분류2- https://~~~~/shop/list.php?ca_id=k2

분류3- https://~~~~/shop/list.php?ca_id=k2

분류4- https://~~~~/shop/list.php?ca_id=k2

 

 

--------------------------------------------------------------------------------------------------------

 

theme/mobile/shop/category.php 파일을 보면 이렇습니다..ㅠㅠ

현재 영카트 테마를 사용하고 있는데 반응형이라

정확히 소스경로가 여기서 수정하면 되는지도 모르지만..

소스를 어떻게 만져야할지도 잘 몰라서 알려주시면 감사하겠습니다..!!

 

</p>

<p><?php

if (!defined('_GNUBOARD_')) exit; // 개별 페이지 접근 불가</p>

<p>function get_mshop_category($ca_id, $len)

{

    global $g5;</p>

<p>    $sql = " select ca_id, ca_name from {$g5['g5_shop_category_table']}

                where ca_use = '1' ";

    if($ca_id)

        $sql .= " and ca_id like '$ca_id%' ";

    $sql .= " and length(ca_id) = '$len' order by ca_order, ca_id ";</p>

<p>    return $sql;

}

?></p>

<p><div id="category">

    <div class="cate_bg"></div>

    <div class="ct_wr"></p>

<p>        <ul class="tabsTit">

            <li class="tabsTab tabsHover">shop</li>

            <li class="tabsTab">board</li>

        </ul>

        <div class="tabsCon">

            <div class="tabsList" readonly="true">

                <h2 class="con_tit"><span>쇼핑몰분류</span></h2>

                <?php

                $mshop_ca_href = G5_SHOP_URL.'/list.php?ca_id=';

                $mshop_ca_res1 = sql_query(get_mshop_category('', 2));

                for($i=0; $mshop_ca_row1=sql_fetch_array($mshop_ca_res1); $i++) {

                    if($i == 0)

                        echo '<ul class="cate">'.PHP_EOL;

                ?>

                    <li>

                        <a href="<?php echo $mshop_ca_href.$mshop_ca_row1['ca_id']; ?>"><?php echo get_text($mshop_ca_row1['ca_name']); ?></a>

                        <?php

                        $mshop_ca_res2 = sql_query(get_mshop_category($mshop_ca_row1['ca_id'], 4));

                        if(sql_num_rows($mshop_ca_res2))

                            echo '<button class="sub_ct_toggle ct_op">'.get_text($mshop_ca_row1['ca_name']).' 하위분류 열기</button>'.PHP_EOL;</p>

<p>                        for($j=0; $mshop_ca_row2=sql_fetch_array($mshop_ca_res2); $j++) {

                            if($j == 0)

                                echo '<ul class="sub_cate sub_cate1">'.PHP_EOL;

                        ?>

                            <li>

                                <a href="<?php echo $mshop_ca_href.$mshop_ca_row2['ca_id']; ?>"><?php echo get_text($mshop_ca_row2['ca_name']); ?></a>

                                <?php

                                $mshop_ca_res3 = sql_query(get_mshop_category($mshop_ca_row2['ca_id'], 6));

                                if(sql_num_rows($mshop_ca_res3))

                                    echo '<button type="button" class="sub_ct_toggle ct_op">'.get_text($mshop_ca_row2['ca_name']).' 하위분류 열기</button>'.PHP_EOL;</p>

<p>                                for($k=0; $mshop_ca_row3=sql_fetch_array($mshop_ca_res3); $k++) {

                                    if($k == 0)

                                        echo '<ul class="sub_cate sub_cate2">'.PHP_EOL;

                                ?>

                                    <li>

                                        <a href="<?php echo $mshop_ca_href.$mshop_ca_row3['ca_id']; ?>"><?php echo get_text($mshop_ca_row3['ca_name']); ?></a>

                                        <?php

                                        $mshop_ca_res4 = sql_query(get_mshop_category($mshop_ca_row3['ca_id'], 8));

                                        if(sql_num_rows($mshop_ca_res4))

                                            echo '<button type="button" class="sub_ct_toggle ct_op">'.get_text($mshop_ca_row3['ca_name']).' 하위분류 열기</button>'.PHP_EOL;</p>

<p>                                        for($m=0; $mshop_ca_row4=sql_fetch_array($mshop_ca_res4); $m++) {

                                            if($m == 0)

                                                echo '<ul class="sub_cate sub_cate3">'.PHP_EOL;

                                        ?>

                                            <li>

                                                <a href="<?php echo $mshop_ca_href.$mshop_ca_row4['ca_id']; ?>"><?php echo get_text($mshop_ca_row4['ca_name']); ?></a>

                                                <?php

                                                $mshop_ca_res5 = sql_query(get_mshop_category($mshop_ca_row4['ca_id'], 10));

                                                if(sql_num_rows($mshop_ca_res5))

                                                    echo '<button type="button" class="sub_ct_toggle ct_op">'.get_text($mshop_ca_row4['ca_name']).' 하위분류 열기</button>'.PHP_EOL;</p>

<p>                                                for($n=0; $mshop_ca_row5=sql_fetch_array($mshop_ca_res5); $n++) {

                                                    if($n == 0)

                                                        echo '<ul class="sub_cate sub_cate4">'.PHP_EOL;

                                                ?>

                                                    <li>

                                                        <a href="<?php echo $mshop_ca_href.$mshop_ca_row5['ca_id']; ?>"> <?php echo get_text($mshop_ca_row5['ca_name']); ?></a>

                                                    </li>

                                                <?php

                                                }</p>

<p>                                                if($n > 0)

                                                    echo '</ul>'.PHP_EOL;

                                                ?>

                                            </li>

                                        <?php

                                        }</p>

<p>                                        if($m > 0)

                                            echo '</ul>'.PHP_EOL;

                                        ?>

                                    </li>

                                <?php

                                }</p>

<p>                                if($k > 0)

                                    echo '</ul>'.PHP_EOL;

                                ?>

                            </li>

                        <?php

                        }</p>

<p>                        if($j > 0)

                            echo '</ul>'.PHP_EOL;

                        ?>

                    </li>

                <?php

                }</p>

<p>                if($i > 0)

                    echo '</ul>'.PHP_EOL;

                else

                    echo '<p>등록된 분류가 없습니다.</p>'.PHP_EOL;

                ?>

            </div>

            <div class="tabsList">

                <h2>게시판</h2>

                <ul id="gnb_1dul" class="cate tabsList">

                    <?php

                    $sql = " select *

                                from {$g5['menu_table']}

                                where me_use = '1'

                                  and length(me_code) = '2'

                                order by me_order, me_id ";

                    $result = sql_query($sql, false);

                    $gnb_zindex = 999; // gnb_1dli z-index 값 설정용</p>

<p>                    for ($i=0; $row=sql_fetch_array($result); $i++) {

                    ?>

                    <li class="gnb_1dli" style="z-index:<?php echo $gnb_zindex--; ?>">

                        <a href="<?php echo $row['me_link']; ?>" target="_<?php echo $row['me_target']; ?>" class="gnb_1da"><?php echo $row['me_name'] ?></a>

                        <?php

                        $sql2 = " select *

                                    from {$g5['menu_table']}

                                    where me_use = '1'

                                      and length(me_code) = '4'

                                      and substring(me_code, 1, 2) = '{$row['me_code']}'

                                    order by me_order, me_id ";

                        $result2 = sql_query($sql2);</p>

<p>                        for ($k=0; $row2=sql_fetch_array($result2); $k++) {

                            if($k == 0)

                                echo '<button type="button" class="sub_ct_toggle ct_op">'.get_text($mshop_ca_row3['ca_name']).' 하위분류 열기</button><ul class="sub_cate sub_cate1">'.PHP_EOL;

                        ?></p>

<p>                            <li class="gnb_2dli"><a href="<?php echo $row2['me_link']; ?>" target="_<?php echo $row2['me_target']; ?>" class="gnb_2da"><?php echo $row2['me_name'] ?></a></li>

                        <?php

                        }</p>

<p>                        if($k > 0)

                            echo '</ul>'.PHP_EOL;

                        ?>

                    </li>

                    <?php

                    }</p>

<p>                    if ($i == 0) {  ?>

                        <li id="gnb_empty">메뉴 준비 중입니다.<?php if ($is_admin) { ?> 
<a href="<?php echo G5_ADMIN_URL; ?>/menu_list.php">관리자모드 > 환경설정 > 메뉴설정</a>에서 설정하실 수 있습니다.<?php } ?></li>

                    <?php } ?>

                </ul>

            </div>

        </div>

    </div></p>

<p>   <button type="button" class="category_close"><i class="fa fa-times" aria-hidden="true"></i><span class="sound_only">카테고리 닫기</span></button></p>

<p></div></p>

<p><script>

$(function (){</p>

<p>    $("#category").UblueTabs({

        eventType:"click" 

    });</p>

<p>    var $category = $("#category");</p>

<p>    $("#hd_ct").on("click", function() {

        $category.css("display","block");

    });</p>

<p>    $("#category .category_close").on("click", function(){

        $category.css("display","none");

    });</p>

<p>     $(".cate_bg").on("click", function() {

        $category.css("display","none");

    });</p>

<p>    $("button.sub_ct_toggle").on("click", function() {

        var $this = $(this);

        $sub_ul = $(this).closest("li").children("ul.sub_cate");</p>

<p>        if($sub_ul.size() > 0) {

            var txt = $this.text();</p>

<p>            if($sub_ul.is(":visible")) {

                txt = txt.replace(/닫기$/, "열기");

                $this

                    .removeClass("ct_cl")

                    .text(txt);

            } else {

                txt = txt.replace(/열기$/, "닫기");

                $this

                    .addClass("ct_cl")

                    .text(txt);

            }</p>

<p>            $sub_ul.toggle();

        }

    });

});

   

</script>

 

 

밑에 소스는 mobile/shop/list.php  경로 파일입니다..!

 

</p>

<p><?php

include_once('./_common.php');</p>

<p>$ca_id = isset($_REQUEST['ca_id']) ? safe_replace_regex($_REQUEST['ca_id'], 'ca_id') : '';

$skin = isset($_REQUEST['skin']) ? safe_replace_regex($_REQUEST['skin'], 'skin') : '';</p>

<p>// 상품 리스트에서 다른 필드로 정렬을 하려면 아래의 배열 코드에서 해당 필드를 추가하세요.

if( isset($sort) && ! in_array($sort, array('it_sum_qty', 'it_price', 'it_use_avg', 'it_use_cnt', 'it_update_time')) ){

    $sort='';

}</p>

<p>if (G5_IS_MOBILE) {

    include_once(G5_MSHOP_PATH.'/list.php');

    return;

}</p>

<p>$sql = " select * from {$g5['g5_shop_category_table']} where ca_id = '$ca_id' and ca_use = '1'  ";

$ca = sql_fetch($sql);

if (! (isset($ca['ca_id']) && $ca['ca_id']))

    alert('등록된 분류가 없습니다.');</p>

<p>// 테마미리보기 스킨 등의 변수 재설정

if(defined('_THEME_PREVIEW_') && _THEME_PREVIEW_ === true) {

    $ca['ca_skin']       = (isset($tconfig['ca_skin']) && $tconfig['ca_skin']) ? $tconfig['ca_skin'] : $ca['ca_skin'];

    $ca['ca_img_width']  = (isset($tconfig['ca_img_width']) && $tconfig['ca_img_width']) ? $tconfig['ca_img_width'] : $ca['ca_img_width'];

    $ca['ca_img_height'] = (isset($tconfig['ca_img_height']) && $tconfig['ca_img_height']) ? $tconfig['ca_img_height'] : $ca['ca_img_height'];

    $ca['ca_list_mod']   = (isset($tconfig['ca_list_mod']) && $tconfig['ca_list_mod']) ? $tconfig['ca_list_mod'] : $ca['ca_list_mod'];

    $ca['ca_list_row']   = (isset($tconfig['ca_list_row']) && $tconfig['ca_list_row']) ? $tconfig['ca_list_row'] : $ca['ca_list_row'];

}</p>

<p>// 본인인증, 성인인증체크

if(!$is_admin) {

    $msg = shop_member_cert_check($ca_id, 'list');

    if($msg)

        alert($msg, G5_SHOP_URL);

}</p>

<p>$g5['title'] = $ca['ca_name'].' 상품리스트';</p>

<p>if ($ca['ca_include_head'] && is_include_path_check($ca['ca_include_head']))

    @include_once($ca['ca_include_head']);

else

    include_once(G5_SHOP_PATH.'/_head.php');</p>

<p>// 스킨경로

$skin_dir = G5_SHOP_SKIN_PATH;</p>

<p>if($ca['ca_skin_dir']) {

    if(preg_match('#^theme/(.+)$#', $ca['ca_skin_dir'], $match))

        $skin_dir = G5_THEME_PATH.'/'.G5_SKIN_DIR.'/shop/'.$match[1];

    else

        $skin_dir = G5_PATH.'/'.G5_SKIN_DIR.'/shop/'.$ca['ca_skin_dir'];</p>

<p>    if(is_dir($skin_dir)) {

        $skin_file = $skin_dir.'/'.$ca['ca_skin'];</p>

<p>        if(!is_file($skin_file))

            $skin_dir = G5_SHOP_SKIN_PATH;

    } else {

        $skin_dir = G5_SHOP_SKIN_PATH;

    }

}</p>

<p>define('G5_SHOP_CSS_URL', str_replace(G5_PATH, G5_URL, $skin_dir));</p>

<p>if ($is_admin)

    echo '<div class="sct_admin"><a href="'.G5_ADMIN_URL.'/shop_admin/categoryform.php?w=u&ca_id='.$ca_id.'" class="btn_admin btn"><span class="sound_only">분류 관리</span><i class="fa fa-cog fa-spin fa-fw"></i></a></div>';

?></p>

<p><script>

var itemlist_ca_id = "<?php echo $ca_id; ?>";

</script>

<script src="<?php echo G5_JS_URL; ?>/shop.list.js"></script></p>

<p><!-- 상품 목록 시작 { -->

<div id="sct"></p>

<p>    <?php

    $nav_skin = $skin_dir.'/navigation.skin.php';

    if(!is_file($nav_skin))

        $nav_skin = G5_SHOP_SKIN_PATH.'/navigation.skin.php';

    include $nav_skin;</p>

<p>    // 상단 HTML

    echo '<div id="sct_hhtml">'.conv_content($ca['ca_head_html'], 1).'</div>';</p>

<p>    $cate_skin = $skin_dir.'/listcategory.skin.php';

    if(!is_file($cate_skin))

        $cate_skin = G5_SHOP_SKIN_PATH.'/listcategory.skin.php';

    include $cate_skin;</p>

<p>    // 상품 출력순서가 있다면

    if ($sort != "")

        $order_by = $sort.' '.$sortodr.' , it_order, it_id desc';

    else

        $order_by = 'it_order, it_id desc';</p>

<p>    $error = '<p class="sct_noitem">등록된 상품이 없습니다.</p>';</p>

<p>    // 리스트 스킨

    $skin_file = is_include_path_check($skin_dir.'/'.$ca['ca_skin']) ? $skin_dir.'/'.$ca['ca_skin'] : $skin_dir.'/list.10.skin.php';</p>

<p>    if (file_exists($skin_file)) {</p>

<p>        echo '<div id="sct_sortlst">';

        $sort_skin = $skin_dir.'/list.sort.skin.php';

        if(!is_file($sort_skin))

            $sort_skin = G5_SHOP_SKIN_PATH.'/list.sort.skin.php';

        include $sort_skin;</p>

<p>        // 상품 보기 타입 변경 버튼

        $sub_skin = $skin_dir.'/list.sub.skin.php';

        if(!is_file($sub_skin))

            $sub_skin = G5_SHOP_SKIN_PATH.'/list.sub.skin.php';

        include $sub_skin;

        echo '</div>';</p>

<p>        // 총몇개 = 한줄에 몇개 * 몇줄

        $items = $ca['ca_list_mod'] * $ca['ca_list_row'];

        // 페이지가 없으면 첫 페이지 (1 페이지)

        if ($page < 1) $page = 1;

        // 시작 레코드 구함

        $from_record = ($page - 1) * $items;</p>

<p>        $list = new item_list($skin_file, $ca['ca_list_mod'], $ca['ca_list_row'], $ca['ca_img_width'], $ca['ca_img_height']);

        $list->set_category($ca['ca_id'], 1);

        $list->set_category($ca['ca_id'], 2);

        $list->set_category($ca['ca_id'], 3);

        $list->set_is_page(true);

        $list->set_order_by($order_by);

        $list->set_from_record($from_record);

        $list->set_view('it_img', true);

        $list->set_view('it_id', false);

        $list->set_view('it_name', true);

        $list->set_view('it_basic', true);

        $list->set_view('it_cust_price', true);

        $list->set_view('it_price', true);

        $list->set_view('it_icon', true);

        $list->set_view('sns', true);

        echo $list->run();</p>

<p>        // where 된 전체 상품수

        $total_count = $list->total_count;

        // 전체 페이지 계산

        $total_page  = ceil($total_count / $items);

    }

    else

    {

        echo '<div class="sct_nofile">'.str_replace(G5_PATH.'/', '', $skin_file).' 파일을 찾을 수 없습니다.
관리자에게 알려주시면 감사하겠습니다.</div>';

    }</p>

<p>    $qstr1 = 'ca_id='.$ca_id;

    $qstr1 .='&sort='.$sort.'&sortodr='.$sortodr;

    echo get_paging($config['cf_write_pages'], $page, $total_page, $_SERVER['SCRIPT_NAME'].'?'.$qstr1.'&page=');</p>

<p>    // 하단 HTML

    echo '<div id="sct_thtml">'.conv_content($ca['ca_tail_html'], 1).'</div>';</p>

<p>?>

</div>

<!-- } 상품 목록 끝 --></p>

<p><?php

if ($ca['ca_include_tail'] && is_include_path_check($ca['ca_include_tail']))

    @include_once($ca['ca_include_tail']);

else

    include_once(G5_SHOP_PATH.'/_tail.php');</p>

<p>echo "\n<!-- {$ca['ca_skin']} -->\n";</p>

<p>

 

 

상품 분류 카테고리 메뉴 링크만 바꿔주면 되는데

이것만 이틀동안 계속 알아봐도 건진게 없네요..ㅠㅠ

 

저처럼 잘 모르셨던 분이나 해결하신 분 있으시다면

도와주시면 정말 감사하겠습니다..!!ㅠㅠ   살려주세요..ㅠㅠㅠㅠㅠ

 

 

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

답변 2개

채택된 답변
+20 포인트
4년 전

1)

</p>

<p>for($i=0; $mshop_ca_row1=sql_fetch_array($mshop_ca_res1); $i++) {</p>

<p>

->

</p>

<p>for($i=0; $mshop_ca_row1=sql_fetch_array($mshop_ca_res1); $i++) {

  if ($mshop_ca_row1['ca_id'] == 'k2')            

    $t_link = shop_category_url($mshop_ca_row1['ca_id']); // k2 분류의 링크정보를 임시변수에 저장</p>

<p>

 

2)

</p>

<p><a href="<?php echo shop_category_url($mshop_ca_row1['ca_id']); ?>" class="cate_li_1_a"><?php echo get_text($mshop_ca_row1['ca_name']); ?></a></p>

<p>

->

</p>

<p><?php if ($mshop_ca_row1['ca_id'] == 'k1') { // k1 이면 원래대로 ?>                    

<a href="<?php echo shop_category_url($mshop_ca_row1['ca_id']); ?>" class="cate_li_1_a"><?php echo get_text($mshop_ca_row1['ca_name']); ?></a>

<?php } else { // 나머지는 임시 링크 변수로.. ?>                

<a href="<?php echo $t_link ?>" class="cate_li_1_a"><?php echo get_text($mshop_ca_row1['ca_name']); ?></a>

<?php } ?></p>

<p>

로그인 후 평가할 수 있습니다

답변에 대한 댓글 1개

d
dpsTldpvm
4년 전
말씀해주신대로 category.php 구간만 소스를 수정해봤는데 기존과 그대로되네요..ㅠㅠㅠ
다른 방법은 없겠죠..? ㅠ_ㅠ 보시고 알려주셔서 정말 감사합니다!!

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

exception
4년 전

추후 분류 수정이나 삭제 추가 등을 생각해서 그쪽에서 수정하시는것보다

GNB부분을 따로 하드코딩해서 정적으로 박아놓는게 더 나을거라 생각되네요

로그인 후 평가할 수 있습니다

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

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

로그인