A schema, in a nutshell, is a collection of settings for a bunch of variables to define
certain elements of a theme. A schema is loaded as though it were part of config.php
and has access to all the same information. Importantly, this means it is identity aware,
and can be used to do some interesting things. One could, for example, restrict options
by service class, or present different options to different members.
By default, we filter only by whether or not expert mode is enabled. If expert mode is
enabled, all options are presented to the member. If it is not, only scheme, background
image, font face, and iconset are available as choices.
A schema is loaded *after* the member's personal settings. Therefore, to allow a member
to overwrite a particular aspect of a schema you would use the following syntax:
if (! $foo)
$foo = 'bar';
However, there are circumstances - particularly with positional elements - where it
may be desirable (or necessary) to override a member's settings. In this case, the syntax
is even simpler:
$foo = 'bar';
Members will not thank you for this, however, so only use it when it is required.
If no personal options are set, and no schema is selected, we will first try to load a schema
with the file name "default.php". This file should never be included with a theme. If it
is, merge conflicts will occur as people update their code. Rather, this should be defined
by administrators on a site by site basis.
default.php and default.css MUST be symlinks to existing scheme files.
You schema does not need to - and should not - contain all of these values. Only the values
that differ from the defaults should be listed. This gives you some very powerful options
with very few lines of code.
Note the options available differ with each theme. The options available with the Redbasic
theme are as follows:
The colour of the navigation bar. Options are red, black and silver. Alternatively,
one can set $nav_bg_1, $nav_bg_2, $nav_bg_3 and $nav_bg_4 to provide gradient and
The font colour of the banner element. Accepts an RGB or Hex value.
Set the body background colour. Accepts an RGB or Hex value.
Sets a background image. Accepts a URL or path.
Set the background colour of items. Accepts an RGB or Hex value.
Set the opacity of items. Accepts a value from 0.01 to 1
Set the colour of tool icons. Accepts an RGB or Hex value.
Set the colour of active or hovered icon tools.
Set the size of fonts in items and posts. Accepts px or em.
Sets the size of fonts at the body level. Accepts px or em.
Sets the font colour. Accepts an RGB or Hex value.
Set the radius of corners. Accepts a numeral, and is always in px.
Set the size of shadows shown with inline images. Accepts a numerical
value. Note shadows are not applied to smileys.
Set the maximum width of the content region in px.
If a your_schema_name.css file is found, the content of this file will be attached to the end of style.css.
This gives the schem developer the possiblity to override any style component.
Return to the Main documentation page