Drupella FM is a web-based file manager that has a drag & drop user interface powered by AJAX.
This is the standalone version that can be integrated into any site running PHP.
Features
- AJAX powered drag & drop user interface
- File operations: Upload, Delete, Move, Copy, Rename, Download
- Folder operations: Create, Delete, Move, Copy, Rename, Download
- Image operations: Resize, Crop
- Mouse indicators for move-copy permissions during drag & drop.
- Multiple file upload
- Upload progress
- Drag drop files from your local computer
- File sorting by name, size, date, type
- Keyboard shortcuts for file operations similar to common file explorers of Windows and Linux.
- Switching between icon view and list view
- Small footprint with overall 90kb javascript. (30kb gzipped)
- Very fast javascript DOM rendering. A folder containing 10000 files takes only a few seconds to render.
- Configurable limits: upload file size, file extensions, image dimensions...
- Multiple personal or shared folders for users
- File permissions per folder
- Display thumbnails as image icons
- Integration with WYSIWYG editors like CKEditor and TinyMCE
- Custom wysiwyg plugins for inserting multiple images or files into editor content
- Mobile friendly responsive layout. Fully functional in mobile browsers supporting touch events.
- Search files & folders
Requirements
Installation
Install
- Copy dfm_php under your site directory so it is available at http://example.com/dfm_php
- Create a copy of the settings file custom/default.settings.php as custom/settings.php
- Edit settings.php to set your managed files directory, admin password, and other configuration options.
- Set settings.php as read-only!
- Visit http://example.com/dfm_php and login as admin to manage your files.
CKEditor Integration
-
Integrate into image & link dialogs:
This requires to set filebrowserBrowseUrl parameter of CKEditor.config.
http://docs.cksource.com/ckeditor_api/symbols/CKEDITOR.config.html#.file...- Either set it globally:
CKEDITOR.config.filebrowserBrowseUrl = '/dfm_php?fileHandler=dfmCkeHandler';
- Or set it per editor instance:
CKEDITOR.replace('editor1', {filebrowserBrowseUrl: '/dfm_php?fileHandler=dfmCkeHandler'});
You also need to define the handler(dfmCkeHandler) by javascript in the page on which CKEditor is being displayed:
// File handler that is called by DFM when a file is selected
window.dfmCkeHandler = function(selectedFile, dfmWindow) {
CKEDITOR.tools.callFunction(dfmWindow.dfm.urlParam('CKEditorFuncNum'), selectedFile.getUrl());
dfmWindow.close();
}; -
Enable the buttons defined in wysiwyg_plugins/ckeditor/plugin.js:
The plugin introduces new image(DfmImage) & link(DfmFile) buttons that allow inserting multiple files at once.
- Either introduce the plugin to CKEditor as an external plugin:
CKEDITOR.plugins.addExternal('dfm', '/dfm_php/wysiwyg_plugins/ckeditor/', 'plugin.js');
- Or copy wysiwyg_plugins/ckeditor as <CKEditor>/plugins/dfm
Then use it in editor configuration:
CKEDITOR.replace('editor1', {
extraPlugins: 'dfm',
toolbar : [['Bold', 'Italic', 'Underline', 'DfmImage', 'DfmFile']]
});Note: You may want to update the plugin.dfmUrl = '/dfm_php' setting in the plugin.js file. In that case move the plugin to a custom folder to prevent overwriting on next update.
TinyMCE and other custom application integration
Please see README.txt for further details.