-
영카트 상품 텍스트 필드 파일 추가 하기그누보드 2020. 4. 22. 10:28
/adm/config_form.php
파일에 넣었습니다만, 필드추가를 위한 부분이니 아무데나 넣고 웹에서 실행시켜줍니다.
// 주문시 추가내용/파일 입력위한 추가
sql_query(" ALTER TABLE `{$g5['g5_shop_cart_table']}`
ADD `ct_msg` varchar(255) NOT NULL DEFAULT '' AFTER `ct_select`,
ADD `ct_file` varchar(255) NOT NULL DEFAULT '' AFTER `ct_msg` ", true);
이제 mysql 은 준비되었으니,
주문하는 페이지부터 시작입니다.
/skin/shop/basic/item.form.skin.php
약 8번째줄
<form name="fitem" method="post" action="<?php echo $action_url; ?>" onsubmit="return fitem_submit(this);">
이부분을
<form name="fitem" method="post" enctype="MULTIPART/FORM-DATA" action="<?php echo $action_url; ?>" onsubmit="return fitem_submit(this);">
바꿔줍니다.
약 340번줄 즈음에
<!-- 다른 상품 보기 시작 { -->
.....
<!-- } 다른 상품 보기 끝 -->
다음에 아래를 추가해줍니다.
<!-- 별도 작업 요청사항 시작 { -->
<div id="sit_spinput">
<textarea name="work_msg"></textarea>
<input type="file" name="work_file">
</div>
<!-- } 별도 작업 요청사항 끝 -->
눈에 보이는 부분이 끝났습니다.
/shop/cartupdate.php
에서 처리할 부분은 실제로 내용을 입력, 제거시 첨부파일을 삭제하는 내용입니다.
약 50번째줄
else if ($act == "alldelete") // 모두 삭제이면
이부분의 바로다음,
$sql = " delete from {$g5['g5_shop_cart_table']}
이부분의 바로 전에,
//첨부 파일 삭제
$sqld = " select ct_file from {$g5['g5_shop_cart_table']} where od_id = '$tmp_cart_id' ";
$dwresult = sql_query($sqld);
for ($i=0; $row=mysql_fetch_array($dwresult); $i++)
@unlink(G5_DATA_PATH."/odfile/".$row[ct_file]);
추가해줍니다.
약 60번째줄
else if ($act == "seldelete") // 선택삭제
이부분 다음에
$it_id = $_POST['it_id'][$i];
의 바로 아래에
//첨부 파일 삭제
$sqld = " select ct_file from {$g5['g5_shop_cart_table']} where it_id = '$it_id' and od_id = '$tmp_cart_id' ";
$dw = sql_fetch($sqld);
@unlink(G5_DATA_PATH."/odfile/".$dw[ct_file]);
추가해줍니다.
내용을 db에 입력하고 파일을 업로드할차례입니다.
같은 파일에
약 206번째줄
$sql = " INSERT INTO {$g5['g5_shop_cart_table']}
( od_id, mb_id, it_id, it_name, it_sc_type, it_sc_method, it_sc_price, it_sc_minimum, it_sc_qty, ct_status, ct_price, ct_point, ct_point_use, ct_stock_use, ct_option, ct_qty, ct_notax, io_id, io_type, io_price, ct_time, ct_ip, ct_send_cost, ct_direct, ct_select )
VALUES ";
이부분을
$sql = " INSERT INTO {$g5['g5_shop_cart_table']}
( od_id, mb_id, it_id, it_name, it_sc_type, it_sc_method, it_sc_price, it_sc_minimum, it_sc_qty, ct_status, ct_price, ct_point, ct_point_use, ct_stock_use, ct_option, ct_qty, ct_notax, io_id, io_type, io_price, ct_time, ct_ip, ct_send_cost, ct_direct, ct_select, ct_msg, ct_file )
VALUES ";
보면 끝에 두 필드가 추가되있습니다.
268번째줄정도에
// 배송비결제
....
else if($it['it_sc_type'] > 1 && $it['it_sc_method'] == 1)
$ct_send_cost = 1; // 착불
이부분이 있습니다. 바로 다음에 추가해줍니다.
//작업용 파일 업로드 추가
if($_FILES['work_file']['name']){
$ct_file_dir = G5_DATA_PATH.'/odfile';
if(!is_dir($ct_file_dir)) {
@mkdir($ct_file_dir, G5_DIR_PERMISSION);
@chmod($ct_file_dir, G5_DIR_PERMISSION);
}
$f_pt = "/[#\&\+\-%@=\/\\:;,'\"\^`~\|\!\?\*\$#<>\(\)\[\]\{\}]/";
$work_file = $_FILES['work_file']['name'];
$work_file = preg_replace("/\s+/", "", $work_file);
$work_file = preg_replace( $f_pt, "", $work_file);
$work_file = preg_replace_callback(
"/[가-힣]+/",
create_function('$matches', 'return base64_encode($matches[0]);'),
$work_file);
$work_file = preg_replace( $f_pt, "", $work_file );
$work_file_check=strtolower(array_pop(explode('.',$work_file)));
$deny_file = array("php","php3","exe","cgi","phtml","html","htm","pl","asp","jsp","inc","dll");
if(in_array($work_file_check,$deny_file))
alert('$filename 파일은 업로드할수 없는 확장자의 파일입니다.');
$work_file = $tmp_cart_id."_".$work_file;
upload_file($_FILES['work_file']['tmp_name'], $work_file, $ct_file_dir);
}
그 바로 아래에
$sql .= $comma."( '$tmp_cart_id', '{$member['mb_id']}', '{$it['it_id']}', '".addslashes($it['it_name'])."', '{$it['it_sc_type']}', '{$it['it_sc_method']}', '{$it['it_sc_price']}', '{$it['it_sc_minimum']}', '{$it['it_sc_qty']}', '쇼핑', '{$it['it_price']}', '$point', '0', '0', '$io_value', '$ct_qty', '{$it['it_notax']}', '$io_id', '$io_type', '$io_price', '".G5_TIME_YMDHIS."', '$REMOTE_ADDR', '$ct_send_cost', '$sw_direct', '$ct_select' )";
이부부을
$sql .= $comma."( '$tmp_cart_id', '{$member['mb_id']}', '{$it['it_id']}', '".addslashes($it['it_name'])."', '{$it['it_sc_type']}', '{$it['it_sc_method']}', '{$it['it_sc_price']}', '{$it['it_sc_minimum']}', '{$it['it_sc_qty']}', '쇼핑', '{$it['it_price']}', '$point', '0', '0', '$io_value', '$ct_qty', '{$it['it_notax']}', '$io_id', '$io_type', '$io_price', '".G5_TIME_YMDHIS."', '$REMOTE_ADDR', '$ct_send_cost', '$sw_direct', '$ct_select', '".addslashes($work_msg)."', '$work_file' )";
와 같이 변경해줍니다.
cartupdate.php 부분이 끝났습니다.
이제 입력된 내용을 관리자가 확인해야겠습니다.
저는
/adm/shop_admin/orderform.php
파일에서만 내용을 확인하면 되겠다고 판단했습니다.
약 164번째줄에
$sql = " select ct_id, it_id, ct_price, ct_point, ct_qty, ct_option, ct_status, cp_price, ct_stock_use, ct_point_use, ct_send_cost, io_type, io_price
이 쿼리문을
$sql = " select ct_id, it_id, ct_price, ct_point, ct_qty, ct_option, ct_status, cp_price, ct_stock_use, ct_point_use, ct_send_cost, io_type, io_price, ct_msg, ct_file
와 같이 바꿔줍니다.
약 241번째줄이 </tr>입니다. 한 주문상품의 for 문중 테이블 라인이 끝나는 부분이지요.
이 바로 다음에 추가해줍니다.
<?php
if($opt['ct_msg'] || $opt['ct_file']) {
?>
<tr>
<th>추가작업내용</th>
<td colspan="8" class="td_mngsmall"><?php echo stripslashes($opt['ct_msg']); ?></td>
<th>첨부파일</th>
<td colspan="2" class="td_mngsmall"><a href="<?php echo G5_DATA_URL."/odfile/".$opt['ct_file']?>">다운받기</a></td>
</tr>
<?php
}
?>
이 내용으로 인해 주문이 들어왔을때 메세지 혹은 파일이 있을경우 한줄이 추가되어 확인가능해집니다.
이제 주문서를 삭제했을때를 위해 수정합니다.
yc5는 리스트에서 "주문"으로 검색시 해당되는 부분만 삭제버튼이 나타나게 되어있습니다.
때문에 /adm/shop_admin/orderlistdelete.php 파일만 수정합니다.
약 14번째줄 if (!$od) continue; 다음에
//첨부 파일 삭제
$sqld = " select ct_file from {$g5['g5_shop_cart_table']} where od_id = '$od_id' ";
$dwresult = sql_query($sqld);
for ($i=0; $row=mysql_fetch_array($dwresult); $i++)
@unlink(G5_DATA_PATH."/odfile/".$row[ct_file]);
위 내용을 추가해줍니다.
'그누보드' 카테고리의 다른 글
영카트 회원등급별 가격 변경 (0) 2020.04.22 회원비번없이 로그인하기 (0) 2020.04.22 탭메뉴 슬라이드 적용 (0) 2020.04.22 회원가입 파일추가 (0) 2020.04.22 리다이렉트 총 정리 (0) 2020.04.22