지업로더 필수 패치 :: 파일정렬 > 그누4 팁자료실

그누4 팁자료실

그누보드4와 관련된 팁을 여러분들과 함께 공유하세요.
나누면 즐거움이 커집니다.

지업로더 필수 패치 :: 파일정렬 정보

지업로더 필수 패치 :: 파일정렬

본문

이 팁은 김처로님의 팁&테크를 기반으로 만들어졌습니다.
http://sir.co.kr/bbs/board.php?bo_table=g4_tiptech&wr_id=13136

서론 ..
  - 먼저 김처로님의 지에디터와 지업로더 같이 쓰기 팁을 먼저 수정해주세요.
photo_delete_file.php 수정하기
  - line 29에 보시면 @unlink($file); 코드가 있습니다. 이 코드 부터 맨 밑의 echo $msg; 전까지 코드를 모두 삭제하신 후, 다음 소스를 붙여주세요. (@unlink($file); 아래, echo $msg; 위)

@unlink($file);

// 여기서부터 수정본 코드
$delete_num = $bf_no;
$delete_sql = "delete from $g4[board_file_table] where bo_table = '$bo_table' and wr_id = '$wr_id' and bf_no = '$bf_no'";
sql_query($delete_sql);

$i = $delete_num;
$sql = " select * from {$g4['board_file_table']} where bo_table = '{$bo_table}' and wr_id = '{$wr_id}' and bf_no > '{$i}'";
$qry = sql_query($sql);
while($row = sql_fetch_array($qry)) {
 if(!$row[bf_file]) {
  break;
 } else {
  sql_query ("update $g4[board_file_table] set bf_no = '$i' where bo_table = '$bo_table' and wr_id = '$wr_id' and bf_no = '$row[bf_no]'");
  $i++;
 }
}
// 여기가 끝

echo $msg;
}
?>
guploader.js 수정하기
  - this.delete_file_complete = function() 을 찾아보시면 if (fl.options.length) 코드 위에다가 아래코드를 붙입니다.

// 수정본 코드 추가
this.after_upload();

 

개요를 말씀드리자면, 김처로님의 글중 "그리고, 파일을 삭제하고 다시 올릴 경우에는 파일 테이블에서 빈 공간이 생긴다라는 것 정도 될것 같네요" 라고 말씀하셨습니다.

실제 원본 코드를 보면 파일삭제를 할 시, 그 $bf_no 의 행을 삭제하는게 아니라 모든 값을 '' 즉, 빈 값으로 수정하게 됩니다. 그리고 마지막 $bf_no의 행에서만 제한적으로 삭제를 합니다.
그리고 이 빈 값이 그대로 유지되면 만일 0번 파일에서 섬네일을 생성시, 파일값이 없으므로 수정이든 어떻게 하든 절대 생성이 되지않아, 고민을 한 끝에 한번 수정해보자 하였습니다.

저 같은 경우 (곧 배포될) 저의 섬네일 생성기 + unsharpenmask 를 이용하는데 이 때 DB로 불러와서 섬네일을 생성해야하는데, 이게 안되가지고 어떻게 하면 정렬을 할 수 있을까 고민을 하였습니다.
그래서 한번 시뮬레이터를 상상해보았지요.

만일.... 아래처럼 "간단"하게 설명하자면

bf_no            파일
0                  1.jpg
1                  2.jpg
2                  3.jpg
3                  4.jpg

이렇게 되어있는데 만일 2.jpg를 삭제한다면 원본 코드상에서는 bf_no의 1의 파일값이 텅 비게되있습니다. 그래서 텅 비게 하는 소스를 행 삭제를 실행하고 그 전엔 bf_no의 숫자를 외웁니다.

그러면 DB로 삭제된 bf_no값보다 이상인 숫자들만 sql_fetch_array로 그 이상 번호들을 bf_no의 숫자로 맞춰줍니다. 만일 중간에 bf_no가 비더라도, 딱딱 맞출수 있도록 설정해놓으며, 그러면 아래처럼 바뀌게 될것입니다 (bf_no 1 행 삭제)

bf_no            파일
0                  1.jpg
1                  3.jpg
2                  4.jpg

여기서 DB상으로는 photo_delete_file.jpg 로 구현할 수 있게 됩니다.
그러나 정작 지업로더의 파일목록에서 각 파일 값의 bf_no를 수정해주지 않으면 결국
원본코드나 마찬가지일겁니다. 이 때 파일 업로드 할 때 다시 목록을 갱신해주는 function을 "삭제 완료(delete_file_complete)" 펑션 안에 다시 목록을 갱신해주면 제대로 나타나게 됩니다. (참고로 다시 목록을 갱신해주는 function은 DB에서 값을 넘겨받아 넘깁니다)

설명은 아주 복잡하게 해버렸네요...
만일 이 설명을 이해하시지 못하시겠다면 그저 소스를 수정하시고 쓰세요
지업로더도 일반 파일 첨부와 같은 기능을 합니다 ^^

이 패치로 어떤 그누보드 유저님이 지업로더를 플래시 10.0 버젼으로 소스를 업그레이드 시켜주었으면 하는 바램이 있네요.. 곱슬최씨님이 Flex 소스를 예전에 공개해주셨더군요 ^^;
그럼 모두 좋은 그누보드 홈페이지 만들기를 바라겠습니다 ^ㅡ^

추천
1

댓글 4개

좋은 팁이네요.
플래시 플레이어 10 문제가 빨리 해결되었으면 좋겠습니다.
저희 사이트 회원들도 업로드가 안된다고 아우성... -_-

지업로더 제작자 분께서 fla 소스만 공개해주시면 어찌어찌 파고 들어볼 수 있겠는데 flex 소스는 더더욱 모르겠고...

다음주 부터 방학인데, 그누 잡고 늘어져볼까 합니다. 이 문제도 해결할 수 있을지 모르겠네요.
http://swfupload.org 이쪽에 공개 소스가 있는데, 이걸로 많이 만드시는 것 같더군요.
제로보드 XE도 그렇게 했던데
보니까 XE는 뭔가 플래시 오브젝트를 파일첨부 버튼 위에 만들어서 했더라구요..
근데 플래시 소스다보니 저는 전혀 이해가 안되는... ㄱ=;

꼭 개선시켜주세요 김처로님 ^ㅡ^
전체 3,313 |RSS
그누4 팁자료실 내용 검색

회원로그인

(주)에스아이알소프트 / 대표:홍석명 / (06211) 서울특별시 강남구 역삼동 707-34 한신인터밸리24 서관 1404호 / E-Mail: admin@sir.kr
사업자등록번호: 217-81-36347 / 통신판매업신고번호:2014-서울강남-02098호 / 개인정보보호책임자:김민섭(minsup@sir.kr)
© SIRSOFT