Some doc updates
This commit is contained in:
parent
50c1a60838
commit
db59bc7254
|
@ -1,8 +1,8 @@
|
||||||
---
|
---
|
||||||
layout: page
|
layout: page
|
||||||
title: Menus
|
title: Menu HSJON
|
||||||
---
|
---
|
||||||
## Menus
|
## Menu HJSON
|
||||||
The core of a ENiGMA½ based BBS is `menu.hjson`. Note that when `menu.hjson` is referenced, we're actually talking about `config/yourboardname-menu.hjson` or similar. This file determines the menus (or screens) a user can see, the order they come in and how they interact with each other, ACS configuration, etc. Like all configuration within ENiGMA½, menu configuration is done in [HJSON](https://hjson.org/) format. See [HJSON General Information](hjson.md) for more information.
|
The core of a ENiGMA½ based BBS is `menu.hjson`. Note that when `menu.hjson` is referenced, we're actually talking about `config/yourboardname-menu.hjson` or similar. This file determines the menus (or screens) a user can see, the order they come in and how they interact with each other, ACS configuration, etc. Like all configuration within ENiGMA½, menu configuration is done in [HJSON](https://hjson.org/) format. See [HJSON General Information](hjson.md) for more information.
|
||||||
|
|
||||||
Entries in `menu.hjson` are often referred to as *blocks* or *sections*. Each entry defines a menu. A menu in this sense is something the user can see or visit. Examples include but are not limited to:
|
Entries in `menu.hjson` are often referred to as *blocks* or *sections*. Each entry defines a menu. A menu in this sense is something the user can see or visit. Examples include but are not limited to:
|
||||||
|
@ -24,9 +24,14 @@ Below is a table of **common** menu entry members. These members apply to most e
|
||||||
| `prompt` | Specifies a prompt, by name, to use along with this menu. Prompts are configured in `prompt.hjson`. |
|
| `prompt` | Specifies a prompt, by name, to use along with this menu. Prompts are configured in `prompt.hjson`. |
|
||||||
| `submit` | Defines a submit handler when using `prompt`.
|
| `submit` | Defines a submit handler when using `prompt`.
|
||||||
| `form` | An object defining one or more *forms* available on this menu. |
|
| `form` | An object defining one or more *forms* available on this menu. |
|
||||||
| `module` | Sets the module name to use for this menu. |
|
| `module` | Sets the module name to use for this menu. See **Menu Modules** below. |
|
||||||
| `config` | An object containing additional configuration. See **Config Block** below. |
|
| `config` | An object containing additional configuration. See **Config Block** below. |
|
||||||
|
|
||||||
|
### Menu Modules
|
||||||
|
A given menu entry is backed by a *menu module*. That is, the code behind it. Menus are considered "standard" if the `module` member is not specified (and therefore backed by `core/standard_menu.js`).
|
||||||
|
|
||||||
|
See [Menu Modules](/docs/modding/menu-modules.md) for more information.
|
||||||
|
|
||||||
### Config Block
|
### Config Block
|
||||||
The `config` block for a menu entry can contain common members as well as a per-module (when `module` is used) settings.
|
The `config` block for a menu entry can contain common members as well as a per-module (when `module` is used) settings.
|
||||||
|
|
||||||
|
@ -57,7 +62,37 @@ Menus may also support more than one layout type by using a *MCI key*. A MCI key
|
||||||
For more information on views and associated MCI codes, see [MCI Codes](/docs/art/mci.md).
|
For more information on views and associated MCI codes, see [MCI Codes](/docs/art/mci.md).
|
||||||
|
|
||||||
## Submit Handlers
|
## Submit Handlers
|
||||||
TODO
|
When a form is submitted, it's data is matched against a *submit handler*. When a match is found, it's *action* is performed.
|
||||||
|
|
||||||
|
### Submit Actions
|
||||||
|
Submit actions are declared using the `action` member of a submit handler block. Actions can be kick off system/global or local-to-module methods, launch other menus, etc.
|
||||||
|
|
||||||
|
| Action | Description |
|
||||||
|
|--------|-------------|
|
||||||
|
| `@menu:menuName` | Takes the user to the *menuName* menu |
|
||||||
|
| `@systemMethod:methodName` | Executes the system/global method *methodName*. See **System Methods** below. |
|
||||||
|
| `@method:methodName` | Executes *methodName* local to the calling module. That is, the module set by the `module` member of a menu entry. |
|
||||||
|
| `@method:/path/to/some_module.js:methodName` | Executes *methodName* exported by the module at */path/to/some_module.js*. |
|
||||||
|
|
||||||
|
#### Method Signature
|
||||||
|
Methods executed using `@method`, or `@systemMethod` have the following signature:
|
||||||
|
```
|
||||||
|
(callingMenu, formData, extraArgs, callback)
|
||||||
|
```
|
||||||
|
|
||||||
|
#### System Methods
|
||||||
|
Many built in global/system methods exist. Below are a few. See [system_menu_method](/core/system_menu_method.js) for more information.
|
||||||
|
|
||||||
|
| Method | Description |
|
||||||
|
|--------|-------------|
|
||||||
|
| `login` | Performs a standard login. |
|
||||||
|
| `logoff` | Performs a standard system logoff. |
|
||||||
|
| `prevMenu` | Goes to the previous menu. |
|
||||||
|
| `nextMenu` | Goes to the next menu (as set by `next`) |
|
||||||
|
| `prevConf` | Sets the users message conference to the previous available. |
|
||||||
|
| `nextConf` | Sets the users message conference to the next available. |
|
||||||
|
| `prevArea` | Sets the users message area to the previous available. |
|
||||||
|
| `nextArea` | Sets the users message area to the next available. |
|
||||||
|
|
||||||
## Example
|
## Example
|
||||||
Let's look a couple basic menu entries:
|
Let's look a couple basic menu entries:
|
||||||
|
|
|
@ -2,6 +2,8 @@
|
||||||
layout: page
|
layout: page
|
||||||
title: Existing Mods
|
title: Existing Mods
|
||||||
---
|
---
|
||||||
|
Many "addon" modules exist and have been released. Below are a few:
|
||||||
|
|
||||||
| Name | Author | Description |
|
| Name | Author | Description |
|
||||||
|-----------------------------|-------------|-------------|
|
|-----------------------------|-------------|-------------|
|
||||||
| Married Bob Fetch Event | NuSkooler | An event for fetching the latest Married Bob ANSI's for display on you board. ACiDic release [ACD-MB4E.ZIP](https://l33t.codes/outgoing/ACD/ACD-MB4E.ZIP). Can also be [found on GitHub](https://github.com/NuSkooler/enigma-bbs-married_bob_evt) |
|
| Married Bob Fetch Event | NuSkooler | An event for fetching the latest Married Bob ANSI's for display on you board. ACiDic release [ACD-MB4E.ZIP](https://l33t.codes/outgoing/ACD/ACD-MB4E.ZIP). Can also be [found on GitHub](https://github.com/NuSkooler/enigma-bbs-married_bob_evt) |
|
||||||
|
|
|
@ -0,0 +1,13 @@
|
||||||
|
---
|
||||||
|
layout: page
|
||||||
|
title: Local Doors
|
||||||
|
---
|
||||||
|
## Menu Modules
|
||||||
|
Menu entries found within `menu.hjson` are backed by *menu modules*.
|
||||||
|
|
||||||
|
## Creating a New Module
|
||||||
|
|
||||||
|
### Lifecycle
|
||||||
|
TODO
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue