웹마스터 팁
간단한 시간제한 자료실 만들기
2010.03.17 05:46
다시 말씀드리면, 일정 시간이 지나면 글의 첨부파일들이 자동으로 삭제되는 게시판을 만드는 방법입니다.
코어에 아주 친절하게 포함된 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로 만든거라서, 문제될 가능성이 보이시면 댓글로 말씀해주시면 감사하겠습니다.
댓글 2
제목 | 글쓴이 | 날짜 |
---|---|---|
자동으로 새로고침되게 하기 [5] | 권대건 | 2004.01.05 |
그림위에 마우스를 올렸을때 그림저장 버튼 안나타나게 하기...
[17]
![]() | PHASE | 2004.01.19 |
마우스 오버시 서브메뉴 나타나게 하는방법 입니다 [12] | 키드 | 2004.01.26 |
옅은 그레이 쓸때 붉은빛 들어가는경우 [10] | 김영호 | 2004.01.29 |
nzeo처럼 배너누르면 배너다는법 나오게하기! [6] | Rollrang | 2004.02.05 |
전송버튼의 테두리를 없애 BoA요 >_< [7] | 플로렐라 | 2004.02.14 |
스타일시트를 이용한 텍스트박스 스타일 제어(밑줄,점선) [8] | 01CODE.com | 2004.02.26 |
몇 가지 팁..( 좀 깁니다.. 어느 정도 안다고 생각하시는 분들, 추천 ) [3] | naughtykidd | 2004.02.26 |
간단하게, 색깔있는 밑줄 긋기. [4] | naughtykidd | 2004.02.27 |
서브 메뉴 나타났다가 사라지게 하는 방법. 그동안의 노가다는 이젠 끝!
[22]
![]() | CoolUnit | 2004.03.01 |
스타일 시트파일을 만들기 .. [4] | 박종익 | 2004.03.07 |
모든 스킨에서 중국어 간체 볼 수 있도록 해주는 법... [6] | 학몽 | 2004.03.09 |
(For 초보)폼안에 내용을 자동선택+자동복사해줍니다. [6] | 쉬드 | 2004.04.10 |
제로보드에서 손쉽게 복사하는 소스 (아래보다 더 편함..) [2] | Danggn™ | 2004.04.17 |
[tip]간단한 반투명 필터 적용법 [2] | 드래군 | 2004.04.21 |
홈페이지 빠르게하는 [로딩속도를 높히는 10가지방법] [20] | kim's | 2004.04.29 |
자동 스크롤 메뉴 (끄기 기능, 무한 스크롤 X) [6] | ☺심심 | 2004.05.02 |
허접 팁....레이어로 플래시 뺨치는 홈페이지 만들기 -추가-
[17]
![]() | 남규성 | 2004.05.05 |
플래시 swf파일 배경 투명하게 하기 ~~~ [8] | kim's | 2004.05.09 |
아기창 뜨고 부모창 닫기 [6] | 임소식 | 2004.05.19 |