CustomPages by HeadHodge
Includes two CustomPages: 'FileTool' and 'Hello'
I do volunteer database mgmt. and custom coding for The Kavaforums, a worthy non-profit organization.
During the course of my work, I developed a file tool that I use to make my job a little easier. I call it 'FileTool' (original isn't it?).
The work I needed to do required me to learn how to work with the Xenforo framework. To help me learn, I developed a little test program that I use to experiment XF concepts. I call it 'Hello'. It's my rendition of the veritable time-honored hello program.
I had such a long learning curve with Xenforo, I thought I would share my code with the hopes that it may help others using the Xenforo framework.
Administrators may find this useful as a remote file tool. Developers and others may find this useful as a working example that demonstrates a variety of techniques I use to interface with the Xenforo framework.
I include my 'Hello' page for those who may be interested in a bare bones example of a CustomPage with a xf style overlay using Ajax/Json.
'File Tool' Features:
- Traverse the Server File Structure.
- Upload Files.
- Cut, Copy, Paste Directories and Files.
- Edit/Delete Directories and Files.
- Unzip Files.
'File Tool' Techniques:
- Passing objects between client/server using Ajax/Json
- Creating multpart forms with the HTML5 FormData object
- Create a multipart post to upload FormData files
- Encode/Decode binary data in a Json object
- HTML5 'flex' elements for better layout control
- Self invoking objects to isolate variables (Namespace)
- Creating xf style overlays
- Dragging/Dropping Table Columns
- Dragging/Resizing Table Columns
- Various file system functions (i.e. 'rename file', 'delete file')
- Dynamic class loading
- Unzipping files
- Retrieving/Saving uploaded multipart form files
- Encoding/Decoding binary data for Json objects
- Interfacing Page Nodes to a callback controller
- Using a JSON View method to stringify objects to Json format
- Using a RAW View method to return Html without templates
- Using Callbacks in templates to inject Html into them.
- Using $Visitor object to implement a security feature.