추가기능(관리자 메뉴:DB에 없는 첨부파일 수동 삭제) > 그누4 플러그인

그누4 플러그인

그누보드에는 여러가지 기능 추가가 쉽도록 제작 되었습니다.
플러그인의 저작권은 해당 플러그인 제작자님께 있으며, 그누보드의 저작권과 다를 수 있습니다.
플러그인 다운로드시 좋아요와 감사의 코멘트를 남기시면 제작자에게 큰 힘이됩니다. ^^y

추가기능(관리자 메뉴:DB에 없는 첨부파일 수동 삭제) 정보

추가기능(관리자 메뉴:DB에 없는 첨부파일 수동 삭제)

첨부파일

memo2_chkUnlinkFile.php (1.9K) 11회 다운로드 2009-02-25 15:32:11
memo2_config.skin.php (9.9K) 1회 다운로드 2009-02-25 15:24:24

본문

'쪽지삭제시 첨부파일삭제' 기능이 비활성화 되어 있을때 남겨지는 찌꺼기 첨부파일을 관리자가 삭제할 수 있습니다.

쪽지의 첨부파일 폴더를 자동으로 검색하여 DB에 쿼리후 확인 삭제하므로,
DB 또는 첨부파일의 양이 많을 경우 실행 속도가 그에 비례하여 늘어나게 됩니다.
(기능 특성상 관리자가 제한적으로 실행하기 때문에 퍼포먼스에 크게 신경쓰지 않고 만들었습니다.)

*불당님의 정식 업데이트가 아닌, 제 개인적인 수정/추가 코드이며
간단한 테스트는 하였으나 미처 확인 못한 버그가 있을수 있으므로 테스트후 사용하시길 바랍니다.

관리자 로그인 후
쪽지 설정->DB에 없는 첨부파일 삭제 항목을 통해 사용 가능합니다.

*UTF-8 인코딩으로 되어 있으며, 베타2 버전에서 테스트하였습니다.
*삭제하기 클릭시 확인 창이 뜨도록 변경하였습니다.
*삭제전 관리자 권한을 확인합니다.

*추가된 파일.
/bbs/memo2_chkUnlinkFile.php
*수정된 파일.
/skin/member/basic/memo2_config.skin.php
추천
0

댓글 전체

좋은 기능이네요. 저도 지금 disk full로 hdd 정리중입니다.
sas hdd 300G가 85만원이라고 해서 기겁했어요. ㅠ..ㅠ...

그런데, 무조건 삭제하는 것은 생각하보니 아닌거 같아요.
일단 vault로 이동해 뒀다가 관리자가 ftp나 ssh로 접속해서
백업후 삭제하는게 맞는거 같아요. 그냥 삭제하면 나중에
증거를 제출해야 할 때 난감할 수도 있거든요.

물리적인 삭제(unlink) 보다는 임시 디렉토리인
/data/memo2_deleted 로 이동해 두는게 더 좋을거 같아요.
아... 그런 제한사항도 있었네요;
어차피 관리자 설정메뉴에서만 사용하는 것을 전제로 해서 생각을 안했었는데 코드를 좀 바꿔야겠습니다.
(생각해보니 삭제 파일에도 권한확인을 빼먹고 코딩했네요. ㅡ,.ㅡ;)

그나저나 환율때문에 하드웨어 가격이 장난이 아니네요.
저 얼마전에 키보드/마우스 살때도 만냥씩 올랐던데 =_=;
글쿠 chkDB는 DB 관련된 것으로 생각할 수 있어요.
이경우는 memo2_file_delete 같이 다른 이름으로 하시는게 좋습니다.
g4 변수는 인수가 아닌 global 로 하시면 되구요.

저는 resize 오류를 수정하러 다시... 총총...

function chkDB($chkFile)
{
global g4;

$sql = "select (
        (select count(*) from $g4[memo_recv_table] where me_file_server='$chkFile') +
(select count(*) from $g4[memo_save_table] where me_file_server='$chkFile') +
(select count(*) from $g4[memo_send_table] where me_file_server='$chkFile') +
        (select count(*) from $g4[memo_spam_table] where me_file_server='$chkFile') +
      (select count(*) from $g4[memo_temp_table] where me_file_server='$chkFile') +
        (select count(*) from $g4[memo_trash_table] where me_file_server='$chkFile') +
(select count(*) from $g4[memo_notice_table] where me_file_server='$chkFile')
) as counting";
$fileResult = sql_fetch($sql);
if($fileResult['counting']==0){//DB에 해당 첨부파일 정보 없을경우 삭제
  $filepath="$g4[path]/data/memo2/$chkFile";
            $file_deleted_path = "$g4[path]/data/memo2_deleted";
            @copy($filepath, $file_deleted_path);  //먼저 복사
  @unlink($filepath);
return true;
    }
else
return false;
}
영어가 짧다보니 적당한 함수명이 생각나지 않아서 그렇게 썼었습니다.ㅠㅠ

g4변수는 global로 할까 하다가 함수는 외부 변수를 참조하지 않는다는
제 규칙에 따라 인수로 넘겼었습니다.
(그러고 보니 function으로 뺀것도 코드 너무 난잡해져서 가독성을 위해 빼 둔 것이긴 하네요.)

수정된 소스와 조언 감사드립니다. ^-^
전체 3,524 |RSS
그누4 플러그인 내용 검색

회원로그인

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