Customization
tmda-cgi is easily customized by modifying the theme. Unless you wish to
make radical changes, you should not need to modify the Python code.
Begin by making a copy of the Blue directory under
display/themes and select this new theme with the theme picker in
tmda-cgi. You can now begin to make changes to your theme and view your
changes as you work.
Here is a fairly brief summary of things to keep in mind while working on
your theme. If you need more help, please see the Commercial Support page for contact
information.
Directories
Embedded Variables
Theme Form Variables
Using button_maker
Directories
buttons |
Images used as navigation buttons. Feel free to modify these. |
button_templates |
Buttons without text. If you modify these, you will need to use the
button_maker program to add the text back onto the buttons. |
dyn_buttons |
Blank buttons with added text. Don't modify these. Modify the blank
buttons and use button_maker to add the text back onto
them. |
flowchart |
Reserved for future use. |
template |
HTML templates. You can modify the .html files, but if an
.ht of the same name exists, I recommend you modify that instead
and use make to rebuild the .html. |
./*.gif ./*.png |
Miscellaneous images used on the template pages. Feel free to modify
these. |
styles.css |
Stylesheet for template pages. Feel free to modify this. |
theme.ini |
Theme configuration. Feel free to modify
this. |
subtopics.p |
Generated by running make in template directory.
Do not modify. |
Embedded Variables
tmda-cgi expands the embedded variables it finds on the template pages.
These variables appear in three different formats:
- Standard Python expansion variables, such as %(Sender)s. These
variables are replaced with actual data when tmda-cgi is run.
- Embedded variables, such as <-- var: Grey="#91A2BD" -->.
tmda-cgi reads in these variables and uses the value given. The quotes are
mandatory and may not be substituted with single ticks.
- Special blocks, marked with a <-- var: Row --> at the
beginning and either a <-- /var --> or <-- /var (Row)
--> at the end. These blocks are repeated or removed depending on the
content tmda-cgi needs to display.
All variable names are case-sensative.
Theme Form Variables
The theme customization page can accept a wide variety of fields, all
without modification of the Python code. This is done by "announcing" what
form fields (and potential values) to expect by way of an embedded variable
called FormVars.
FormVars must be assigned a comma separated list of variables.
Each variable must be in the following format:
<Section>:<Option>[:<Value>:...]
The [:<Value>:...] list should be used if the variable will be
configured with a pull-down list or series of radio buttons. Each item listed
should be a punctuation-stripped version of value it can return. Text inputs
do not require any values to be listed.
Each variable listed in FormVars should correspond to a
<input> tag on the form. The fields should be named according to
<Section><Option> (no ":").
Drop-down fields should use <option> tags as follows:
<option %(<Section><Option><Value>Selected)s
value="<Value>"><Text></option>
Radio buttons should use <input> tags as follows:
<input type="radio" name="<Section><Option>"
value="<Value>"
%(<Section><Option><Value>Checked)s>
Using button_maker
button_maker is an <Ack! Spit! Puke!> Perl program* that comes with tmda-cgi and
applies text to blank button templates. The code is called automatically
when make detects a change in links.h.
However, make is not set to automatically rebuild all
.html files when links.h is changed. If you change the
menu structure, run make remake instead to make sure that all
.html files are updated.
Before running button_maker, you will need to make sure the
following programs have been installed on your server:
* Yes, I realize that there is now a Python API for ImageMagick (PythonMagic). It was in its
infancy when I created button_maker and was not yet working for the
*nix platforms.
|