Documentation

This is the user documentation for File Thingie. It always refers to the newest version of File Thingie. Familiarize yourself with the documentation to get the absolute most out of File Thingie.

If you are looking for the answer to a specific question, you may also want to read through the Frequent Questions.

  1. Installing File Thingie
  2. Setting up additional users and groups
  3. Using a different language
  4. Using plugins
  5. Navigating folders
  6. Uploading files
  7. Creating folders and files
  8. Searching for files and folders
  9. Rename, move, delete and duplicate
  10. Editing text and HTML files
  11. Enabling TinyMCE (Rich text editing)

Installing File Thingie

The first thing you need to do is to download a copy of File Thingie. It's compressed as a zip archive. After you've downloaded the zip file you should unzip it. You will need to change some settings to match your requirements.

Rename the file config.sample.php to config.php. Then open it in a text editor to change the settings. The first small section is the username and password:

define("USERNAME", ""); define("PASSWORD", "");

Simply enter the username and password you want between the second set of quotes. For example if you want the username "donald" and the password "duck":

define("USERNAME", "donald"); define("PASSWORD", "duck");

This is the very minimum you need to do to get File Thingie running. You can upload all the files to a folder on your server and it will work in that folder.

Configuring settings

If the default settings is not what you want File Thingie is very flexible and can be configured in many creative ways. The settings begin under under the username and password and there is one setting on each line. Each setting follows this format:

$ft["settings"]["NAME"] = "VALUE";

Note that the settings that have TRUE or FALSE values should not have the quotes around the setting value.

Setting up additional users and groups

File Thingie supports multiple users and you can assign users to groups with specific settings. This allows you to give a group of people access to their own directory while not being able to access the files of the other group members. You set up additional users in the section below the colour section. By default additional users have been rendered inactive and you will need to remove the comments surrounding the section. Thus:

/* $ft['users']['REPLACE_WITH_USERNAME'] = array( 'password' => 'REPLACE_WITH_PASSWORD', 'group' => 'REPLACE_WITH_GROUPNAME' ); */

Should be changed to:

$ft['users']['REPLACE_WITH_USERNAME'] = array( 'password' => 'REPLACE_WITH_PASSWORD', 'group' => 'REPLACE_WITH_GROUPNAME' );

Then you can set up additional users by editing those lines of code. You can add additional users by copying those 4 lines more than once. E.g. if you want to give access to the users "alfred" (with password "hitchcock") and the user "steven" (with password "soderbergh"), both belonging to the group "hollywood", you would have the section read:

$ft['users']['alfred'] = array( 'password' => 'hitchcock', 'group' => 'hollywood' ); $ft['users']['steven'] = array( 'password' => 'soderbergh', 'group' => 'hollywood' );

The section for groups is located just below the user section and has a similar format. Again you need to remove the comments around the section so:

/* $ft['groups']['REPLACE_WITH_GROUPNAME'] = array( 'DIR' => 'REPLACE_WITH_CUSTOM_DIR', ); */

Becomes:

$ft['groups']['REPLACE_WITH_GROUPNAME'] = array( 'DIR' => 'REPLACE_WITH_CUSTOM_DIR', );

You can include any of File Thingie's settings to the group and you can add more groups by by copying those 3 lines more than once. E.g. if you want to create one group called "hollywood" with read-only access and another called "indie" with upload access (both using the same directory) you would have the section read:

$ft['groups']['hollywood'] = array( 'DIR' => 'movies', 'UPLOAD' => FALSE, 'FILEACTIONS' => FALSE ); $ft['groups']['indie'] = array( 'DIR' => 'movies', 'UPLOAD' => TRUE, 'FILEACTIONS' => FALSE );

It's even possible to enable plugins only for a single group. Just add the plugin settings to the group settings. For example if you want to turn the search and edit plugins for the above "indie" group:

$ft['groups']['indie'] = array( 'DIR' => 'movies', 'UPLOAD' => TRUE, 'FILEACTIONS' => TRUE, 'plugins' => array( 'search' => TRUE, 'edit' => array( 'settings' => array( 'editlist' => 'txt html htm css', 'converttabs' => TRUE, ), ), ), );

Using a different language

As of version 2.0.7 it is possible to translate the File Thingie interface into languages other than English. To facilitate this new feature a new setting has been introduced, LANG. By default LANG is set to "en" for English and the first thing you need to do is to change this to whatever language you want File Thingie to use. "da" for Danish, "fr" for French and so on. You can see which languages are available by opening the locales folder.

Using plugins

File Thingie 2.5.0 and newer support a plugin system where it's possible to add functionality without modifying core File Thingie files. This makes it easier for you to make custom versions of File Thingie for your own personal use. Since the plugins live outside of File Thingie you will still be able to update your copy of File Thingie without having to merge your changes every time.

The plugin settings are placed below the regular settings and color settings in ft2.php. You disable a plugin by enclosing it in comments. For example if you want to disable the search plugin you would change the following:

$ft["plugins"]["search"] = TRUE; to /* $ft["plugins"]["search"] = TRUE; */ To enable a previously disabled plugin remove these comments. To enable a new plugin create a new plugin setting. If the new plugin contains no settings to the format is: $ft["plugins"]["PLUGINNAME"] = TRUE;

Replace PLUGINNAME with the name of the plugin.

If the plugin requires settings the format is:

$ft["plugins"]["PLUGINNAME"] = array( "settings" => array( "SETTINGNAME" => SETTINGVALUE, "SETTINGNAME" => SETTINGVALUE, ); );

Replace PLUGINNAME with the name of the plugin and SETTINGNAME and SETTINGVALUE with setting names and values. Setting values may require the use of quotes around them.

Where do I place the plugin file?

Each plugin consists of a PHP file. If you are using the expanded version of File Thingie you must place this file inside your PLUGINDIR. The default location is a folder called "plugins".

Core plugin: Search

The search plugin handles searching of files and folders. It is enabled by default. Disable the plugin if you do not wish to be able to search for files and folders.

Core plugin: Edit

The edit plugin handles editing of text based files. It is enabled by default for txt, html, htm and css files. Disable the plugin if you do not want to be able to edit files. It has two settings: editlist (space separated list of file types for editing) and converttabs (TRUE to convert convert tabs to spaces when editing, FALSE to not).

Core Plugin: Tinymce

The tinymce plugin handles insertion of the TinyMCE rich text editor when editing files. It is disabled by default. Before enabling this plugin you must download TinyMCE. See detailed installation instructions.

Developing plugins

To create a new plugin you must create a new file in the PLUGINDIR. It should be named PLUGINNAME.plugin.php (replaced PLUGINNAME with the name of your plugin). This file should only have functions and no output under any cisumstances. Interaction with File Thingie is done using "hooks". Hooks are special functions that are run when certain events take place. Hooks all follow the naming convention ft_hook_HOOKNAME. To include a hook in your plugin replace "hook" with your plugin name and "HOOKNAME" with the name of the hook. For example in the edit plugin the info hook is called ft_edit_info.

The only required hook is ft_hook_info. It returns basic information about your plugin.

File Thingie currently ships with a limited set of hooks because new hooks are only added on an "as-needed" basis. The expanded version of File Thingie contains the file ft_hooks.php which has documentation for the current set of hooks. If you need a new hook contact me and I will add it.

Navigating folders

In the list of files directories (folders) will be listed at the top and their name will be bolded. Click the directory name to enter that directory and get a listing of the files in that directory.

The header at the top of the page will always show your current directory. Each part of the header will also link to the respective directory. You can use this to move up in the directory structure. The "Files in: " link takes you to the home directory.

Uploading files

File Thingie support uploading of multiple files at once. You accomplish this by selecting the files you want to upload one by one.

Select a file as in a normal file upload. After you have chosen a file it is automatically added to a list of files ready for upload. When your file is listed you can then use the same file upload widget to select another file.

When you have selected all the files you wish to upload click the 'upload' button to start the upload. This may take a while if you have many files to upload.

Files will be uploaded to the current directory.

Creating folders and files

To create a directory as a subdirectory in the current directory type the name you want in the input field and click the 'Ok' button. Change the radio button from 'folder' to 'file' if you wish to create an empty file instead of a new folder. This is useful when you need to create new text or HTML documents for editing.

The sidebar contains a section for searching files and folders. Enter your search term in the input field and click the search button to perform the search. Results will automatically be inserted below the input field. The checkbox labeled “Search only this folder and below” controls whether the search should be limited to the current folder and any subdirectories (this is the default) or if all files in the system should be searched.

Only file names and folder names are searched. The contents of files are not searched.

Search results have two links. The first link (the file name) points directly at the file. The second link (the folder name) links to the folder where the file resides. Clicking this link will take you to that folder and the file will be highlighted.

Rename, move, delete and duplicate

Files that can be modified has a diamond (◊) next to the file name. Clicking the diamond will show a menu. It will default to renaming the file. To rename the file enter the new file name in the field and click the 'ok' button. To move a file enter the folder you want to move the file to in the field and click 'ok'. To move files up in the folder structure type "../". For example if you want to move a file two levels up and then into the directory "test" you would type "../../test" (without the quotes). To delete a file click the confirmation button. Nb. the file will be permanently deleted! To duplicate a file enter a new file name (one will be suggested for you) and click 'ok'.

Editing text and HTML files

When a file can be edited a new menu item called 'edit' will appear when clicking a file's diamond. Clicking this and the confirmation button will take you to a page where you can edit the contents of that file. Before saving you are given the option of converting spaces to tabs. When this checkbox is checked every four (4) spaces are converted to tabs.

The standard 'Save' button will save a copy of the file (overwriting the old copy) without leaving the edit window, allowing you to keep editing. The 'Save Exit' button will save the file and return you to the file listing.

Enabling TinyMCE (Rich text editing)

File Thingie versions 2.5.0 and newer makes it easy to enable rich text editing of webpages using the open-source editor TinyMCE.

Turning on rich text editing is simple: