Both sides previous revisionPrevious revisionNext revision | Previous revision |
custom:menu_files [2018/10/25 16:15] – [Optional] Added mention of "msgtabs" menu file (long missing) digital man | 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. |
| |
Other display files (mainly used during the terminal server's new user registration process), are stored in the ''[[dir:text]]'' 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: |
| 4 | ''.asc'' | | ''.asc'' | | ''.msg'' | | | | | | 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 (e.g. usually 80 or 40) and ''//.ext//'' is one of the supported file extensions from the above list. | 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). | 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 [[http://cvs.synchro.net/cgi-bin/viewcvs.cgi/text/menu/|Menu Directory]] in [[dev:CVS]] for default menu files and their contents. | 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. | 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. |
|subs//<x>// |execmsg.cpp |Message Sub-board listing, //<x>// is the group number| | |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)| | |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| | |msgtabs |writemsg.cpp|Internal message editor tab bar| |
|dirs//<x>// |execfile.cpp|File Directory listing, //<x>// is the library number| | |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 |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//<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///<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_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| | |text//<x>// |text_sec.cpp|Text File listing, //<x>// is the text file section number| |