'; } else { $str = ' 3) continue; $filename = basename($file); $filepath = dirname($file); $img_width = $size[0]; $img_height = $size[1]; break; } } if($img_width && !$height) { $height = round(($width * $img_height) / $img_width); } if($filename) { //thumbnail($filename, $source_path, $target_path, $thumb_width, $thumb_height, $is_create, $is_crop=false, $crop_mode='center', $is_sharpen=true, $um_value='80/0.5/3') $thumb = thumbnail($filename, $filepath, $filepath, $width, $height, false, false, 'center', true, $um_value='80/0.5/3'); } if($thumb) { $file_url = str_replace(G4_PATH, G4_URL, $filepath.'/'.$thumb); $img = ''.$img.''; return $img; } function get_it_thumbnail($img, $width, $height=0, $id='') { $str = ''; $file = G4_DATA_PATH.'/item/'.$img; if(is_file($file)) $size = @getimagesize($file); 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, false, 'center', true, $um_value='80/0.5/3'); if($thumb) { $file_url = str_replace(G4_PATH, G4_URL, $filepath.'/'.$thumb); $str = ''; if ($btn_image) $str .= '큰이미지'; } else $str = ''; return $str; } // 금액 표시 function display_price($price, $tel_inq=false) { if ($tel_inq) $price = '전화문의'; else $price = number_format($price, 0).'원'; return $price; } // 금액표시 // $it : 상품 배열 function get_price($it) { global $member; if ($it['it_tel_inq']) return '전화문의'; $price = $it['it_price']; return (int)$price; } // 포인트 표시 function display_point($point) { return number_format($point, 0).'점'; } // 포인트를 구한다 function get_point($amount, $point) { return (int)($amount * $point / 100); } // HTML 특수문자 변환 htmlspecialchars function htmlspecialchars2($str) { $trans = array("\"" => """, "'" => "'", "<"=>"<", ">"=>">"); $str = strtr($str, $trans); return $str; } // 상품이미지 업로드 function it_img_upload($srcfile, $filename, $dir) { if($filename == '') return ''; $size = @getimagesize($srcfile); if($size[2] < 1 || $size[2] > 3) return ''; if(!is_dir($dir)) { @mkdir($dir, 0707); @chmod($dir, 0707); } $filename = preg_replace("/\s+/", "", $filename); $filename = preg_replace("/[#\&\+\-%@=\/\\:;,'\"\^`~\|\!\?\*\$#<>\(\)\[\]\{\}]/", "", $filename); $filename = preg_replace_callback( "/[가-힣]+/", create_function('$matches', 'return base64_encode($matches[0]);'), $filename); upload_file($srcfile, $filename, $dir); $file = str_replace(G4_DATA_PATH.'/item/', '', $dir.'/'.$filename); return $file; } // 파일을 업로드 함 function upload_file($srcfile, $destfile, $dir) { if ($destfile == "") return false; // 업로드 한후 , 퍼미션을 변경함 @move_uploaded_file($srcfile, $dir.'/'.$destfile); @chmod($dir.'/'.$destfile, 0606); return true; } function message($subject, $content, $align="left", $width="450") { $str = "
$subject
$content

"; return $str; } // 시간이 비어 있는지 검사 function is_null_time($datetime) { // 공란 0 : - 제거 //$datetime = ereg_replace("[ 0:-]", "", $datetime); // 이 함수는 PHP 5.3.0 에서 배제되고 PHP 6.0 부터 사라집니다. $datetime = preg_replace("/[ 0:-]/", "", $datetime); if ($datetime == "") return true; else return false; } // 출력유형, 스킨파일, 1라인이미지수, 총라인수, 이미지폭, 이미지높이 // 1.02.01 $ca_id 추가 function display_type($type, $skin_file, $list_mod, $list_row, $img_width, $img_height, $ca_id="") { global $member, $g4, $config; // 상품의 갯수 $items = $list_mod * $list_row; // 1.02.00 // it_order 추가 $sql = " select * from {$g4['shop_item_table']} where it_use = '1' and it_type{$type} = '1' "; if ($ca_id) $sql .= " and ca_id like '$ca_id%' "; $sql .= " order by it_order, it_id desc limit $items "; $result = sql_query($sql); /* if (!mysql_num_rows($result)) { return false; } */ $file = G4_SHOP_PATH.'/'.$skin_file; if (!file_exists($file)) { echo $file.' 파일을 찾을 수 없습니다.'; } else { $td_width = (int)(100 / $list_mod); include $file; } } // 모바일 유형별 상품 출력 function mobile_display_type($type, $skin_file, $list_row, $img_width, $img_height, $ca_id="") { global $member, $g4, $config; // 상품의 갯수 $items = $list_row; // 1.02.00 // it_order 추가 $sql = " select * from {$g4['shop_item_table']} where it_use = '1' and it_type{$type} = '1' "; if ($ca_id) $sql .= " and ca_id like '$ca_id%' "; $sql .= " order by it_order, it_id desc limit $items "; $result = sql_query($sql); /* if (!mysql_num_rows($result)) { return false; } */ $file = G4_MSHOP_PATH.'/'.$skin_file; if (!file_exists($file)) { echo $file.' 파일을 찾을 수 없습니다.'; } else { //$td_width = (int)(100 / $list_mod); include $file; } } // 분류별 출력 // 스킨파일번호, 1라인이미지수, 총라인수, 이미지폭, 이미지높이 , 분류번호 function display_category($no, $list_mod, $list_row, $img_width, $img_height, $ca_id="") { global $member, $g4; // 상품의 갯수 $items = $list_mod * $list_row; $sql = " select * from {$g4['shop_item_table']} where it_use = '1'"; if ($ca_id) $sql .= " and ca_id LIKE '{$ca_id}%' "; $sql .= " order by it_order, it_id desc limit $items "; $result = sql_query($sql); if (!mysql_num_rows($result)) { return false; } $file = G4_SHOP_PATH.'/maintype'.$no.'.inc.php'; if (!file_exists($file)) { echo $file.' 파일을 찾을 수 없습니다.'; } else { $td_width = (int)(100 / $list_mod); include $file; } } // 별 function get_star($score) { if ($score > 8) $star = 5; else if ($score > 6) $star = 4; else if ($score > 4) $star = 3; else if ($score > 2) $star = 2; else if ($score > 0) $star = 1; else $star = 5; return $star; } // 별 이미지 function get_star_image($it_id) { global $g4; $sql = "select (SUM(is_score) / COUNT(*)) as score from {$g4['shop_item_ps_table']} where it_id = '$it_id' "; $row = sql_fetch($sql); return (int)get_star($row['score']); } // 메일 보내는 내용을 HTML 형식으로 만든다. function email_content($str) { global $g4; $s = ""; $s .= "메일\n"; $s .= "\n"; $s .= $str; $s .= "\n"; $s .= ""; return $s; } // 타임스탬프 형식으로 넘어와야 한다. // 시작시간, 종료시간 function gap_time($begin_time, $end_time) { $gap = $end_time - $begin_time; $time['days'] = (int)($gap / 86400); $time['hours'] = (int)(($gap - ($time['days'] * 86400)) / 3600); $time['minutes'] = (int)(($gap - ($time['days'] * 86400 + $time['hours'] * 3600)) / 60); $time['seconds'] = (int)($gap - ($time['days'] * 86400 + $time['hours'] * 3600 + $time['minutes'] * 60)); return $time; } // 공란없이 이어지는 문자 자르기 (wayboard 참고 (way.co.kr)) function continue_cut_str($str, $len=80) { /* $pattern = "[^ \n<>]{".$len."}"; return eregi_replace($pattern, "\\0\n", $str); */ $pattern = "/[^ \n<>]{".$len."}/"; return preg_replace($pattern, "\\0\n", $str); } // 제목별로 컬럼 정렬하는 QUERY STRING // $type 이 1이면 반대 function title_sort($col, $type=0) { global $sort1, $sort2; global $_SERVER; global $page; global $doc; $q1 = 'sort1='.$col; if ($type) { $q2 = 'sort2=desc'; if ($sort1 == $col) { if ($sort2 == 'desc') { $q2 = 'sort2=asc'; } } } else { $q2 = 'sort2=asc'; if ($sort1 == $col) { if ($sort2 == 'asc') { $q2 = 'sort2=desc'; } } } #return "$_SERVER[PHP_SELF]?$q1&$q2&page=$page"; return "{$_SERVER['PHP_SELF']}?$q1&$q2&page=$page"; } // 세션값을 체크하여 이쪽에서 온것이 아니면 메인으로 function session_check() { global $g4; if (!trim(get_session('ss_uniqid'))) gotourl(G4_SHOP_URL); } // 상품 선택옵션 function get_item_options($it_id, $subject) { global $g4; if(!$it_id || !$subject) return ''; $sql = " select * from {$g4['shop_item_option_table']} where io_type = '0' and it_id = '$it_id' and io_use = '1' order by io_no asc "; $result = sql_query($sql); if(!mysql_num_rows($result)) return ''; $str = ''; $subj = explode(',', $subject); $subj_count = count($subj); $options = array(); // 옵션항목 배열에 저장 for($i=0; $row=sql_fetch_array($result); $i++) { $opt_id = explode(chr(30), $row['io_id']); for($k=0; $k<$subj_count; $k++) { if(!is_array($options[$k])) $options[$k] = array(); if($opt_id[$k] && !in_array($opt_id[$k], $options[$k])) $options[$k][] = $opt_id[$k]; } } // 옵션선택목록 만들기 for($i=0; $i<$subj_count; $i++) { $opt = $options[$i]; $opt_count = count($opt); $disabled = ''; if($opt_count) { $seq = $i + 1; if($i > 0) $disabled = ' disabled="disabled"'; $str .= ''.PHP_EOL; $str .= ''.PHP_EOL; $select = ''.PHP_EOL; $str .= ''.$select.''.PHP_EOL; $str .= ''.PHP_EOL; } } return $str; } // 상품 추가옵션 function get_item_supply($it_id, $subject) { global $g4; if(!$it_id || !$subject) return ''; $sql = " select * from {$g4['shop_item_option_table']} where io_type = '1' and it_id = '$it_id' and io_use = '1' order by io_no asc "; $result = sql_query($sql); if(!mysql_num_rows($result)) return ''; $str = ''; $str .= ''.PHP_EOL; $str .= '추가상품'.PHP_EOL; $str .= '추가구매를 원하시면 선택하세요.'.PHP_EOL; $str .= ''.PHP_EOL; $subj = explode(',', $subject); $subj_count = count($subj); $options = array(); // 옵션항목 배열에 저장 for($i=0; $row=sql_fetch_array($result); $i++) { $opt_id = explode(chr(30), $row['io_id']); if($opt_id[0] && !array_key_exists($opt_id[0], $options)) $options[$opt_id[0]] = array(); if($opt_id[1] && !in_array($opt_id[1], $options[$opt_id[0]])) $options[$opt_id[0]][] = $opt_id[1]; } // 옵션항목 만들기 for($i=0; $i<$subj_count; $i++) { $opt = $options[$subj[$i]]; $opt_count = count($opt); if($opt_count) { $seq = $i + 1; $str .= ''.PHP_EOL; $str .= ''.PHP_EOL; $select = ''.PHP_EOL; $str .= ''.$select.''.PHP_EOL; $str .= ''.PHP_EOL; } } return $str; } // 인수는 $it_id, $it_opt1, ..., $it_opt6 까지 넘어옴 function print_item_options() { global $g4; $it_id = func_get_arg(0); $sql = " select it_opt1_subject, it_opt2_subject, it_opt3_subject, it_opt4_subject, it_opt5_subject, it_opt6_subject from {$g4['shop_item_table']} where it_id = '$it_id' "; $it = sql_fetch($sql); $it_name = $str_split = ''; for ($i=1; $i<=6; $i++) { if ($i == 1) $str_split .= '상품옵션 '; $it_opt = trim(func_get_arg($i)); // 상품옵션에서 0은 제외되는 현상을 수정 if ($it_opt==null) continue; $it_name .= $str_split; $it_opt_subject = $it['it_opt'.$i.'_subject']; $opt = explode( ';', $it_opt ); $it_name .= $it_opt_subject.' = '.$opt[0]; if ($opt[1] != 0) { $it_name .= ' ('; //if (ereg("[+]", $opt[1]) == true) if (preg_match("/[+]/", $opt[1]) == true) $it_name .= '+'; $it_name .= display_price($opt[1]).')'; } $str_split = '
'; } return $it_name; } function it_name_icon($it, $it_name="", $url=1) { global $g4; $str = ''; if ($it_name) $str = $it_name; // 제목이 없으면 아이콘만 나오도록 주석처리 - 지운아빠 2013-05-03 //else // $str = stripslashes($it['it_name']); if ($url) $str = ''.$str.''; $str .= ''; // 품절 $stock = get_it_stock_qty($it['it_id']); if ($stock <= 0) $str .= ' 품절 '; if ($it['it_type1']) $str .= '히트'; if ($it['it_type2']) $str .= '추천'; if ($it['it_type3']) $str .= '신상품'; if ($it['it_type4']) $str .= '인기'; if ($it['it_type5']) $str .= '할인'; $str .= ''; return $str; } // 일자형식변환 function date_conv($date, $case=1) { if ($case == 1) { // 년-월-일 로 만들어줌 $date = preg_replace("/([0-9]{4})([0-9]{2})([0-9]{2})/", "\\1-\\2-\\3", $date); } else if ($case == 2) { // 년월일 로 만들어줌 $date = preg_replace("/-/", "", $date); } return $date; } // 배너출력 function display_banner($position, $num="") { global $g4; if (!$position) $position = '왼쪽'; include G4_SHOP_PATH.'/boxbanner'.$num.'.inc.php'; } // 1.00.02 // 파일번호, 이벤트번호, 1라인이미지수, 총라인수, 이미지폭, 이미지높이 // 1.02.01 $ca_id 추가 function display_event($no, $event, $list_mod, $list_row, $img_width, $img_height, $ca_id="") { global $member, $g4; // 상품의 갯수 $items = $list_mod * $list_row; // 1.02.00 // b.it_order 추가 $sql = " select b.* from {$g4['shop_event_item_table']} a, {$g4['shop_item_table']} b where a.it_id = b.it_id and b.it_use = '1' and a.ev_id = '$event' "; if ($ca_id) $sql .= " and ca_id = '$ca_id' "; $sql .= " order by b.it_order, a.it_id desc limit $items "; $result = sql_query($sql); if (!mysql_num_rows($result)) { return false; } $file = G4_SHOP_PATH.'/maintype'.$no.'.inc.php'; if (!file_exists($file)) { echo $file.' 파일을 찾을 수 없습니다.'; } else { $td_width = (int)(100 / $list_mod); include $file; } } function get_yn($val, $case='') { switch ($case) { case '1' : $result = ($val > 0) ? 'Y' : 'N'; break; default : $result = ($val > 0) ? '예' : '아니오'; } return $result; } // 상품명과 건수를 반환 function get_goods($uq_id) { global $g4; // 상품명만들기 $row = sql_fetch(" select a.it_id, b.it_name from {$g4['shop_cart_table']} a, {$g4['shop_item_table']} b where a.it_id = b.it_id and a.uq_id = '$uq_id' order by ct_id limit 1 "); // 상품명에 "(쌍따옴표)가 들어가면 오류 발생함 $goods['it_id'] = $row['it_id']; $goods['full_name']= $goods['name'] = addslashes($row['it_name']); // 특수문자제거 $goods['full_name'] = preg_replace ("/[ #\&\+\-%@=\/\\\:;,\.'\"\^`~\_|\!\?\*$#<>()\[\]\{\}]/i", "", $goods['full_name']); // 상품건수 $row = sql_fetch(" select count(*) as cnt from {$g4['shop_cart_table']} where uq_id = '$uq_id' "); $cnt = $row['cnt'] - 1; if ($cnt) $goods['full_name'] .= ' 외 '.$cnt.'건'; $goods['count'] = $row['cnt']; return $goods; } // 패턴의 내용대로 해당 디렉토리에서 정렬하여