WXplorer began with the need for a javascript treeview to display navigational content. Actually, the need wasn't even for a treeview as much just a structure of dynamically expanding and collapsing elements based on some interaction (right, a treeview). I decided rather than reinvent the wheel, I'd just google "javascript treeview" and voila, I'd have a good, free, perfect thing.
As it turned out, however, that didn't happen. For a few hours I trapsed through different implementations from here and there, and basically decided I'd write my own. If anything, it'd be a good experience to learn Javascript.
A couple days went by and the treeview was finished. The thing is though, what can you really do with a treeview all by itself? So from there the idea evolved into an what it has become: a file explorer with the look and feel of a file explorer, but sitting in your browser.
NOTE: As of September 19 2007, I have decided that this version of the development process has ended (actually, it ended weeks ago), and will be putting the new source up within the next couple of days.
The changes include a complete rewrite of the object structure, some minor bug fixes, the shell of an auth system, and the shell/hooks for added server interaction via (unimplemented) RMB context menus. This will also mark the official deprecation of PHP4 support. Stay tuned for new source.
NOTE: As of August 24 2007, I have successfully updated much of the event handling, and am continuing to re-work the internals. If you have been trying to run WXplorer so far with PHP5 and are receiving an error, please let me know and I'll provide you and updated script immediately. Otherwise the new version will be up shortly (next couple weeks, days, something...) and should be much improved.
NOTE: As of August 01, 2007, I plan to rewrite some of the event handling in WXplorer, probably over the course of a weekend. When the rewrite is done, which will make the setup a little easier, I'll post links to both the new package and the existing one for those of you who are currently using it. If you have comments or suggestions, email them to me.
Currently, WXplorer is at the end of phase 1, which includes the following features:
There is no exact plan for what the next phase will entail (or if there will even actually be a next phase), but the future could likely see some of these different functionalities:
WXplorer currently can be run using two different visual settings, modern and "old school". Modern is meant to resemble the newer file applications coming out in OS X and Windows Vista, though it is not aimed entirely at any one thing. It is just intended to look, well, modern.
The "old school" look is intended to look like the typical version of Windows Explorer, or one of its myriad knock-offs. It probably looks just like the file explorer you use on your desktop today, as opposed to the one you'll be using tomorrow.
Many of the images used in WXplorer are public domain (specifically the "old school" file icons) and many I created myself. Most of the modern images I created, although a few came from different odd places and when this is official it will contain any necessary license texts.


WXplorer employs three main technologies:
PHP
The PHP portion of the application runs on the webserver, builds and serves the directory structure in XML format.
Note: the original PHP implementation was written using PHP5 and DOM. However, the sourceforge server is running PHP4 and Zend, which uses DOM XML. I rewrote the PHP using DOM XML to run on the server here, and will provide both implementations.
XML
XML DOM is used as the backbone of this entire application. When looking at other implementations of tree views, the one thing that struck out at me was that everyone created their own tree structure to hold the data semantically. Because the HTML DOM and XML DOM are closely related, it seemed like a good idea to just couple them; HTML DOM for the hypertext markup, and XML DOM for the semantic markup. The subset of nodes that make up the tree view and the nodes contained in the XML document are identical, and using XML DOM's tree methods means no crazy tree implementation.
WXplorer uses Sarissa for cross-browser XML DOM implementation. These files are distributed, unmodified, with the release code.
Javascript
The bulk of the implementation in in Javascript, since the bulk of the work is done on the client. This allows for the smooth transitions and no callbacks, and in future versions will allow actual remote file manipulation via XML messaging over SSL. Buzzword alert: AJAX.
Currently WXplorer has been tested on
The source for the working version of WXplorer (used in the demos) is available here: wxplorer.tar.gz
WXplorer is licensed under the GNU General Public License, Version 2 (GPLv2).
There are two working implementations running on this server, which both use as data a directory stuture embedded in an XML document that resides on this server. They display in modern and "old school" visual settings, respectively.
Please note that because the demos use a structure that was built in the past, it's possible (and likely) that file links are broken as files have been moved, changed and deleted over time. IE when you click on a file in the right pane, it is referencing a link that probably no longer exists. I just don't want to update this stuff.