Much water has flowed since I sat down to write my file manager. At that time, IE6 support was considered commonplace, but
HTML5 features could only be dreamed of. In general, here is a
link to version 0.1.0 alpha . At the end of the
first topic , I wrote what I plan to do in the future, I can say I kept my promise and want to present you version 1.0b. From what was planned, the idea was rejected to introduce authorization into the manager, because, as
they said here , this is the fifth wheel. Consider what has changed and what has improved, but first a screen

Evolution
Here is a list of changes:
- Fixed a design bug in IE related to the download window
- complete localization into Russian has been done
- added error output in popap
- added a number of events to the manager, default callbacks are also set
- the file manager and the uploader object, in this case SWFUpload , are linked by a Dependency Injection pattern
- simplified manager initialization
- Added output of the current path and the ability to navigate through open directories from it
- changed UI when creating directory
- reader / editor of media files has been added, in this case pictures, is a full-fledged application, it is connected to the file manager through events
- changed icons
Known bugs and minuses
- highlighting frame in Opera and context menu with double click
- in IE7, the media manager, does not stretch the background under the controls
- Javascript code not documented
Comparison
At the moment, I consider the
elFinder file manager to be the most popular. We will compare it with him.
It is almost identical in size, has a driver already written for working with files that are stored in
MySQL . Based on
jQuery , has good support (javascript code is documented with something similar to PHPDoc), 2.0 beta version was released recently. A beautiful UI, the ability to drag folders and files, has a reader for pictures, it is possible to edit files on the server (I consider this a minus, although it’s probably a useful thing for shared hosting). I did not analyze the code itself, but at first glance there is a lot of it and it is written correctly.
The audacity to test the speed of work I did not have, but the slowness when opening a directory is noticeable, so let's talk about the minuses.
- The first thing that caught my eye was a line showing the current path, if you click on the parent directory, then all the child directories disappear from it, which is somehow not good, if you need to change the directory structure and transfer part of the file from child to child
- not very well implemented popapy. For example, take a popup to load files, when you click on the cross DOM element (and all its child elements) are deleted, and then if you click again to download the file, the same thing is created again. It is not clear why this is.
- an error appears in the pop-up window ... and in order to close it you need to move the mouse and click close. Why not just show the message for 5 seconds and not torment the user?
- everything is implemented as a single holistic program. There is no division into the main part - file structure manipulation, additional - pop-up window manager, file editor (here you can also include archiver and preview of images), directory tree and dragging
A complete list of bugs can be found
here .
I will express my opinion on the
drag & drop account in file managers - this is
PAIN IN THE ASS . Very often, working with him in a hurry, you can accidentally drag some directory somewhere, and well, if there is a story and you can press
CTRL + Z , and if you can not? Then I do not envy you. This happened to me several times, since I have not used the directory tree.
In general, the file manager is very good, where many are already integrated, etc. etc.
Now I will say that in my opinion in my manager is better:
- Fully shared functionality. Regarding the server part, you can take any of the classes and use it somewhere to work with the file system, create tambneils for pictures, process file downloads, copy entire directories, work with many files with one object
- parts of the functionality interact with each other due to Dependency Injection or events
- a clear separation of the file structure into: the server part (the lib directory) and the client part (the web directory), which reduces the likelihood of vulnerability, since the server part is not accessible via the http protocol, except for the index.php file
- the presence of a simple picture editor, with which you can draw and scribble them. The editor is completely independent of the file manager.
Examples and Sources
View the work of the manager can
- here , only the file manager on the page
- here , only the image editor on the page
- here , only file manager in popap
- here , the file manager and popup image editor
You can download it
here or from the
GIT repository
git: //github.com/stalniy/sjFilemanager.git')
Future media manager
- add the ability to put a watermark on the image
- add the ability to apply the actions carried out to all open drawings
- add the ability to read flv video
- Add a Fit On Screen button
The future of the file manager
- add the ability to configure file uploads, for example, creating tambneil for pictures
- make it possible to install several listeners for an event
More details about the manager can be found
here .
PS : about found bugs, wishes and your criticism, please write
here or in the comments
PPS : I work on a project alone, so don't be too strict
UPD: If you can not see the examples on the site, download the source from github. There are examples. Many thanks to the habiouser
JiLiZART and
Mavim for the hint