Skip to content
On this page

그누보드 분류관리 커스텀

브랜드 관리 소스 추가

categoryform.php 접속해서 소스 추가한다.

php
//적절한 곳에서 추가하면된다.
 <tr>
    <th scope="row"><label for="it_img">브랜드이미지</label></th>
    <td>
        <?php echo help("브랜드 이미지를 입력해주세요."); ?>
        <input type="file" name="ca_brand_img" id="ca_brand_img">
        <?php
        $ca_brand_img = G5_DATA_PATH.'/brand/'.$ca['ca_brand_img'];
        $ca_brand_img_exists = is_file($ca_brand_img) && file_exists($ca_brand_img);
        if($ca_brand_img_exists) {
            $thumb = get_brand_thumbnail($ca['ca_brand_img'], 25, 25);
            $img_tag = "<img src='".G5_DATA_URL."/brand/".$ca['ca_brand_img']."' class='shop_item_preview_image' >";
            ?>
            <label for="ca_brand_del"><span class="sound_only">이미지 </span>파일삭제</label>
            <input type="checkbox" name="ca_brand_del" id="ca_brand_del" value="1">
            <span class="sit_wimg_limg1"><?php echo $thumb; ?></span>
            <div id="limg1" class="banner_or_img">
                <?php echo $img_tag; ?>
                <button type="button" class="sit_wimg_close">닫기</button>
            </div>
            <script>
                $('<button type="button" id="it_limg1_view" class="btn_frmline sit_wimg_view">이미지 확인</button>').appendTo('.sit_wimg_limg1');
            </script>
        <?php } ?>
    </td>
</tr>

shop.lib.php 에서 추가하면된다. 혹은 extend에서 추가해도 좋다.

php
// 브랜드 이미지 썸네일 20210917
function get_brand_thumbnail($img, $width, $height=0, $id='', $is_crop=false)
{
    $str = '';
  
    if ( $replace_tag = run_replace('get_brand_thumbnail', $str, $img, $width, $height, $id, $is_crop) ){
        return $replace_tag;
    }
  
    $file = G5_DATA_PATH.'/brand/'.$img;
    if(is_file($file))
        $size = @getimagesize($file);
  
    if (! (isset($size) && is_array($size)))
        return '';
  
    if($size[2] < 1 || $size[2] > 3)
        return '';
  
    $img_width = $size[0];
    $img_height = $size[1];
    $filename = basename($file);
    $filepath = dirname($file);
  
    if($img_width && !$height) {
        $height = round(($width * $img_height) / $img_width);
    }
  
    $thumb = thumbnail($filename, $filepath, $filepath, $width, $height, false, $is_crop, 'center', false, $um_value='80/0.5/3');
  
    if($thumb) {
        $file_url = str_replace(G5_PATH, G5_URL, $filepath.'/'.$thumb);
        $str = '<img src="'.$file_url.'" width="'.$width.'" height="'.$height.'"';
        if($id)
            $str .= ' id="'.$id.'"';
        $str .= ' alt="">';
    }
  
    return $str;
}
  
  
  
// 브랜드 이미지 업로드 추가 20210917
function brand_img_upload($srcfile, $filename, $dir)
{
    if($filename == '')
        return '';
  
    $size = @getimagesize($srcfile);
    if($size[2] < 1 || $size[2] > 3)
        return '';
  
    //php파일도 getimagesize 에서 Image Type Flag 를 속일수 있다
    if (!preg_match('/\.(gif|jpe?g|png)$/i', $filename))
        return '';
  
    if(!is_dir($dir)) {
        @mkdir($dir, 707);
        @chmod($dir, 707);
    }
  
    $pattern = "/[#\&\+\-%@=\/\\:;,'\"\^`~\|\!\?\*\$#<>\(\)\[\]\{\}]/";
  
    $filename = preg_replace("/\s+/", "", $filename);
    $filename = preg_replace( $pattern, "", $filename);
  
    $filename = preg_replace_callback("/[가-힣]+/", '_callback_it_img_upload', $filename);
  
    $filename = preg_replace( $pattern, "", $filename);
    $prepend = '';
  
    // 동일한 이름의 파일이 있으면 파일명 변경
    if(is_file($dir.'/'.$filename)) {
        for($i=0; $i<20; $i++) {
            $prepend = str_replace('.', '_', microtime(true)).'_';
  
            if(is_file($dir.'/'.$prepend.$filename)) {
                usleep(mt_rand(100, 10000));
                continue;
            } else {
                break;
            }
        }
    }
  
    $filename = $prepend.$filename;
  
    upload_file($srcfile, $filename, $dir);
  
    $file = str_replace(G5_DATA_PATH.'/brand/', '', $dir.'/'.$filename);
  
    return $file;
}


//categoryformupdate.php
  
//여기서 $ca_id 변수 밑에서 소스 추가를 하면된다.
  
  
@mkdir(G5_DATA_PATH."/brand", 707);
@chmod(G5_DATA_PATH."/brand", 707);
  
  
$ca_brand_img = '';
// 파일정보
if($w == "u") {
    $sql = " select ca_brand_img
            from {$g5['g5_shop_category_table']}
            where ca_id = '$ca_id' ";
    $file = sql_fetch($sql);
  
    $ca_brand_img = $file['ca_brand_img'];
}
  
$brand_dir = G5_DATA_PATH.'/brand';
  
  
$ca_brand_del = isset($_POST['ca_brand_del']) ? $_POST['ca_brand_del'] : 0;
  
// 파일삭제
if ($ca_brand_del) {
    $file_img1 = $brand_dir.'/'.clean_relative_paths($ca_brand_img);
    @unlink($file_img1);
    delete_item_thumbnail(dirname($file_img1), basename($file_img1));
    $ca_brand_del = '';
}
  
// 이미지업로드
if ($_FILES['ca_brand_img']['name']) {
    if($w == 'u' && $ca_brand_img) {
        $file_img1 = $brand_dir.'/'.clean_relative_paths($ca_brand_img);
        @unlink($file_img1);
        delete_item_thumbnail(dirname($file_img1), basename($file_img1));
    }
    $ca_brand_img = brand_img_upload($_FILES['ca_brand_img']['tmp_name'], $_FILES['ca_brand_img']['name'], $brand_dir.'/'.$ca_id);
}
  
$brand_full_path = $ca_brand_img;
  
190줄에서 추가하면된다.
$sql_common = "
ca_brand_img            = '$brand_full_path', "

여기서 파일 등록이 안되면 쓰기권한을 줘야한다. 707로 brand 파일 권한을 주면 된다.

원인 :

분류관리에서 커스텀 작업 했는데 자료가 없습니다. 라는 메시지가 뜬다.

그누보드에서 분류관리 브랜드 이미지 추가 하는 작업을 하고 있는데 문제가 발생됐을때..

밑에 보니까 $check_str_keys 배열에 추가가 되지 않아서 생기는 문제다.

해결 방법 :

php
$check_str_keys = array(
    'ca_brand_img' => 'str',
)