웹마스터 팁

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

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


제목 글쓴이 날짜
게시판 스타일이 안바뀌는 경우에 해보실 사항 [4] coolsushi 2009.04.04
모바일과 MP3 화일 JW player 로 재생 하기 꽁수 김성곤820 2011.07.28
제로보드 XE의 세팅중 ssl사용해제방법 준돌이 2011.07.26
RefTagger (영어 성경 본문 출력기)를 설치하는 쉬운 방법 유샤인 2011.07.23
최근 댓글 위젯에 댓글 작성자 이름 표시하기 Treasurej 2011.07.22
공식 레이아웃 v2 스킨에서 롤오버 메뉴 적용하기. [6] 노기욱 2010.02.01
apache2에서 proxy 설정하기 fsfsdas 2011.02.20
cafe24에서 쉬운설치 기능을 쓰기위한 ftp 설정법 [19] file 현의느낌 2010.02.01
글작성후 목록으로 이동하기 팁이 정상동작하지 않을 경우 [2] 도라란 2011.07.14
"이 게시물을..." 추천/비추천/신고 메뉴를 버튼으로 [28] file xe촙5 2007.11.08
모든 브라우져는 형제간의 z-index값을 아들과 형제간의 z-index값보다 우위 [7] ForHanbi 2011.03.16
웹페이지에서 ICQ 번호 자동으로 추가하기... [1] 잔디 2001.01.05
비로그인시 본문대신 지정문구 보이기 [1] 도라란 2011.07.11
글에 첨부된 이미지 파일이 없을 경우, 지정 이미지를 본문에 보여주기 도라란 2011.07.11
간단한 시간제한 자료실 만들기 [2] 옥수수밭 2010.03.17
외부페이지를 레이아웃에 결합시 상단 마진폭이 벌어지는 문제 해결방법 [6] file DuRi 2010.12.17
레이아웃에서 class="header" 사용 안하기... [2] ForHanbi 2011.06.30
템플릿 변수(조건문) 팁 [1] 엘카 2011.06.19
XML필터 사용시 유효성검사에서 사용자정의 메세지 출력하기 창한이 2011.06.19
ie6 빈div 높이 조절 [2] ForHanbi 2011.06.19