웹마스터 팁

다시 말씀드리면, 일정 시간이 지나면 글의 첨부파일들이 자동으로 삭제되는 게시판을 만드는 방법입니다.

코어에 아주 친절하게 포함된 deleteFiles()를 이용합니다. 코어 1.4.0.9에서 테스트했습니다.


보드 스킨의 style.list.html에 일반글을 표시하는 부분으로 가서 아래와 같이 코드를 추가합니다. 시간제한을 30일로 했습니다.


<!--@foreach($document_list as $no => $document)-->

    {@ $attachments_time_limit = time()-(60*60*24*30);}

    {@ $oFileController = &getController('file');}

    {@ $oFileModel = &getModel('file');}

    {@ $numfiles = $oFileModel->getFilesCount($document->document_srl);}

    <!--@if(strtotime($document->get('regdate'))<$attachments_time_limit && $numfiles>0)-->{@ $oFileController->deleteFiles($document->document_srl);}<!--@end-->

<tr class="bg{($no+1)%2+1}">


보드스킨을 변경하는 것이기에 코어 업데이트 해도 문제 없습니다.


=====================

여기까지만 하시면 동작합니다. 하지만 작은 문제가 하나 있다면, deleteFiles() 함수는 db에서 xe_files 테이블에 있는 항목만 삭제하고, xe_document 테이블에서 uploaded_count 항목을 건드리지 않습니다. 그래서 첨부파일들이 모두 삭제되어 있어도 게시판 목록에서 글제목 옆에 file 아이콘이 뜹니다. 이것을 해결하고 싶으면 아래 과정을 따라하시면 됩니다. 단, 코어 업데이트하시면 file.controller.php를 다시 고치셔야합니다.


먼저 uploaded_count를 0으로 업데이트 시키는 새로운 쿼리 파일을 만듭니다. /modules/document/queries/updateUploadedCountZero.xml


<query id="updateUploadedCountZero" action="update">

    <tables>

        <table name="documents" />

    </tables>

    <columns>

        <column name="uploaded_count" var="uploaded_count" default="0" />

    </columns>

    <conditions>

        <condition operation="equal" column="document_srl" var="upload_target_srl" filter="number" notnull="notnull" />

    </conditions>

</query>


그 다음은 /modules/file/file.controller.php 에서 deleteFiles() 함수를 찾아 아래와 같이 방금 만든 쿼리를 실행시키는 코드를 추가합니다.


function deleteFiles($upload_target_srl) {

    .......

    $output = executeQuery('document.updateUploadedCountZero', $args);

    if(!$output->toBool()) return $output;

    return $output;

}

=====================


Trial and error로 만든거라서, 문제될 가능성이 보이시면 댓글로 말씀해주시면 감사하겠습니다. 


제목 글쓴이 날짜
XE 1.5 관리자 첫화면에 1.4 통계현황 추가하는 방법입니다. [21] file sejin7940 2012.09.14
관리자의 회원정보 수정 페이지에 '가입일/최근접속일' 추가하기 [6] file showjean 2012.09.17
관리자의 즐겨찾기에 항목 추가하기 [2] file showjean 2012.09.19
youtube, vimeo 자동 썸네일 생성 팁 1.5 이상 [3] 꿈틀잉 2012.09.19
실시간 쪽지 [10] file CMD 2012.09.20
제목 부분에 특수키 입력 못하게 막는 방법 [22] sejin7940 2012.09.21
소소한 팁 - 간편하게 버튼만들기 [3] file 단기종합 2012.09.22
스케치북 게시판 추천+등록 버튼 만들기 (수정) [8] file 숭숭군 2012.09.22
개인서버나 호스팅운영하실분들 참고하세요2 - 설치 무료 지원 [7] 민기만 2012.09.22
[초보팁] 게시판 하단 버튼 정리 [2] 브레인630 2012.09.24
첨부파일 업로드 되고 사라질때...즉 먹통이 될때....!! [3] 시카고코리아 2012.09.25
SocialXE 설치후 트위터, 페이스북 접속 안될경우??? [9] 착한부산남자 2012.09.28
아이콘샵 모듈 이용해서 대표 아이콘 사용시 레벨 아이콘 나오지 않게 하기 [4] 하은이아빠 2012.10.01
iframe 아이프레임 투명처리 꿈틀잉 2012.10.04
회원설정에 레이아웃 설정이 생겼습니다. 회원정보보기페이지 레이아웃 설정 가능 [2] 똑디 2012.10.04
Google Analytics Addon 자료 최신 XE 에서 작동시키는 방법 [4] sejin7940 2012.10.05
Admin 페이지에서 사이트맵 삭제가 안될 때 file FontBox 2012.10.06
크롭에 웹폰트 적용하기 css 꿈틀잉 2012.10.07
외부로그인 (레이아웃 파일만 수정) [4] 투씨 2012.10.13
스케치북 게시판 스킨 사용시 확장변수 라인 CSS수정 해피보이 2012.10.17