back to contents

DocumentJunction User Guide

DocumentJunction is a very simple WYSIWYG web content management system which encourages updates thanks to the ease of switching from view to edit modes and back again.


The features are limited, but one can quickly master it because there is a very small learning curve. It is suitable for small project and web sites, but probably not the right fit if you need to manage a large number of contributors.


Documents are automatically resized for the user device, making this utility suitable for mobile (phone/tablet) applications as well as general Web on laptops and desktops.


Two Modes: Viewing and Viewing/Editing Mode

Documents are stored in a path/filename.dat file which contains JSON of both file meta-data and HTML embedded. Along with the .dat file is a similarly named filename.php, which renders the .dat file into pure HTML.


The public will see the filename.php file, which read the .dat file. The php renders as pure HTML for viewing on any web device such as phones, computers, laptops, tablets, IoT, etc. To users, these are indistinguishable from any other web files.


The file will look like https://<root to documentjunction dir>/root/index.php This URL is the one you publish for the general viewing public. However, he file containing the content for that page is stored at the relative location: root/index.dat When saving files in DocumentJunction, always specify that relative location (ie. not an absolute location) and end in .dat


For example, the documentation for some software can be found at http://erickengelke/documentjunction/root/nice/index.php The relative path used in saving your file is root/nice/index.dat


When viewing with the php file, at the bottom of each document is a tiny HTML link to the advanced Viewing/Editing mode. Click on the link and it brings up a rich JavaScript based viewer and editor. The system is compatible with most browsers, but currently has the limitation that Apple's disappearing scrollbars make it harder to scroll documents on Macs and iPhones/iPods. Since you can always cursor up or down to scroll, this limitation is not terrible.


User Instructions: Viewing/Editing Mode

Each document has a title at its top. To edit the current document, click on the Edit button in the top level menu.


When you are comfortable with your changes, you can Save or SaveAs to change the file to a new name. Discard indicates the document changes should be discarded. Preview allows you to view before saving.


Use the toolbar to control the effects on your text and to add images.

To add a hyperlink to text, highlight the text then press the hyperlink button. You will be prompted for the URL to use. Use relative (ie. no http:// or https:// for internal documents in the system) and http:// or https:/ for external Web links..


Cut and paste (Ctrl C and Ctrl V on PCs, Command C and Command V on Macs).


Undo is Ctrl Z on PCs, Command Z on Macs while you are in the editor.


We recommend to save often. Then if the editor gets confused, you will have lost only a few minutes worth of work.


Version Control

The system automatically makes backups of previous versions of files (this can be turned off if desired by setting user_backups=false in the config file). If you ever need to revert to a previous version of a page, have your system administrator select from the various versions of the file in the subdirectory, their file times will help select the correct version.


External URL Access To Pages

By default, DocumentJunction loads root/index.dat. If you wish to reference a different page from an external site, add the string ?page=root/mypage.doc to your URL



Strict HTML

DocumentJunction works strictly in HTML with help from JavaScript in the browser and JSON storage thanks to some small PHP helper routines.


The pages are compatible with screen readers, magnifiers, text-to-speeech for accomodating special needs. It is compatible with all Web 2.0 capable devices from laptops and desktops, tablets, phones, IoT, etc.


If desired, the actual HTML of pages can be extracted with little effort from the JSON files which store each page's content.



Site Map

The system stores all documents under the ./root subdirectory in a directory hierarchy. There is no database involved.


DocumentJunction includes a site map of all documents for easy management. Click the title, select File then Open, select a document, the click Open File to open that document.


Performance

The system is relatively fast.


The usual rendering engine takes the document source and renders pure HTML with no JavaScript.



Security

The system leverages Unix and Apache security features and modules. The risk exposure is quite low since very little PHP is performed on the server side.


Much of the technology is implemented in user code in the browser.


Limitations

While the system is easy to use, it does have drawbacks, also owing to its simplicity.


Management of write permissions in the config file is a bit clunky.


Installation

Untar the DocumentJunction.tar file in a subdirectory served by Apache or other web server with PHP capabilities.


Change the root (document) directory to be owned by your appropriate Apache Web server account.


chown -R www root



Edit the config.php file to indicate:


The system is now usable.


Password Controls

Password mechanisms supported are enterprise-technologies like ADFS (Apache+Mellon), OpenID Connect and also simple standalone .htaccess Digest.


Enterprise authentication technologies can be used to secure all access or just write access, depending on how you configure the system.


By default, the system is world-readable but only trusted-user-writable.


To secure all read/write access to those who can login, set your ADFS or OpenID Connection to protect the root of the system, and set the config.php's

$user_flag = 'MELLON_samaccountname';


To secure all read/write access using .htaccess Digest, set a .htaccess with the appropriate controls in the root directory of the system.


To grant a user write access, edit the config.php file and set:

$user_super[] = 'jblow';


Acknowledgements

DocumentJunction is written by Erick Engelke and uses the following software.






Edit in DocumentJunection