====== Customization: Themes ====== ^ Related Categories ^ | [[menus|Menus]] | | [[prompts|Prompts]] | | [[display_files|Display Files]] | | [[templates|Templates]] | ----- ===== Themes Overview ===== Mystic BBS has a powerful theme system that allows all of the visual elements displayed to the user to be configured within an easily shareable theme. Each theme consists of a series of prompts, menus, display files, UI templates, and scripts including both Python or Mystic Programming Language. In addition, each theme can be configured to "inherit" prompts, menus, scripts, templates, and display files from other themes or the default theme, if desired. Themes can be easily shared by simply dropping a theme into your "themes" directory, with no other configuration required. After a theme is placed into the themes directory, Mystic will automatically make it available the next time a user is prompted to select a theme. The nature of a theme allows each one to look and behave vastly different from another theme as they allow customization of both visual and functional elements of the BBS interface. In fact, a theme could be used to create different language UI, visual styles, themes specific to different user terminal sizes or terminal emulations (like RIPscript), or even themes that are more friendly to the visually impaired. Themes can be created and edited entirely by using the Themes editor within Mystic BBS, or by directly working within the theme directory system using a text and ANSI editor. The only part of a theme somewhat difficult to edit without using a Mystic editor are the menus. While all parts of a theme are stored as text files, the menus in particular are complex to edit directly with a text editor. It is highly recommended that menus are only edited using the Mystic BBS menu editor. ----- ===== Theme Structure ===== **NOTE: THIS THEME STRUCTURE APPLIES TO 1.12 A44 AND LATER** Mystic BBS has a configurable themes directory where all themes are located. Each theme has its own directory with a sub-directory for menus, text, and scripts. At a minimum, the root theme directory must have a "theme.ini" file that contains configuration items related to the theme itself. The root directory can also contain a "prompts.txt" which contains one or more prompts specific to the theme. Prompts can also be inherited from other themes and/or from the default set of prompts, and the same holds true for menus, display files, and scripts as well. Assuming the Mystic BBS theme directory is configured as "\mystic\themes\" then all themes would be found in their own directory inside of "\mystic\themes\". For example, the default theme that comes with Mystic BBS looks like this: * **\mystic\themes\** (Mystic BBS Themes directory) * **default** (Root theme directory for "default" theme, directory name can be up to 20 characters) * **theme.ini** (Theme configuration file in root theme directory) * **menus** (menus sub-directory where Theme menus are stored) * **text** (text sub-directory where display files and templates are stored) * **scripts** (scripts sub-directory where MPL and Python scripts are stored) Installing a new theme is as simple as dropping the theme directory into your "\mystic\themes\" directory, and Mystic will automatically do the rest. Likewise, if you wish to share one of your themes, just ZIP up the theme directory and give it to other SysOps to drop into their own theme directory! ----- ===== Theme Editor ===== ----- ===== Theme Inheritance ===== ----- ===== theme.ini Reference =====