Search...
그누보드 분류관리 커스텀
브랜드 관리 소스 추가
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',
)