웹마스터 팁

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

코어에 아주 친절하게 포함된 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로 만든거라서, 문제될 가능성이 보이시면 댓글로 말씀해주시면 감사하겠습니다. 


제목 글쓴이 날짜
conditional comment 을 이용한MS Internet Explorer 6이하 접속시 안내 페이지 유도 [접속 차단] 예제 [3] file 게임나라 2010.02.26
중복. JS버전. 관리자 페이지-트리뷰 계속 확장상태로 두기 봉남 2010.03.02
메뉴목록이 너무 많아 메뉴를 가로 전역에 걸쳐 넣고 싶으십니까? 또는... [3] 유샤인 2010.03.04
[마지막팁] 제로보드4 처럼 레이아웃 없이 XE로 나만의 홈페이지 만들기 [6] Gekkou 2010.03.08
브라우저 제목 고정하는 방법 [3] cranky02 2010.03.09
평생 무료도메인 COx.KR 입니다. 난나다 2010.03.10
게시판확장변수를 이미지로 나타내게 게시판스킨 수정법 [3] file 팔공산 2010.03.10
PHP로 코딩 자주 하시는 분들을 위한 윈도우용 APM jihun 2010.03.13
padding, margin, font, border [2] file 된장맛껌 2010.03.13
게시물 작성시 관리자 메일 보낼 때 발신인이 없어 스팸으로 분류될 때 [1] ppoya 2010.03.14
목록에서 업데이트 된 글의 댓글수 bold표시하기 file 옥수수밭 2010.03.17
간단한 시간제한 자료실 만들기 [2] 옥수수밭 2010.03.17
확장변수 사용 (전화번호) 사용 예제 - 참고용 [2] 무대포2 2010.03.17
특정게시판, 비밀글로 작성하기 (대암지기님 팁 보완) [9] file 된장맛껌 2010.03.17
메뉴에 연결된 링크 모듈이 있는지 없는지 여부에 따라 메뉴의 링크 생성 [1] file teryboy 2010.03.17
제로보드4에서 XE로 넘어와 헤메는 분들을 위해서(1편)-Xe개념이해와 설치 [16] file 황비 2010.03.18
XE최신버전에 믹시(Mixsh) 위젯(widget) 삽입하는 방법 [2] 곰이v 2010.03.21
APMSETUP에서 쓰던 XE를 리눅스 XE로 이전하기 [1] xe가쉽다 2010.03.22
blogger.getUsersBlogs xmlRPC 실패시 기사마 2010.03.22
홈페이지의 개념부터 알아야 하는 진정한 초급자들의 위한 팁입니다. 놀라운넘 2010.03.23