웹마스터 팁
page_full_width" class="col-xs-12" |cond="$__Context->page_full_width">
화일첨부 디렉토리의 빈 폴더 삭제...
2012.01.20 12:19
XE에서 화일을 첨부했다가 화일을 삭제하거나 문서를 삭제할때 특히 ./files/attach/images 폴더에 빈폴더만 흉물스럽게 남아있습니다. 사이트가 커지고 문서와 첨부화일이 많아지면 빈폴더들도 많이 쌓이게 됩니다. 아직까지는 XE 내부에서 이 빈폴더를 정리하는 기능은 없습니다. 얼마전 XE 사용자모임에서 모님이 의견을 주셔서 빈폴더를 삭제하는 기능을 만들어봤습니다.
워낙 간단한 기능이고 자주 사용하지 않아도 되는 기능이라 별도의 모듈을 제작하기는 그렇고...
기존 admin 모듈을 수정하는 것으로 정리를 했습니다.
참고로 1.5.X 버전을 기준으로 한겁니다. 1.4 버전의 경우는 약간 수정이 필요합니다.
워낙 간단한 기능이고 자주 사용하지 않아도 되는 기능이라 별도의 모듈을 제작하기는 그렇고...
기존 admin 모듈을 수정하는 것으로 정리를 했습니다.
참고로 1.5.X 버전을 기준으로 한겁니다. 1.4 버전의 경우는 약간 수정이 필요합니다.
./modules/admin/admin.admin.controller.php 에 다음부분을 추가...
1.
function
procAdminRemoveBlankDir() {
2.
$target_path
=
'./files/attach'
;
3.
FileHandler::removeBlankDir(
$target_path
);
4.
$this
->setMessage(
'success_updated'
);
5.
}
./modules/admin/tpl/js/config.js 에 다음 추가..
1.
function
deRemoveBlandir() {
2.
if
(!confirm(xe.lang.confirm_run))
return
;
3.
var
params =
new
Array();
4.
exec_xml(
"admin"
,
"procAdminRemoveBlankDir"
, params, completeCacheMessage);
5.
showWaitingFogLayer();
6.
}
./modules/admin/tpl/_spFooter.html 에 버튼추가
1.
<button type=
"button"
class
=
"text"
onclick=
"deRemoveBlandir();"
>BlankFolderRemove</button>
마지막으로 ./modules/admin/conf/module.xml 에 추가...
1.
<action name=
"procAdminRemoveBlankDir"
type=
"controller"
standalone=
"true"
/>
이상의 작업을 마치고 관리화면에 들어가면 BlankFolderRemove라는 버튼이 보일겁니다.
위의 그림에 보이는 것처럼 새폴더를 두개 만들었습니다.
그중 한개는 서브디렉토리까지 몇개 만들었습니다. 물론 폴더는 비어있구요.
버튼을 클릭고 잠시 기다리면
비어있는 모든 폴더가 깔끔하게 정리됩니다.