User Tools

Site Tools


menus

MENU SYSTEM

Related Categories
Themes
Menu Command Reference

ANATOMY OF A MENU

The BBS menus are the core of the BBS system. It is where all BBS commands and functions available to the user are defined and setup. Mystic BBS supports an unlimited number of defined menus which can be setup in any way, allowing a totally customizable and unique interface for the user.

Each menu consists of a Settings page where general options are defined for the menu, along with an command/options list, where options that appear on the menu are defined. Each option then has one or more “menu commands” associated to it. These menu commands are executed when the option is selected by the user. In order words, a menu option defines the option that is presented to the user and the menu command(s) configured inside of the option define what the BBS actually does when the option is executed.

Menus can be configured to automatically generate a menu of options for the user based on the options configured, or the internally generated menu can be replaced by a display file (in the Settings page).

There are many more advanced techniques such as automatic execution of menu options based on specific criteria or time-based intervals, or menu option chaining and branching that will be discussed in their own sections.

In addition to the standard type of menu, there are also Lightbar, Grid, and Prompt menu styles which build off of the standard menu system. These types of menus will also be covered in more detail in their own sections.


When first entering the menu editor, you will be prompted to select which theme definition you'd like to edit. It is possible to have different sets of menus for each theme!

After you've selected the theme you'd like to edit, you will be shown the main menu selection screen below. As with most Mystic menus, if you wish to search for an item just start typing the text you wish to search for.

         █▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀ Menu Editor (Default) ▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▄
         █ Menu Name             Description                     █
         █ ───────────────────────────────────────────────────── █
         █ account               Account change                  ▓
         █ autosig               Edit auto signature menu        ░
         █ bbslist               BBS list menu                   ░
         █ demos                 Demos of various things         ░
         █ doors                 Example doors/games menu        ░
         █ file                  File base menu                  ░
         █ flist                 Download file list menu         ░
         █ fnewscan              Scan for new files menu         ░
         █ fqueue                File queue editor menu          ░
         █ goodbye               Logoff menu                     ░
         █ ───────────────────────────────────────────────────── █
         █                Press / for command list               █
         ▀▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄█ 
  • Select Slash (⁄) to see the Insert, Delete or Copy individual menus
  • Highlight any menu and hit ENTER to modify it.

Command List

When a menu is first opened for editing, the default view is the list of options defined in the menu. This view is presented first because it is the most widely used, but each menu also has a Settings page as well that can be accessed from the command list by typing /

█▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀ Options list (account) ▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▄
█ HotKey     Text                                       ID Exe █
█ ──────────────────────────────────────────────────────────── █
█ A          (A) Address                ->               1   1 ▓
█ B          (B) City/State             ->               2   1 ░
█ C          (C) Zip Code               ->               3   1 ░
█ D          (D) Home Phone             ->               4   1 ░
█ E          (E) Data Phone             ->               5   1 ░
█ F          (F) E-mail Address         ->               6   1 ░
█ G          (G) Password               -> [not shown    7   1 ░
█ H          (H) Screen Length          ->               8   1 ░
█ I          (I) Graphics Mode          ->               9   1 ░
█ J          (J) Date Format            ->              10   1 ░
█ ──────────────────────────────────────────────────────────── █
█                   Press / for command list                   █
▀▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄█
  • Highlight and hit ENTER to select a command
  • Use the slash (⁄) key to see a menu of more options.
█▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▄
█ S Settings         █
█ I Insert           █
█ D Delete           █
█ C Copy             █
█ P Paste            █
█ V View             █
▀▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄█
  • Insert - Insert a new command
  • Delete - Delete the highlighted command
  • Copy - Copy the highlighted command
  • Paste - Paste the copied command
  • View - View the generated menu.
  • Settings - Adjust the settings of the menu

The Menu Settings page will allow for the adjustment of many different features of the menu.

█▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀ Menu Settings (account) ▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▄
█                                                                    █
█  Description  │ Account change                                     █
█  Access       │ s10                                                █
█  Fallback     │                                                    █
█  Menu Type    │ Standard                                           █
█  Input Type   │ User Defined                                       █
█  Input Chars  │ Uppercase                                          █
█  Use Global   │ No                                                 █
█  Node Status  │                                                    █
█  Display File │                                                    █
█  Display Cols │ 1                                                  █
█  Menu Header  │ |CL ▒ Account Settings for |$R55|UH|CR             █
█  Menu Prompt  │ |CRCommand (Q/Quit) ->                             █
█  X            │ 0                                                  █
█  Y            │ 0                                                  █
▀▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄█
  • Description - Set the description of the Menu as seen in the Menu List.
  • Access - Set the ACS level required for the user to access this menu.
  • Fallback - Defines a fallback menu which is loaded if the user is sent to this menu but does not meet the access requirements. Leaving this value blank will send the user back to the menu they were last on.
  • Menu Type - Select either Standard, Lightbar, Lightbar/Grid, or Lightbar/Prompt
  • Input Type - Select either User Defined, HotKey, or LongKey
  • Input Chars - This defines how user input is visually represented on the menu. If set to Uppercase, then the user input will be displayed as uppercase. Lowercased would display as lowercase, and Hidden will hide all user input from appearing.
  • Use Global - Mystic has a “global” menu, wherre menu options can be defined that will be loaded into this menu if this option is set to Yes.
  • Node Status - Sets the text that will be displayed for the user's “status”. Leaving this option blank will not set the user's status. By default Mystic will set the user status to “Browsing menus” when the user is in a menu.
  • Display File - When left blank, Mystic will automatically generate a menu based on the configured menu options and the user's access to them. However, a menu can be replaced by defining the base filename (the filename without the .asc or .ans extension) to be loaded from the Theme's text directory. Note that “@S” can be used in the filename and will be replaced by the user's security level allowing you to create menus specific to different security levels you may wish to use on your BBS.
  • Display Cols - Sets the number of columns Mystic will use to format the menu options when generating a menu. Valid options are 1-9, or H for Hidden. The H option will not display any generated menu options on the screen.
  • Menu Header - Defines the header to be displayed before the list of generated menu commands. If left blank, no menu header will be displayed. When the default generated menu is replaced by “Display File” then the header will not be displayed. All MCI codes are available for use in menu headers.
  • Menu Prompt - Defines the prompt to be displayed after the menu is displayed. Setting this to blank will display no prompt. The prompt is always displayed regardless of if the menu is generated by Mystic BBS or replaced by a Display File. All MCI codes are available for use.
  • X, Y - The X and Y positions to park the cursor after the menu has been drawn on the screen. These are only used in the Lightbar-type Menu types.
TypeDescription
StandardUses the standard displayed menu
LightbarThe LightBar High and LightBar Low text can be placed anywhere on the screen
Lightbar/PromptSearchlight-style. The menu options can be scrolled through at the prompt location by using the arrow keys or typing in hotkeys to jump quickly to a selection.
Lightbar/GridAllows you to define the jumps between menu options based on the user's input. It is more complicated to set up but allows for more intricate control over how menu input behaves. The Up, Down, Left, Right, Home, Escape, Tab, PageUp, PageDown, and End fields can link to a command ID found in the menu. When the user presses one of the keys while the command option is selected, Mystic will jump to the command ID defined for that key. A series of menu commands can also be defined for each specific key press, and will be executed prior to jumping to the defined command ID.

Option Editor

The Option Editor is used for editing the individual menu options.

█▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀ Option  #20 (account) ▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▄
█ Display Text  │                                                             █
█ LightBar Low  │                                                             █
█ LightBar High │                                                             █
█ Hot Key       │ Q                                                           █
█ Access        │                                    Up    │ 0   Escape │ 0   █
█ Display Type  │ Access                             Down  │ 0   Tab    │ 0   █
█ X Y           │ 0  0                               Left  │ 0   PageUp │ 0   █
█ Timer         │ 0                                  Right │ 0   PageDn │ 0   █
█ Timer Type    │ Interval      Redraw │ Yes         Home  │ 0   End    │ 0   █
█ Command ────────────────── Access ───── Data ─────────────────────────────  █
█ (GO) Go to new menu                     main                                ▓
█                                                                             ░
█                                                                             ░
█                                                                             ░
█                                                                             █
▀▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄ (TAB) to edit menu commands ▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄█
  • Display Text - The text that is displayed in the Command List window list.
  • Lightbar Low - The text that is displayed when this lightbar menu option is cold (deselected).
  • Lightbar High - The text that is displayed when this lightbar menu option is hot (selected).
  • Hot Key - The key(s) that the user must enter in otder to activate this command. When hotkey input is enabled for a menu, keys with multiple characters can be executed by typing a / before it. When longkey input is enabled for a menu, the / key is not needed. In other words, if the key is “RUN” then the user would type /RUN on a hotkey menu or just “RUN” on a longkey input menu. In addition the a typical hotkey, there are some reserved words that can be used here that allow for various auto-execution type of commands or display formatting to be done that are not dependent on user input to execute. Pressing Control+L will open up a reference of these commands.
  • Access - Define the ACS string required for this menu option to be executable by the user
  • X, Y - The X,Y location for the Lightbar Low and and Lightbar High text
  • Timer - Sets the number of seconds to activate the Timer-based execution or 0 to disable a time-based execution of this menu command.
  • Timer Type - Sets the type of time-based execution. When set to “Interval” then the command will be automatically executed after <Timer> number of seconds. When set to “OnlyOnce” the command will be automatically executed one time when the menu is loaded after <Timer> number of seconds. When set to “PerRedraw” then the command will be automatically executed after <Timer> seconds every time the menu is redrawn.
  • Redraw - If set to TRUE the menu will be redrawn after this menu selection is executed. If set to false the menu will not be redrawn after execution.
  • Up, Down, Left, Right, Home, Escape, Tab, PageUp, PageDn, End - These are used only by Grid style menus and each one defines which menu command ID to switch to when the user presses the key with this command highlighted.

This allows very intricate configuration of menu selection behavior at the expense of complexity.

Each option can perform several sub-tasks in a series when the option is selected and these tasks are defined by creating a menu command or a list of menu commands within the option. Select (TAB) to toggle between the option metadata and the list of menu commands for this menu option.

Many menu commands can be defined to be executed by a single menu option. The menu commands will be activated in serial order when the menu option is activated. This allows for multiple actions for one menu command. Each menu command can have its own access string requirement which allows for advance techniques such as command branching.

A list of menu commands can be found in the Menu Command Reference

█▀▀▀▀▀▀▀▀▀▀▀▀▀ Menu (prelogin) Command #1 ▀▀▀▀▀▀▀▀▀▀▀▀▀▄
█                                                      █
█  Command │ (GO) Go to new menu                       █
█     Data │ main                                      █
█   Access │                                           █
█  Execute │ Select                                    █
█                                                      █
▀▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄█
  • Command - Select from a pick list of available menu commands. Type to search when window is open.
  • Data - The optional data field to use for menu commands that require more information to execute.
  • Access - The access string (ACS) that the user must meet in order to execute this menu command.
  • Execute - Used only for Grid style menus. This command defines which hotkey the user must have pressed for this menu command to execute.

CREATING STANDARD MENU


CREATING LIGHTBAR MENU


CREATING GRID MENU


CREATING PROMPT MENU


AUTO-EXECUTION


OPTION CHAINING


TIMER EVENTS


COMMAND BRANCHING

menus.txt · Last modified: 2019/03/24 21:24 by g00r00

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki