Both sides previous revisionPrevious revisionNext revision | Previous revision |
custom:menu_files [2010/04/15 14:22] – Links to custom:js changed to custom:javascript digitalman | custom:menu_files [2023/10/26 17:25] (current) – Document the text/menu/lang sub-directory used for translated menu files to alternate languages digital man |
---|
| |
Menu files displayed to the remote terminal client / user are stored in the ''[[dir:text]]/menu'' directory. | Menu files displayed to the remote terminal client / user are stored in the ''[[dir:text]]/menu'' directory. |
| |
| Menu files that have been translated to alternate languages (represented by ''[[dir:ctrl]]/text.//lang//.ini'' files) are stored in their ''[[dir:text]]/menu///lang//'' directory. |
| |
| Other display files (mainly used during the terminal server's //new user// registration process), are stored in the ''[[dir:text]]'' directory. |
| |
Menu files may have one of the following file suffixes / extensions: | Menu files may have one of the following file suffixes / extensions: |
| |
^Extension ^Description^ | ^Extension ^Description of expected contents^ |
|''.asc'' |Ctrk-A Encoded ANSI X3.64-subset and Dumb ASCII Terminals| | |''.asc'' |ASCII characters (CP437 characters, optionally)| |
|''.ans'' |ANSI X3.64 Color Terminals| | |''.msg'' |ASCII/CP437 characters ((the main difference between .asc and .msg files are their selection priority, with .asc files targeting plain-ASCII terminals)) | |
|''.mon'' |ANSI X3.64 Monochrome Terminals| | |''.seq'' |PETSCII characters and control-sequences | |
|''.rip'' |RIPscrip Terminals| | |''.ans'' |ASCII/CP437 characters and ANSI X3.64 Terminal control-sequences| |
|''.wip'' |WIP Terminals| | |''.mon'' |ASCII/CP437 characters and ANSI X3.64 Terminal control-sequences suited for monochrome displays | |
|''.html'' |Experimental HTMLterm| | |''.rip'' |ASCII/CP437 characters and RIPscrip Terminal control-sequences| |
| |
See the [[http://cvs.synchro.net/cgi-bin/viewcvs.cgi/text/menu/|Menu Directory]] in [[dev:CVS]] for default menu files and their contents. | //All// of these file types may contain [[Ctrl-A Codes]] color/attribute codes and/or [[atcodes|@-Codes]]. |
| |
| Although you may have multiple menu files with the same base filename and different suffixes/extensions, only one menu file will be selected and displayed to the terminal user based on their configured or auto-detected terminal type/capabilities. The menu/display file selection priority is as follows (the highest-priority file type that exists on disk will be displayed to the user): |
| |
| | |^ ANSI / CP437((ANSI/CP437 would be the most common BBS terminal-type encountered)) ^^ ANSI / ASCII ^| ||| |
| ^ Priority ^ RIP ^ Color ^ Mono ^ Color ^ Mono ^ PETSCII ^ TTY / CP437 ^ TTY / ASCII ^ |
| | 1 | ''.rip'' | ''.ans'' | ''.mon'' | ''.ans'' | ''.mon'' | ''.seq'' | ''.msg'' | ''.asc'' | |
| | 2 | ''.ans'' | ''.msg'' | ''.ans'' | ''.asc'' | ''.ans'' | ''.msg'' | ''.asc'' | ''.msg'' | |
| | 3 | ''.msg'' | ''.asc'' | ''.msg'' | ''.msg'' | ''.asc'' | ''.asc'' | | | |
| | 4 | ''.asc'' | | ''.asc'' | | ''.msg'' | | | | |
| |
| Each of these file types may be preempted by a terminal-width specific file with a name ending in ''.//X//col//.ext//'' where ''//X//'' is the **exact** number of screen columns required to display the file correctly (e.g. 40, 80, 132) and ''//.ext//'' is one of the supported file extensions from the above list. To specify a **minimum** number of screen columns for a display file, use filenames ending in ''.c//X.ext//'' where //X// is the minimum number of screen columns to display the file correctly. |
| |
| If you only have **one** display file for any particular base filename, it should have either a ''.msg'' or ''.asc'' extension and contain no terminal-control sequences (e.g. ANSI, PETSCII, or RIP). |
| |
| See the [[https://gitlab.synchro.net/main/sbbs/-/tree/master/text/menu|Menu Directory]] in [[dev:git]] for default menu files and their contents. |
| |
| Most menu files are loaded/displayed by a [[custom:command shell]], so the name and location (e.g. sub-directory) of those files may depend on which command shell is in use by the users of your [[server:terminal]] server. |
| |
| ===== Defaults ===== |
| |
| Default menu file names and descriptions: |
| |
| ^Base filename ^Displayed By^Description^ |
| |allmail |readmail.cpp|Sysop's reading all mail on system menu| |
| |attr |writemsg.cpp|Ctrl-A code help for use within the Synchronet internal message editor| |
| |batchxfr |bat_xfer.cpp|Batch transfer menu| |
| |batflag |listfile.cpp|Batch flag command key menu| |
| |chat |chat_sec.js |Chat section menu| |
| |e-mail |default.src |E-mail section menu| |
| |editor |writemsg.cpp|Synchronet internal editor commands and line editing keys| |
| |exempt |useredit.cpp|Exemption flag descriptions for use within User Edit| |
| |flagsx |useredit.cpp|Flag set (x is 1 through 4) descriptions for use within User Editor (sysop to modify)| |
| |logoff |execfunc.cpp|Logoff screen (not displayed on fast logoff)| |
| |logon |logon.js |Logon screen (logon1, logon2, logon3, etc. also supported)| |
| |mailread |readmail.cpp|Reading mail menu| |
| |main |default.src |Main section menu (the most commonly viewed menu)| |
| |maincfg |default.src |Main configuration menu| |
| |maininfo |default.src |Main information menu| |
| |msgscan |scansubs.cpp|Message reading/scanning menu| |
| |multchat |chat.cpp |Multinode chat menu| |
| |privchat |chat.cpp |Private node-to-node chat menu| |
| |qwk |qwk.cpp |QWK Packet configuration and transfer menu| |
| |restrict |useredit.cpp|Restriction flag descriptions for use within User Edit (sysop to modify)| |
| |sentmail |readmail.cpp|Reading sent mail menu| |
| |sysmailr |readmail.cpp|Sysop additional commands while reading mail| |
| |sysmain |default.src |Sysop additional commands for main section| |
| |sysmscan |readmsgs.cpp|Sysop additional commands while message reading/scanning| |
| |syssmail |readmail.cpp|Sysop additional commands while reading sent mail| |
| |sysxfer |default.src |Sysop additional commands for transfer section| |
| |tempxfer |tmp_xfer.cpp|Temporary directory commands menu| |
| |transfer |default.src |File Transfer section menu| |
| |uedit |useredit.cpp|User Edit menu| |
| |xfercfg |default.src |File Transfer section configuration menu| |
| |xferinfo |default.src |File Transfer section information menu| |
| |
| ===== Optional ===== |
| |
| Optional menu file names and descriptions (these file do not exist by default): |
| |
| ^Base filename ^Displayed By^Description^ |
| |batdprot |str.cpp |Batch download transfer protocols (displayed instead of dynamically generated list)| |
| |batuprot |str.cpp |Batch upload transfer protocols (displayed instead of dynamically generated list)| |
| |biprot |str.cpp |Bidirectional transfer protocols (displayed instead of dynamically generated list)| |
| |dlprot |str.cpp |Download transfer protocols (displayed instead of dynamically generated list)| |
| |ulprot |str.cpp |Upload transfer protocols (displayed instead of dynamically generated list)| |
| |grps |execmsg.cpp |Message Group listing (displayed instead of dynamically generated list)| |
| |subs//<x>// |execmsg.cpp |Message Sub-board listing, //<x>// is the group number| |
| |libs |execfile.cpp|File Library listing (displayed instead of dynamically generated list)| |
| |msglist | msglist.js|Used by [[module:msglist|Message List]]| |
| |msgview | msglist.js|Used by [[module:msglist|Message List]]| |
| |msgtabs |writemsg.cpp|Internal message editor tab bar| |
| |dirs//<x>// |execfile.cpp|File Directory listing, //<x>// is the library number| |
| |xtrn_sec_head |xtrn_sec.js |External Program Sections header| |
| |xtrn_sec |xtrn_sec.js |External Program Sections (displayed instead of dynamically generated list)| |
| |xtrn_sec_tail |xtrn_sec.js |External Program Sections footer| |
| |xtrn//<x>//_head |xtrn_sec.js |External Program list header, //<x>// is the section number| |
| |xtrn//<code>//_head |xtrn_sec.js |External Program list header, //<code>// is the section code| |
| |xtrn_head | xtrn_sec.js | External Program list header (global)| |
| |xtrn//<x>// |xtrn_sec.js |External Program listing, //<x>// is the section number| |
| |xtrn//<code>// |xtrn_sec.js |External Program listing, //<code>// is the section code| |
| |xtrn///<code>//|xtrn_sec.js|Message displayed just before executing the external program represented by //<code>//| |
| |xtrn//<x>//_tail |xtrn_sec.js |External Program list footer, //<x>// is the section number| |
| |xtrn//<code>//_tail |xtrn_sec.js |External Program list footer, //<code>// is the section code| |
| |xtrn_tail | xtrn_sec.js | External Program list footer (global)| |
| |text_sec |text_sec.cpp|Text File Section listing (displayed instead of dynamically generated list)| |
| |text//<x>// |text_sec.cpp|Text File listing, //<x>// is the text file section number| |
| |chan |chat.cpp |Multinode Chat Channels (displayed instead of dynamically generated list)| |
| |tmessage |default.src |Displays when the user enters the transfer section| |
| |tpolicy |str.cpp |File transfer policy (displayed instead of ''[[custom:text.dat]]'' strings: TransferPolicyHdr, TpUpload, TpDownload)| |
| |random//<x>// |logon.js |Random logon screen (e.g. ''random1'', ''random2'', ''random3'', etc.)| |
| |
===== See Also ===== | ===== See Also ===== |
* [[javascript|Customization]] | * [[custom:|Customization]] |
| * [[custom:Ctrl-A Codes]] |
| * [[custom:atcodes|@-Codes]] |
| * [[util:ASC2ANS]] utility |
| * [[util:ANS2ASC]] utility |
| * [[resource:ANSI Editors]] |
| |
{{tag>}} | {{tag>}} |
| |