82 lines
		
	
	
		
			3.4 KiB
		
	
	
	
		
			Markdown
		
	
	
	
	
	
			
		
		
	
	
			82 lines
		
	
	
		
			3.4 KiB
		
	
	
	
		
			Markdown
		
	
	
	
	
	
| Red development - a guide to the schema system
 | |
| ==============================================
 | |
| 
 | |
| 
 | |
| 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:
 | |
| 
 | |
| * nav_colour
 | |
| 	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
 | |
| 	hover effects.
 | |
| * banner_colour
 | |
| 	The font colour of the banner element.  Accepts an RGB or Hex value.
 | |
| * bgcolour
 | |
| 	Set the body background colour.  Accepts an RGB or Hex value.
 | |
| * background_image
 | |
| 	Sets a background image.  Accepts a URL or path.
 | |
| * item_colour
 | |
| 	Set the background colour of items.  Accepts an RGB or Hex value.
 | |
| * item_opacity
 | |
| 	Set the opacity of items.  Accepts a value from 0.01 to 1
 | |
| * toolicon_colour
 | |
| 	Set the colour of tool icons.  Accepts an RGB or Hex value.
 | |
| * toolicon_activecolour
 | |
| 	Set the colour of active or hovered icon tools.
 | |
| * font_size
 | |
| 	Set the size of fonts in items and posts.  Accepts px or em.
 | |
| * body_font_size
 | |
| 	Sets the size of fonts at the body level.  Accepts px or em.
 | |
| * font_colour
 | |
| 	Sets the font colour.  Accepts an RGB or Hex value.
 | |
| * radius
 | |
| 	Set the radius of corners.  Accepts a numeral, and is always in px.
 | |
| * shadow
 | |
| 	Set the size of shadows shown with inline images.  Accepts a numerical 
 | |
| 	value.  Note shadows are not applied to smileys.
 | |
| * converse_width
 | |
| 	Set the maximum width of the content region in px.
 | |
| * nav_min_opacity
 | |
| * top_photo
 | |
| * reply_photo
 | |
| 
 | |
| 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.
 | |
| 
 | |
| 
 | |
| #include doc/macros/main_footer.bb;
 |