메뉴 건너뛰기

XE : Xpress Engine


XE에 대한 생각! XE에 대한 공감! - XE를 사용하는 다른 사람들과 의견을 나눌 수 있는 곳입니다. 많은 의견 공유로 더 좋은 XE를 만들어 주세요.


XE 사용팁

간단한 시간제한 자료실 만들기

2010.03.17 05:46

[레벨:2]옥수수밭 조회 수:3073

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

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


번호 제목 글쓴이 날짜 조회 수
공지 질문은 묻고 답하기로~ TSCMD 2012.02.03 10586
1277 알수없는 여백(공백,마진)이 생기는 문제 해결법 - 초보님용 [레벨:0]주영수 2011.07.23 3910
1276 RefTagger (영어 성경 본문 출력기)를 설치하는 쉬운 방법 [레벨:6]유샤인 2011.07.23 3070
1275 최근 댓글 위젯에 댓글 작성자 이름 표시하기 [레벨:5]Treasurej 2011.07.22 2773
1274 공식 레이아웃 v2 스킨에서 롤오버 메뉴 적용하기. [6] [레벨:0]노기욱 2010.02.01 4901
1273 cafe24에서 쉬운설치 기능을 쓰기위한 ftp 설정법 [19] file [레벨:4]현의느낌 2010.02.01 6274
1272 글작성후 목록으로 이동하기 팁이 정상동작하지 않을 경우 [2] [레벨:27]도라란 2011.07.14 3313
1271 "이 게시물을..." 추천/비추천/신고 메뉴를 버튼으로 [28] file [레벨:4]xe촙5 2007.11.08 12394
1270 모든 브라우져는 형제간의 z-index값을 아들과 형제간의 z-index값보다 우위 [7] [레벨:18]ForHanbi 2011.03.16 4617
1269 비로그인시 본문대신 지정문구 보이기 [1] [레벨:27]도라란 2011.07.11 3082
1268 글에 첨부된 이미지 파일이 없을 경우, 지정 이미지를 본문에 보여주기 [레벨:27]도라란 2011.07.11 3036
» 간단한 시간제한 자료실 만들기 [2] [레벨:2]옥수수밭 2010.03.17 3073
1266 외부페이지를 레이아웃에 결합시 상단 마진폭이 벌어지는 문제 해결방법 [6] file [레벨:4]DuRi 2010.12.17 3202
1265 레이아웃에서 class="header" 사용 안하기... [2] [레벨:18]ForHanbi 2011.06.30 3204
1264 인증메일 때문에 고생하시는 분 참고하세요. [15] [레벨:2]박용식 2010.10.14 5692
1263 템플릿 변수(조건문) 팁 [1] [레벨:7]엘카 2011.06.19 3864
1262 XML필터 사용시 유효성검사에서 사용자정의 메세지 출력하기 [레벨:3]창한이 2011.06.19 3947
1261 ie6 빈div 높이 조절 [2] [레벨:18]ForHanbi 2011.06.19 4161
1260 스킨에서 조건/반복문 여러줄 사용하기 [1] [레벨:7]엘카 2011.06.10 3663
1259 SMTP 인증 회원가입 메일 인증 , 비밀번호 오류찾기 및 답변글 메일로 받기 [10] file [레벨:1]FFHosting 2009.01.12 8855
1258 (회원가입) 닉네임 필요없이 이름만 입력 받으려면 [14] [레벨:14]Simulz 2007.08.22 9638