The Xtrn Section
module provides the “External Programs” (doors) menu for the Terminal server users, and defaults to xtrn_sec.js
.
The Pre Xtrn Prog
module executes common functionality before any external program is launched. This includes things like setting fonts, displaying ANSI screens, clearing screen, and performing the eval_before_exec option. The module defaults to prextrn.js
.
The Post Xtrn Prog
module is like the pre module, except it executes after an external program door is run. It performs the eval_after_exec option and defaults to postxtrn.js
This module (xtrn_sec
) should be the default value of SCFG->System->Loadable Modules->Xtrn Section.
The normally expected usage is just to invoke xtrn_sec.js
with no arguments. If, however, you wish to have the module skip the menu of external program sections and go directly to the menu of available programs within one specific section, pass the internal-code of the desired program section section as an argument to xtrn_sec.js
.
exec_bin xtrn_sec games
However, when installed correctly, this module should run whenever the Baja XTRN_SECTION
function is invoked.
load('xtrn_sec.js', 'games');
However, when installed correctly, this module should run whenever the JS bbs.xtrn_sec()
method is invoked.
The xtrn_sec
module supports the following configuration options in the [xtrn_sec]
section of the ctrl/modopts.ini
file:
Option | Default | Description |
---|---|---|
center | false | Center single-column program list in the user's terminal screen |
multicolumn | true | Use a multiple-column program list when there are more than singlecolumn_height items. This will automatically set to false if screen_columns < 80 |
multicolumn_separator | “ ” | Separator displayed between columns of program names |
multicolumn_fmt | text[XtrnProgLstFmt] | Display format used for multiple columns |
singlecolumn_fmt | “\x01h\x01c%3u \xb3 \x01n\x01c%s\x01h ” | Display format used for single column |
singlecolumn_margin | 7 | Desired button margin (below program list), in rows |
singlecolumn_height | screen_rows - singlecolumn_margin | The maximum length of a single column list |
header_fmt | text[XtrnProgLstHdr] | Program list header format |
titles | text[XtrnProgLstTitles] | Program list titles |
underline | text[XtrnProgLstUnderline] | Underline string under the titles |
section_header_fmt | text[SelectItemHdr] | Header format for main section listing |
section_fmt | text[SelectItemFmt] | Display format used for section entries in main section listing |
section_which | text[SelectItemWhich] | Which prompt for main section listing |
section_header_title | External Program Selection | Main section listing header text |
which | text[WhichXtrnProg] | Which prompt |
sort | false | Re-sort (alphabetically) the list of programs and program sections before displaying to the user |
autoexec | false | Automatically execute a section's program when there is only one program available within that section |
clear_screen | true | Clear the screen before each program list/menu |
clear_screen_on_exec | false | Clear the screen before executing any/all programs |
eval_before_exec | Evaluate the specified JavaScript expression before executing any/all programs | |
eval_after_exec | Evaluate the specified JavaScript expression after executing any/all programs | |
restricted_user_msg | text[R_ExternalPrograms] | Message displayed users with X-restrictions |
no_programs_msg | text[NoXtrnPrograms] | Message displayed when there are no external programs available |
prompt_on_info | false | Display a yes/no prompt after displaying external program intro file |
prompt_on_info_fmt | “\r\n\x01n\x01cDo you wish to continue” | Formatting for prompt_on_info yes/no prompt |
For all options that contain formatting, have the INI entry with a colon such as “name: value”. For true/false, you can use the “=” format such as “name=value”.
Formatting options can contain escaped hexadecimal: “\x01” is Ctrl-A.
This module uses the fonts.js library
and ctrl/fonts.ini
file to optionally load door-specific fonts before executing an external program and restore the default font upon returning from the external program.
; Door Sections ; ------------- ; Each BBS external online program (e.g. door game) may have its own desired ; fonts and some programs may even have customized fonts made just for that ; game (e.g. LORE). ; ; These sections are named with the form: '[xtrn:<code>:<char>] ; where <code> is the external program's Internal Code (as configured in SCFG) ; and <char> is the relevant character height. ; ; Note: you must utilize xtrn_sec.js rev 1.18 or later, or the Pre Xtrn Module for this feature: [xtrn:lore:16] normal=lore high=lore blink=lore highblink=lore [xtrn:lord32:16] normal=lore [xtrn:lord32:14] normal=oldenglish