HFS: Template

From rejetto wiki
Jump to navigation Jump to search

Applying templates from a forum

Download templates from the HFS templates forum.

  1. Open the "Menu" in HFS
  2. Select "Other options" and open "Edit HTML template"
  3. Copy your HTML template and paste it over the HFS "HTML template"

Test your new HTML template by pressing the "apply" button and reload your HFS web page on your web browser.

Building your own HTML template

1. Open the "Menu" in HFS

2. Select "Other options" and open "Edit HTML template"

3. Press the "Help" button to list the available symbols to use in your HTML template.


Template help

HFS builds HTML pages dynamically from the template file hfs.tpl in the hfs.exe folder. If it does not exist, the default template inside hfs.exe will be used.

A template is divided in sections. Each section describes a part of the final HTML page which will be served to the rquesting browser. The template should provide all sections for correct working of the generated HTML. A section usually contains HTML code. Since the final HTML page is built dynamically, symbols have to be used to get valid output. Symbols are surrounded by %percent% characters and define the corresponding sections. A section is labelled using [square brackets]. Symbols will be translated with actual values at run-time. Some symbols return a string for the current variable, while others only get activated if a certain condition is met. Besides symbols, also some defined command line operators can call sections to generate HTML for output.

In the main section, which is unlabeled, and in all other sections, symbols and command line operators can be used to control the HTML output. Some symbols are limited to a specific section. Some symbols will produce the HTML from the corresponding sections, while others just return the corresponding actual string or value.

The best way to build a template is to edit an existing template.

Symbols list - by section

Symbols available in all sections:

%style% - inserts the HTML from [style]

%login-link% - inserts HTML from [login-link] if no user is logged in, void otherwise

%loggedin% - inserts HTML from [loggedin] if a user is logged in, void otherwise

%user% - returns the name of the authenticated user, void if no user is logged in

%version% - returns the HFS version number

%timestamp% - returns the value for the date and time of the server (format is defined by OS settings)

%uptime% - returns the value for how long HFS has been running without quitting

%connections% - returns the value for the current number of connections to HFS

%speed-out% - returns the value for the current outbound throughput

%speed-in% - returns the value for the current inbound throughput

%total-out% - returns the value for the total amount of bytes sent

%total-in% - returns the value for total amount the of bytes received

%number-addresses% - returns the value for the current number of connected clients (IP addresses)

%number-adresses-downloading% - returns the value for the current number of downloading clients (IP addresses)


Symbols available in the main section:

%up% - inserts HTML from [up] if the current folder is not the root, void otherwise

%upload-link% - inserts HTML from [upload-link] if upload is available in the current folder, void otherwise

%host% - returns the Host http header field, as sent by the browser eg. URL(:port) or IP(:port)

%number% - returns the value for the number of items in the current folder

%number-folders% - returns the value for the number of folders in the current folder

%number-files% - returns the value for the number of files in the current folder

%total-size% - returns the smart value for the amount of space occupied by items in the current folder

%total-kbytes% - same as %total-size% but expressed in kilobytes

%total-bytes% - same as %total-size% but expressed in bytes

%build-time% - returns the value for how long it took to generate the page

%files% - inserts HTML from [files] if at least one item is present in the current folder, inserts HTML from [nofiles] otherwise


Symbols available in [files]:

%list% - the full list of items in the current folder, got by pasting each item after the pertinent section where [folder], [file] or [link] was inserted.


Symbols available in [file] [folder] [link]:

%new% - inserts HTML from [new] if the file is marked as new, void otherwise

%comment% - inserts HTML from [comment] if a comment is available for the item, void otherwise

%item-url% - returns the value for the path to get the item

%item-name% - returns the value for the label of the item

%item-added% - returns the value for date and time when the item was added to the VFS (date and time format is defined by OS settings)


Symbols available in [file] [folder]:

%item-dl-count% - returns the value for the download counter (virtual folders totalize inner counters)

%item-modified% - returns the value for the modification time as reported by file or folder (date and time format is defined by OS settings)


Symbols available in [file]:

%item-size% - returns the value for the amount of space occupied by the item

%item-size-b% - same as %item-size% but expressed in bytes

%item-size-kb% - same as %item-size% but expressed in kilobytes


Symbols available in [upload], [upload+progress], [upload-results] and main section:

%diskfree% - returns the value for the total amount of available space minus the reserved space in the drive containing the current folder (makes sense only for real folders)

%folder% - returns the value for the path to the current folder

%encoded-folder% - returns the value for the encoded path to the current folder

%parent-folder% - returns the value for the encoded path to the parent folder

%folder-comment% - inserts the HTML from [folder-comment] if a comment is available for the current folder, void otherwise


Symbols available in section [error-page]:

%content% - inserts the HTML from [ban], [deny], [not found], [unauthorized] or [overload], depending on the error code


Symbols available in section [ban]:

%reason% - returns value for the ban description from the hfs.ini


Symbols available in section [progress]:

%progress-files% - inserts the HTML from [progress-nofiles] if no file is transferred with the current client, otherwise the list of transferring files got by pasting each file after the pertinent section [progress-download-file] and/or [progress-upload-file] is inserted


Symbols available in [progress-download-file], [progress-upload-file] related to the transferring file:

%perc% - returns the value for the percentage done

%filename% - returns the value for the name of the file

%done-bytes% - returns the value for the transferred bytes

%done% - same as %done-bytes%, but using dynamic measure units

%total-bytes% - returns the value for the number of bytes of the completed transfer

%total% - same as %total-bytes%, but using dynamic measure units

%speed-kb% - returns the value for the throughput speed


Symbols available in section [upload]:

%uploaded-files% - input boxes for files to be uploaded got by pasting [upload-file] for each file


Symbols available in section [upload-file]:

%idx% - ordinal index of the input box


Symbols available in section [upload-results]:

%uploaded-files% - list of uploaded files got by pasting [upload-success] and/or [upload-failed] for each file


Symbols available in sections [upload-success] and [upload-failed]:

%item-name% - name of the file


Symbols available in section [upload-success]:

%item-size% - returns the value for the size of the uploaded file

%speed% - returns the value for the average upload speed


Symbols available in section [upload-failed]:

%reason% - returns the value for the error occurred while uploading


Command Line Operators List:

~login - calls for the login screen

~files.lst - inserts HTML from filelist.tpl if exists in hfs.exe folder; otherwise produces ASCII file list of the requested folder

~img - shows server graphic

~progress - calls the HTML from [progress]

~upload - calls HTML from [upload] for the requested folder

~upload-no-progress - calls HTML from [upload-no-progress] for requested folder

~upload+progress calls HTML from [upload+progress] for the requested folder


Sections list

Sections available in the template:


[style] inserts HTML for the %style% symbol

[login-link] inserts HTML for the %login-link% symbol when no user is logged

[loggedin] inserts HTML for the %loggedin% symbol when the user has logged in

[up] inserts HTML for the %up% symbol when there's a parent folder

[link] inserts HTML for the a link to an URL

[folder] inserts HTML for the link to a folder

[file] inserts HTML for the link to a file

[files] inserts HTML for the %files% symbol when the current folder is not empty

[nofiles] inserts HTML for the %files% symbol when the current folder is empty

[comment] inserts HTML for the %comment% symbol for [file] [folder] and [link]

                                                   if available in the VFS

[folder-comment] inserts HTML for the %folder-comment% symbol if available in the VFS

[newfile] inserts HTML for the %new% symbol if the item is marked as new



[upload-link] inserts HTML for the %upload-link% symbol when the user has upload rights

[upload] inserts HTML for the ~upload command

[upload-file] inserts HTML for the upload form

[upload-results] inserts HTML for the upload results page after upload has finished

[upload-success] inserts HTML for the successfully uploaded files

[upload-failed] inserts HTML for the unsuccessfully uploaded files



[progress] inserts HTML for the %progress% symbol

[progress-download-file] inserts HTML for ongoing download

[progress-upload-file] inserts HTML for ongoing upload

[progress-nofiles] inserts HTML when no file transfer is ongoing

[upload-no-progress] inserts HTML for the ~upload-no-progress command

[upload+progress] inserts HTML for the ~upload+progress command



[error-page] inserts HTML in case of an error

[overload] inserts HTML for the %content% symbol

[unauthorized] "

[deny] "

[ban] "

[max contemp downloads] "

[not-found] "


Edit in progress, just saved in order not to loose my work

________________________________________________________________________________