http://www.xpressengine.com/?mid=download&package_id=20466120
https://www.xpressengine.com/index.php?mid=download&package_id=21643227
질문:xe에 질문
ELFINDERXE 가 한글파일명 및 한글폴더에 문제가 발생된다.
인코딩에 문제가 생기나?
enfinder/include/php/elFinderVolumeMySQL.class.php
protected function _mkdir($path, $name) {
|
enfinder/include/php/elFinderVolumeDriver.class.php
protected function encode($path) { // cut ROOT from $path for security reason, even if hacker decodes the path he will not know the root // TODO crypt path and return hash |
(수년간 XE 들락날락하고, 이런저런 사이트들도 만들어봤지만,, 이 모듈이 가장 '팍' 하는 느낌이 있네요. 체감상 ㅎ;;)
0. 저는 프로그래밍을 배워본적이 한번도 없는 초보이기 때문에, 아마 아래의 코드에 엄청난 헛점이 있을겁니다. 분명.
1. XE 회원들 이름으로 자동으로 폴더를 생성하게 하고, 해당 폴더에만 권한을 준다. ($grant->manager 회원은 루트 디렉토리를 자유롭게 이용할 수 있다.)
/modules/elfinderxe/elfinderxe.controller.php
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
// User 별 폴더 지정 및 폴더 생성 : DesignSORI Custom $logged_info = Context::get( 'logged_info' ); $grant = Context::get( 'grant' ); if (! $grant ->manager){ $webhard_user_folder = $this ->module_info->root_path. '/' . $logged_info ->user_id; if (! is_dir ( $webhard_user_folder )){ $webhard_user_folder_old_umask = umask(0); mkdir ( $webhard_user_folder ,0707); umask ( $webhard_user_folder_old_umask ); } $this ->module_info->root_path = $webhard_user_folder ; $this ->module_info->root_url = $this ->module_info->root_url. '/' . $logged_info ->user_id; $this ->module_info->root_alias = $this ->module_info->root_alias. ' / ' . $logged_info ->user_id; } // ElfinderXE Conntector 시작 (요 위에 저 코드를 삽입합니다.) |
2. 비회원인 경우, 에러를 만들어서, 접속 불가능하게 한다. (모듈 설정 -> 권한관리 에서 할 수도 있지만. 이렇게 완전 차단도 가능할 듯 요??)
/modules/elfinderxe/elfinderxe.controller.php
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 |
// User 별 폴더 지정 및 폴더 생성 : DesignSORI Custom $logged_info = Context::get( 'logged_info' ); $grant = Context::get( 'grant' ); if (! $logged_info ){ $this ->module_info->root_path = '' ; $this ->module_info->root_url = '' ; $this ->module_info->root_alias = '' ; } elseif (! $grant ->manager){ $webhard_user_folder = $this ->module_info->root_path. '/' . $logged_info ->user_id; if (! is_dir ( $webhard_user_folder )){ $webhard_user_folder_old_umask = umask(0); mkdir ( $webhard_user_folder ,0707); umask ( $webhard_user_folder_old_umask ); } $this ->module_info->root_path = $webhard_user_folder ; $this ->module_info->root_url = $this ->module_info->root_url. '/' . $logged_info ->user_id; $this ->module_info->root_alias = $this ->module_info->root_alias. ' / ' . $logged_info ->user_id; } // ElfinderXE Conntector 시작 (요 위에 저 코드를 삽입합니다.) |
3. 그룹별, 회원별, 혹은 등등등? 의 구분을 둬서
3-1. 폴더 용량 제한을 둔다.
3-2. 전송속도 제한을 둔다.
4. 회원 개인메뉴 (회원정보 변경, 내가 쓴 글 보기 등등) 영역에 '내 웹하드' 라는 메뉴를 추가하게 한다.
5. 뭔가 다른 기능들을 더 상상해볼 수 있지 않을까??
..................... 이런식으로 발전시켜보는건 어떨까요?!
elfinder 란?
jQuery로 구현되어 있는 웹 기반 파일 관리자 입니다.
손쉽게 폴더 및 파일 브라우징을 할 수 있으며,
업로드 및 다운로드, 미리보기, 압축 등 여러가지 강력한 기능을 포함하고 있습니다.
또한 유용한 여러가지의 단축키를 제공합니다.
■ 설치 및 환경 설정 안내
elfinder 를 사용함에 있어서 상당히 많은 옵션으로 사용할 수 있습니다만..
크게는 기본 옵션으로 모든것을 편리하게 사용할 수 있기 때문에,
반드시 필요한 루트 폴더 경로와 URL 그리고 취향에 따라 독(dock) 기능을 켜고 끌 수 있는 옵션만을
XE 에서 조작할 수 있도록 하였습니다.
elfinder 애드온을 xe 애드온 폴더에 설치합니다.
본 애드온은 xe core 1.5.x 에서 동작하게끔 만들어져 있습니다.
■ 웹에서 접근할 폴더 만들기
url로 접근 가능한 폴더를 하나 생성하여 쓰기 권한을 줍니다.
저는 우분투 리눅스를 서버로 사용하는데 www-data 그룹과 유저로 주었습니다.
잘 모르시는 분은 707 권한을 주세요!
설정 화면에서 폴더 경로와 URL 을 예와 같이 작성하여 줍니다.
xe 자체 폴더나 기타 권한 없는 폴더도 설정할 수 있습니다만..
권한이 없기 때문에 쓰기같은것은 되지 않는데다가, xe 의 file 폴더에는 권한을 가지고 있으며
여러가지 보안상의 위험성이 있다고 판단되므로 임의의 폴더를 사용하는 것을 추천합니다.
■ 확인사항
애드온 폴더 elfinder/include/connector.php 파일은 쓰기 권한을 가지고 있어야 합니다.
본 애드온을 다운로드 받으시면 기본적으로 쓰기 권한을 가진 채 압축되어 있으나,
압축프로그램 또는 ftp로 올리시는 과정에서 권한이 없어질 수 있으니 오류 발생 시 권한을 확인해 주세요!
■ 사용법
사이트 내 어디에서든 <div id="elfinder"></div> 로 사용할 수 있지만,
퍼포먼스의 향상을 위해서 기왕이면 대상 모듈을 선택해서 사용하는 것을 추천합니다.
또한 엘리먼트 아이디를 open,close,dock,undock 네가지를 사용하여,
elfinder 자체를 컨트롤 할 수 있습니다.
예를 들면, <div id="open" class="button"></div>
이러한 버튼을 만들었다면, 이 버튼을 누르면 elfinder 파일 관리자가 열립니다.
close 는 파일 관리자를 닫습니다.
dock / undock 은 elfinder 를 페이지에서 떼어내어 이동할 수 있게 하거나 고정시킵니다.
(설정에서 독 기능을 활성화 하셔야 합니다.)
■ 옵션
추가적인 옵션을 사용하고 싶으신 분은 애드온 폴더 elfinder/include/connector_ori.php 파일을
수정하시면 됩니다.
■ 기타 한마디
태어나서 처음으로 만들어본 애드온 입니다.
엄청 거창해 보이지만 사실 거창한것은 elfinder 이고,
그것을 사용하게 끔 애드온으로 만든것은 무척 허접합니다..
초보이기 때문에 무척 간결하고 말도 안되는 방법으로 만들었습니다.
고수분들이 파일을 열어볼 것을 생각하면 참 부끄럽습니다.
공부가 많이 되었는데 더욱 열심히 공부할께요~ ^^
참고로 한글화는 제가 직접 하였습니다.
상황에 안맞는 단어나 오탈자가 있으면 알려주세요.
프로젝트 사이트에 올렸는데 다음 릴리즈때 정식으로 포함하여 준다니까
elfinder를 직접 받아서 다른곳에 사용하실 분은 참고하세요~
그리고 elfinder 에서 제공하는 파일과는 일부 구성이라던가.. 약간 다릅니다.
위의 스크린샷 중 강아지 사진은 초상권이 있습니다.
제 여동생 보리입니다 ^^;;;
■ 버전 업데이트 0.1.1
한글화 중 '업로드 파일'을 '파일 업로드'로 의미에 맞게 수정하였습니다.
StyleRoot 님께서 알려주셨습니다. 감사합니다
시간대를 정상적으로 한국 시간대로 나오게 수정하였습니다.
해피신 님께서 알려주셨습니다. 감사합니다 ^^
■ 문의에 대한 답변
1.사이트가 백지가 되는 문제
혹시 XE 코어 버전이 1.4.x 가 아닌지 확인해 주세요!
이 애드온은 1.5.x 버전에서 정상적으로 사용이 가능합니다!
2.백엔드의 설정이 올바르지 않다고 표시되는 것은,
elfinder가 애드온 설정에서 설정한 폴더 및 URL 경로로 접근할 수 없기 때문에 발생합니다.
(권한이 없다고 하더라도 읽기 권한만 있다면 정상적으로 표시는 됩니다.)
그러므로 애드온을 설치하시면 꼭 설정에 들어가셔서 정상적인 폴더 경로 및 URL을
입력하신 후 테스트 해보시기 바랍니다!
개인 서버에 나만의 전용 웹하드(클라우드) 구축하기 Pydio편
http://www.kbench.com/?q=node/83135&page=8
https://www.xpressengine.com/forum/22618942