1. This site uses cookies. By continuing to use this site, you are agreeing to our use of cookies. Learn More.

Unmaintained CustomPages by HeadHodge 1.0

Includes 'FileTool' to remotely manage server directories and files with Ajax/Json

  1. HeadHodge
    Compatible XF Versions:
    • 1.3
    License:
    Liscensed under the MIT License (http://www.opensource.org/licenses/mit-license.php)
    Updates Duration:
    N/A
    Visible Branding:
    No
    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?).

    'FileTool' Screenshot:
    Snapshot 1.png

    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.

    'Hello' Screenshot: Snapshot 2.png

    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:
    • JQuery/Html:
      • 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)
      • Use of delegation to catch events for dynamic added elements
    • JQuery-Tools:
      • Creating xf style overlays
    • JQuery-UI:
      • Dragging/Dropping Table Columns
      • Dragging/Resizing Table Columns
    • PHP:
      • 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
    • Xenforo:
      • 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.
    ___________________________________________

    Pricing/Support:

    I distribute CustomPages freely to everyone under the MIT License (The MIT License (MIT) | Open Source Initiative).

    If you find this tool useful please donate a little (or a lot) to The Kavaforums. It's a worthy non-profit. All donations go directly to them for the exclusive use of offsetting their operation costs to keep their valuable web site alive.

    This is not a commercial product so I provide very limited support for it. You will get extra attention from me with any amount of Donations made to The Kavaforums.

    Donate to KavaForums.gif

    ___________________________________________

    Installation:

    Download the and install the attached zip file.

    Verify that the result installed:

    Directories:
    /root/js/CustomPages
    /root/library/CustomPages

    Templates:
    HeadHodge_FileTools
    HeadHodge_FileTools_Edit
    HeadHodge_FileTools_Reply
    HeadHodge_Hello

    Use the Admin CP to create a new Node of type Page (anywhere you like).

    For the Page Node you use for FileTool:

    Set the URL Portion field in the Page Node form needs to exactly the name 'FileTool' (see attachment).
    Snapshot 3.png

    Set the PHP Callback field in the Page Node form to: 'CustomPages_Controller :: getGuestReply' (see attachment)
    Snapshot 4.png
    For the Page Node you use for Hello:

    Set the URL Portion field in the Page Node form needs to exactly the name 'Hello' (see attachment).
    Snapshot 5.png

    Set the PHP Callback field in the Page Node form to: 'CustomPages_Controller :: getGuestReply' (see attachment)
    Snapshot 4.png
    Note:

    If you downloaded an early version and get a 'Not Authorized' error when running the add-on, edit the following file to disable the security check (see attachment)

    Edit this file:
    /root/library/CustomPages/FileTool/Controller.php
    Snapshot 6.png
    JP1021 likes this.