Synchronet v3.19b-Win32 (install) has been released (Jan-2022).

You can donate to the Synchronet project using PayPal.

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
Last revisionBoth sides next revision
module:xtrn_sec [2020/04/22 21:03] – Added all the new modopts, describe the optional custom files, new install/usage digital manmodule:xtrn_sec [2020/12/01 07:48] – [Display Files] add global header/footer mlong
Line 1: Line 1:
 ====== External Programs Section ====== ====== External Programs Section ======
-The ''xtrn_sec.js'' module provides the "External Programs" (doors) menu for the [[:server:Terminal]] server users.+The ''Xtrn Section'' module provides the "External Programs" (doors) menu for the [[:server: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''
  
 ===== Install ===== ===== Install =====
Line 7: Line 11:
 ===== Invoke  ===== ===== Invoke  =====
  
-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 and argument to ''xtrn_sec.js''.+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''.
  
  
Line 30: Line 34:
  
 ^ Option                 ^ Default ^ Description ^ ^ Option                 ^ Default ^ Description ^
-| multicolumn            |  true   | Use a multiple-column program list when there are more than ''singlecolumn_height'' items | +| 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_separator  | " "    | Separator displayed between columns of program names | 
-| multicolumn_fmt        |  text[XtrnProgLstFmt]  | Display format used for multiple columns | +| multicolumn_fmt        | text[XtrnProgLstFmt]  | Display format used for multiple columns | 
-| singlecolumn_fmt        (see source)          | Display format used for single column | +| 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_margin    | 7      | Desired button margin (below program list), in rows | 
-| singlecolumn_height    |  screen_rows - singlecolumn_margin  | The maximum length of a single column list | +| singlecolumn_height    | screen_rows - singlecolumn_margin  | The maximum length of a single column list | 
-| header_fmt              text[XtrnProgLstHdr]  | Program list header format | +| header_fmt             | text[XtrnProgLstHdr]  | Program list header format | 
-| titles                  text[XtrnProgLstTitles]  | Program list titles | +| titles                 | text[XtrnProgLstTitles]  | Program list titles | 
-| underline              |  text[XtrnProgLstUnderline]  | Underline string | +| underline              | text[XtrnProgLstUnderline]  | Underline string under the titles | 
-| which                  |  text[WhichXtrnProg]  | Which prompt | +| section_header_fmt     | text[SelectItemHdr] | Header format for main section listing | 
-| sort                    false  | Re-sort (alphabetically) the list of programs and program sections before displaying to the user | +| section_fmt            | text[SelectItemFmt] | Display format used for section entries in main section listing | 
-| autoexec                false  | Automatically execute a section's program when there is only one program available within that section | +| section_which          | text[SelectItemWhich] | Which prompt for main section listing | 
-| clear_screen            true   | Clear the screen before each program list | +| section_header_title   | External Program Selection | Main section listing header text 
-| clear_screen_on_exec    false  | Clear the screen before executing any/all programs | +| which                  | text[WhichXtrnProg]  | Which prompt | 
-| eval_before_exec               | Evaluate the specified JavaScript expression //before// executing any/all programs | +| sort                   | false  | Re-sort (alphabetically) the list of programs and program sections before displaying to the user | 
-| eval_after_exec        |         | Evaluate the specified JavaScript expression //after// executing any/all programs | +| autoexec               | false  | Automatically execute a section's program when there is only one program available within that section | 
-| restricted_user_msg    |  text[R_ExternalPrograms]  | Message displayed users with X-[[access:restrictions]] | +| clear_screen           | true   | Clear the screen before each program list/menu 
-| no_programs_msg        |  text[NoXtrnPrograms]      | Message displayed when there are no external programs available |+| 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-[[access: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.
 ===== Customize ===== ===== Customize =====
  
Line 54: Line 68:
  
   * The auto-generated external program section list can be replaced by creating the optional file ''[[dir:text]]/[[custom:menu_files|menu]]/xtrn_sec.*''.   * The auto-generated external program section list can be replaced by creating the optional file ''[[dir:text]]/[[custom:menu_files|menu]]/xtrn_sec.*''.
-  * Each program list can have an optional header displayed by creating the file ''[[dir:text]]/[[custom:menu_files|menu]]/xtrn<sec_num>_head.*''+  * The external program section list can have an optional header displayed by creating the file ''[[dir:text]]/[[custom:menu_files|menu]]/xtrn_sec_head.*''
-  * Each auto-generated program list can be replaced by creating the optional file ''[[dir:text]]/[[custom:menu_files|menu]]/xtrn<sec_num>.*''.+  * The external program section list can have an optional footer displayed by creating the file ''[[dir:text]]/[[custom:menu_files|menu]]/xtrn_sec_tail.*''
 +  * Each program list can have an optional header displayed by creating the file ''[[dir:text]]/[[custom:menu_files|menu]]/xtrn<sec_num>_head.*'' or ''[[dir:text]]/[[custom:menu_files|menu]]/xtrn<sec_code>_head.*''. 
 +  * You can create a global header across all menus by creating the file ''[[dir:text]]/[[custom:menu_files|menu]]/xtrn_head.*'' 
 +  * Each auto-generated program list can be replaced by creating the optional file ''[[dir:text]]/[[custom:menu_files|menu]]/xtrn<sec_num>.*'' or ''[[dir:text]]/[[custom:menu_files|menu]]/xtrn<sec_code>.*''
 +  * Each program list can have an optional tail section displayed by creating the file ''[[dir:text]]/[[custom:menu_files|menu]]/xtrn<sec_num>_tail.*'' or ''[[dir:text]]/[[custom:menu_files|menu]]/xtrn<sec_code>_tail.*''
 +  * You can create a global tail across all menus by creating the file ''[[dir:text]]/[[custom:menu_files|menu]]/xtrn_tail.*''
   * Each external program can have an optional file displayed before execution by creating the file ''[[dir:text]]/[[custom:menu_files|menu]]/xtrn/<code>.*''   * Each external program can have an optional file displayed before execution by creating the file ''[[dir:text]]/[[custom:menu_files|menu]]/xtrn/<code>.*''
  
Line 73: Line 92:
 ; and <char> is the relevant character height. ; and <char> is the relevant character height.
 ; ;
-; Note: you must utilize xtrn_sec.js rev 1.18 or later for this feature:+; Note: you must utilize xtrn_sec.js rev 1.18 or later, or the Pre Xtrn Module for this feature:
  
 [xtrn:lore:16] [xtrn:lore:16]
Line 90: Line 109:
 ===== See Also ===== ===== See Also =====
   * [[:module:|Modules]]   * [[:module:|Modules]]
 +  * [[config:modopts.ini|Module Options]]
  
 {{tag>doors fonts javascript}} {{tag>doors fonts javascript}}