Решил выложить на всеобщее обозрение бетку второй версии ( название кстати переименовал, как вы заметили :) ), уже пару недель она правда в таком состоянии, но сейчас пока к сожалению не хватает времени на доработку.
По сравнению с предыдущей версией, исправлены разные глюки, произведён полный рефакторинг, конфиг вынесен в отдельный файл.
Исправлены/Добавлены разные параметры, сами посмотрите в общем :)
Теоретически рабочая версия почти, а так хочу несколько мелочей переделать.
Решил выложить, чтобы отловить больше глюков и пожелания собрать.
Что изменилось из главного по отношению к предыдущей версии:
Визуал:
- Добавил нативно в настройки подтверждение на удаление
- Теперь можно загружать одновременно(точнее выбирать сразу) несколько файлов
- Блок с превьюшкой изображений
- Теперь в основном окне также отображаются папки
Внутри:
- Конфиг вынесен в отдельный ini файл
- Базовый css вынес в отдельный файл, теперь скины будет проще делать
- Кэш: теперь дерево папок сканируется один раз и обновляется по мере истечения срока, выставляется опционально
Теперь уже в планах сидит:
- Доделать контекстное меню
- Статистика операций с файлами и папками
- Простой редактор изображений (crop, resize) дальше посмотрим :) так-то в планах добавление эффектов разных
- Возможность изменения текстовых файлов
- Упаковка/Распаковка файлов/архивов
- Перемещение файлов и папок
- Фулскринный просмотр изображений, на манер как в ACDSee
- Добавить видеоплеер для flv файлов, надо такую возможность или нет ?
Минимальные требования: php5
Конфиг теперь в формате .ini, унифицировал, + возможно на будущее пару "коннекторов" добавить, в идеале конечно :)
Конфиг:
[jscript] ;count_onpage= 50 [common] path[relative] = 'demos/upload' path[absolute] = DOCUMENT_ROOT "" lang = 'en' encoding = 'utf-8' date_timezone = 'Europe/Moscow' date_format = 'j.m.Y, H:i' ; php function.date() stat_limit = 50 ; Statistics of the last operations [permission] chmod[file] = 777 ; Octal, without leading zeros in front chmod[folder] = 777 ; Octal, without leading zeros in front hide[file] = '.htaccess' hide[folder] = '.,..,.svn,CVS' [dir] cache_expire = 1440 ; minutes for "scan_all" option scan_all = true ; Pass on all the folders to create a tree. Otherwise obtain the contents of the folder individually by clicking on the tree. calculating = true [resource] allowed_symbol = '/^[a-zA-Z0-9-_~$()[]&=]+/i' ; RegExp for "name" files & folders replace_spaces = '_' ; Symbol which will be replaced filename_tolowercase = true ; for uploads new file foldername_tolowercase = false ; for Create & Rename folder file[allow] = '7z,aiff,asf,avi,bmp,csv,doc,docx,gz,gzip,mid,mov,mp3,mp4,mpc,mpeg,mpg,ods,odt,pdf,ppt,pptx,pxd,qt,ram,rar,rm,rmi,rmvb,rtf,sdc,sitd,sxc,sxw,tar,tgz,txt,vsd,wav,wma,wmv,xls,xlsx,zip,bmp,tif,tiff' file[denied] = 'php,php3,php4,php5,phtml,asp,aspx,ascx,jsp,cfm,cfc,pl,bat,exe,dll,reg,cgi' file[maxsize] = 0 ; in megabytes flash[allow] = 'fla,flv,swf' flash[denied] = '' flash[maxsize] = 0 ; in megabytes image[allow] = 'gif,jpg,jpeg,png,bmp' ; tif,tiff image[denied] = '' image[maxsize] = 0 ; in megabytes [thumb] enabled = true dirname = '_thumbs' method = 'imagick' ; [gd, imagick] crop = true imagick_jpg = true maxwidth = 140 maxheight = 110 jpg_quality = 80 [access] role = "*" file[view] = true file[create] = true file[rename] = true file[delete] = true folder[view] = true folder[create] = true folder[rename] = true folder[delete] = true [ckeditor] quickdir = '_quick' [tinymce] [php] setlocale = 'en_EN' file_uploads = 'on' ; ini_set() upload_max_filesize = 16 ; in megabytes for php ini_set() memory_limit = '256M' ; Maximum amount of memory a script may consume. (if empty = default) max_execution_time= 60 ; Maximum execution time of each script, in seconds. (if empty = default) translit_method = 'strstr' ; [ereg, strstr] json_header = true ; If there are problems with the impact of information as a file. json_method = 'php5' ; [php5, zend]
DjenxExplorer.init (( //Required returnTo:'', //[ckeditor, tinymce, function] default = ckeditor //Optional path: '/path/to/Djenx.Explorer/', //determined automatically in the event at different locations, we can prescribe manually editor:'', //Object CKEditor, needed only for him width:'', //width of popup, default = 1000 height:'', //height of popup, default = 700 skin:'', //[acdsee3], default = acdsee3 lang:'', //Language, there is now [ru, en], default = en connector:'', //[php], default = php ));
var ckeditor1 = CKEDITOR.replace('editor1'); DjenxExplorer.init({ returnTo: ckeditor1, lang : 'ru' }); // ИЛИ DjenxExplorer.init({ returnTo: CKEDITOR.replace('editor2') });
tinyMCE.init({ // ... file_browser_callback : "DjenxExplorer.open", }); DjenxExplorer.init({ path: '/demos/Djenx.Explorer/', returnTo: 'tinymce' });
Demo: DjenxExplorer + ckeditor
Demo: DjenxExplorer + tiny_mce
Не забудьте выставить права для записи на папку upload, а также на папку "connector/php/cache"
djenx-explorer + ckeditor
djenx-explorer + tiny_mce
В архиве папка demo можете залить её в корень сайта для теста, конфиг в папке "connector"
Сейчас времени к сожалению мало, по мере доступности буду дорабатывать и добавлять вкусности :)
И если вам понравился проект, и вы хотите поддержать его - добавлю донейты
Webmoney - WMR: R163147097997
Webmoney - WMZ: Z171714610319
Yandex.money: 41001665633546
Всем спасибо и удачи ;-)