해피정

영카트5 관리자 상품관리 에서 카테고리 정렬 오류

[주] 이후 강좌수정내용의 업데이트가 안될수 있습니다.

본 강좌의 최신업데이트는 https://www.happyjung.com/lecture/3337 에서 확인가능합니다.

가급적 동일한 내용을 유지하려고 노력하지만, 우선 작업은 위 링크입니다.



영카트 관리자페이지에서 상품관리에서 카테고리 1차 2차 등의 순서가 올바르지 않게 나오는 현상 해결하기


1. /lib/shop.lib.php 내용 추가

// 분류 옵션 생성
function make_shop_category_options($parent_ca_id = '', $depth = 0)
{
    global $g5, $is_admin, $member;

    $sql = " select ca_id, ca_name, ca_order
               from {$g5['g5_shop_category_table']}
              where 1 ";

    if ($is_admin != 'super') {
        $sql .= " and ca_mb_id = '".sql_real_escape_string($member['mb_id'])."' ";
    }

    if ($parent_ca_id == '') {
        // 1차 분류만
        $sql .= " and length(ca_id) = 2 ";
    } else {
        // 현재 부모의 바로 아래 자식만
        $child_len = strlen($parent_ca_id) + 2;
        $sql .= " and ca_id like '".sql_real_escape_string($parent_ca_id)."%' ";
        $sql .= " and length(ca_id) = '{$child_len}' ";
    }

    $sql .= " order by ca_order, ca_id ";

    $result = sql_query($sql);
    $html = '';

    while ($row = sql_fetch_array($result)) {
        $nbsp = str_repeat('   ', $depth);
        $html .= '<option value="'.$row['ca_id'].'">'.$nbsp.get_text($row['ca_name']).'</option>'.PHP_EOL;

        // 현재 분류의 하위 분류 이어서 출력
        $html .= make_shop_category_options($row['ca_id'], $depth + 1);
    }

    return $html;
}

function make_shop_category_options_selected($selected_ca_id = '', $parent_ca_id = '', $depth = 0)
{
    global $g5, $is_admin, $member;

    $sql = " select ca_id, ca_name, ca_order
               from {$g5['g5_shop_category_table']}
              where 1 ";

    if ($is_admin != 'super') {
        $sql .= " and ca_mb_id = '".sql_real_escape_string($member['mb_id'])."' ";
    }

    if ($parent_ca_id == '') {
        $sql .= " and length(ca_id) = 2 ";
    } else {
        $child_len = strlen($parent_ca_id) + 2;
        $sql .= " and ca_id like '".sql_real_escape_string($parent_ca_id)."%' ";
        $sql .= " and length(ca_id) = '{$child_len}' ";
    }

    $sql .= " order by ca_order, ca_id ";

    $result = sql_query($sql);
    $html = '';

    while ($row = sql_fetch_array($result)) {
        $nbsp = str_repeat('   ', $depth);
        $selected = get_selected($selected_ca_id, $row['ca_id']);
        $html .= '<option value="'.$row['ca_id'].'" '.$selected.'>'.$nbsp.get_text($row['ca_name']).'</option>'.PHP_EOL;
        $html .= make_shop_category_options_selected($selected_ca_id, $row['ca_id'], $depth + 1);
    }

    return $html;
}




2. /adm/shop_admin/itemlist.php
<<<< 변경전 >>>>
// 분류
$ca_list  = '<option value="">선택</option>'.PHP_EOL;
$sql = " select * from {$g5['g5_shop_category_table']} ";
if ($is_admin != 'super')
    $sql .= " where ca_mb_id = '{$member['mb_id']}' ";
$sql .= " order by ca_order, ca_id ";
$result = sql_query($sql);
for ($i=0; $row=sql_fetch_array($result); $i++)
{
    $len = strlen($row['ca_id']) / 2 - 1;
    $nbsp = '';
    for ($i=0; $i<$len; $i++) {
        $nbsp .= '   ';
    }
    $ca_list .= '<option value="'.$row['ca_id'].'">'.$nbsp.$row['ca_name'].'</option>'.PHP_EOL;
}

<<<< 변경후 >>>>
// 분류
// lib/shop.lib.php 
// function make_shop_category_options($parent_ca_id = '', $depth = 0)
$ca_list  = '<option value="">선택</option>'.PHP_EOL;
$ca_list .= make_shop_category_options();
/*$ca_list  = '<option value="">선택</option>'.PHP_EOL;
$sql = " select * from {$g5['g5_shop_category_table']} ";
if ($is_admin != 'super')
    $sql .= " where ca_mb_id = '{$member['mb_id']}' ";
$sql .= " order by ca_order, ca_id ";
$result = sql_query($sql);
for ($i=0; $row=sql_fetch_array($result); $i++)
{
    $len = strlen($row['ca_id']) / 2 - 1;
    $nbsp = '';
    for ($i=0; $i<$len; $i++) {
        $nbsp .= '   ';
    }
    $ca_list .= '<option value="'.$row['ca_id'].'">'.$nbsp.$row['ca_name'].'</option>'.PHP_EOL;
}*/



3. /adm/shop_admin/itemlist.php
<<<< 변경전 >>>>
<select name="sca" id="sca">
    <option value="">전체분류</option>
    <?php
    $sql1 = " select ca_id, ca_name from {$g5['g5_shop_category_table']} order by ca_order, ca_id ";
    $result1 = sql_query($sql1);
    for ($i=0; $row1=sql_fetch_array($result1); $i++) {
        $len = strlen($row1['ca_id']) / 2 - 1;
        $nbsp = '';
        for ($i=0; $i<$len; $i++) $nbsp .= '   ';
        echo '<option value="'.$row1['ca_id'].'" '.get_selected($sca, $row1['ca_id']).'>'.$nbsp.$row1['ca_name'].'</option>'.PHP_EOL;
    }
    ?>
</select>


<<<< 변경후 >>>>
<select name="sca" id="sca">
    <option value="">전체분류</option>
    <?php
    // lib/shop.lib.php 
    // function make_shop_category_options_selected($selected_ca_id = '', $parent_ca_id = '', $depth = 0)
    /*
    $sql1 = " select ca_id, ca_name from {$g5['g5_shop_category_table']} order by ca_order, ca_id ";
    $result1 = sql_query($sql1);
    for ($i=0; $row1=sql_fetch_array($result1); $i++) {
        $len = strlen($row1['ca_id']) / 2 - 1;
        $nbsp = '';
        for ($i=0; $i<$len; $i++) $nbsp .= '   ';
        echo '<option value="'.$row1['ca_id'].'" '.get_selected($sca, $row1['ca_id']).'>'.$nbsp.$row1['ca_name'].'</option>'.PHP_EOL;
    }
    */
    echo make_shop_category_options_selected($sca); 
    ?>
</select>



4-1. /adm/shop_admin/itemform.php
<<<< 변경전 >>>>
// 분류리스트
$category_select = '';
$script = '';
$sql = " select * from {$g5['g5_shop_category_table']} ";
if ($is_admin != 'super')
    $sql .= " where ca_mb_id = '{$member['mb_id']}' ";
$sql .= " order by ca_order, ca_id ";
$result = sql_query($sql);
for ($i=0; $row=sql_fetch_array($result); $i++)
{
    $len = strlen($row['ca_id']) / 2 - 1;

    $nbsp = "";
    for ($i=0; $i<$len; $i++)
        $nbsp .= "   ";

    $category_select .= "<option value=\"{$row['ca_id']}\">$nbsp{$row['ca_name']}</option>\n";

    $script .= "ca_use['{$row['ca_id']}'] = {$row['ca_use']};\n";
    $script .= "ca_stock_qty['{$row['ca_id']}'] = {$row['ca_stock_qty']};\n";
    //$script .= "ca_explan_html['$row[ca_id]'] = $row[ca_explan_html];\n";
    $script .= "ca_sell_email['{$row['ca_id']}'] = '{$row['ca_sell_email']}';\n";
}


<<<<  변경후 >>>>
// 분류리스트
$category_select = make_shop_category_options();
$script = '';

$sql = " select ca_id, ca_use, ca_stock_qty, ca_sell_email
           from {$g5['g5_shop_category_table']} ";
if ($is_admin != 'super')
    $sql .= " where ca_mb_id = '{$member['mb_id']}' ";
$sql .= " order by ca_id ";
$result = sql_query($sql);

for ($i=0; $row=sql_fetch_array($result); $i++)
{
    $script .= "ca_use['{$row['ca_id']}'] = {$row['ca_use']};\n";
    $script .= "ca_stock_qty['{$row['ca_id']}'] = {$row['ca_stock_qty']};\n";
    $script .= "ca_sell_email['{$row['ca_id']}'] = '".addslashes($row['ca_sell_email'])."';\n";
}




4-2. /adm/shop_admin/itemform.php
<<<< 변경전 >>>>
                <select id="sch_relation">
                    <option value=''>분류별 상품</option>
                    <?php
                        $sql = " select * from {$g5['g5_shop_category_table']} ";
                        if ($is_admin != 'super')
                            $sql .= " where ca_mb_id = '{$member['mb_id']}' ";
                        $sql .= " order by ca_order, ca_id ";
                        $result = sql_query($sql);
                        for ($i=0; $row=sql_fetch_array($result); $i++)
                        {
                            $len = strlen($row['ca_id']) / 2 - 1;

                            $nbsp = "";
                            for ($i=0; $i<$len; $i++)
                                $nbsp .= "   ";

                            echo "<option value=\"{$row['ca_id']}\">$nbsp{$row['ca_name']}</option>\n";
                        }
                    ?>
                </select>


<<<<  변경후 >>>>
               <select id="sch_relation">
                    <option value=''>분류별 상품</option>
                    <?php
                        /*
                        $sql = " select * from {$g5['g5_shop_category_table']} ";
                        if ($is_admin != 'super')
                            $sql .= " where ca_mb_id = '{$member['mb_id']}' ";
                        $sql .= " order by ca_order, ca_id ";
                        $result = sql_query($sql);
                        for ($i=0; $row=sql_fetch_array($result); $i++)
                        {
                            $len = strlen($row['ca_id']) / 2 - 1;

                            $nbsp = "";
                            for ($i=0; $i<$len; $i++)
                                $nbsp .= "   ";

                            echo "<option value=\"{$row['ca_id']}\">$nbsp{$row['ca_name']}</option>\n";
                        }*/
                        echo make_shop_category_options();
                    ?>
                </select>
총 1명이 반응했습니다
|

댓글 1개

감사합니다.
댓글을 작성하시려면 로그인이 필요합니다.
+
제목 글쓴이 날짜 조회
05-20 조회 269
04-22 조회 477
04-14 조회 410
03-22 조회 525
03-21 조회 567
02-26 조회 682
02-21 조회 953
02-20 조회 740
02-19 조회 762
02-17 조회 1,299
02-13 조회 1,335
02-13 조회 805
02-03 조회 954
01-29 조회 1,182
25-12-17 조회 1,490
25-12-07 조회 1,422
25-11-30 조회 1,507
25-11-15 조회 1,703
25-10-26 조회 1,876
25-10-25 조회 1,444
25-10-14 조회 1,709
25-10-11 조회 1,755
25-10-10 조회 1,583
25-10-05 조회 2,191
25-10-01 조회 1,698
25-09-25 조회 1,777
25-09-21 조회 1,588
25-09-19 조회 1,545
25-09-09 조회 1,772
25-09-03 조회 1,787