Synchronet v3.21e-Win32 (install) has been released (Mar-2026).

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
custom:menu_files [2025/01/08 19:07] – [Optional] add fileinfo menu file digital mancustom:menu_files [2026/01/12 03:29] (current) – [Defaults] syssmail has gone away. digital man
Line 2: Line 2:
  
 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.
 +
 +If the //[[dir:mods]]// directory has been configured (in SCFG->System->Advanced Options), menu files may also be stored in the ''[[dir:mods]]/text/menu'' directory and will take precedence.
  
 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. 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.+Other display files (mainly used during the terminal server's //new user// registration process), are stored in the ''[[dir:text]]'' directory (or ''[[dir:mods]]/text'' directory).
  
 Menu files may have one of the following file suffixes / extensions: Menu files may have one of the following file suffixes / extensions:
Line 41: Line 43:
  
 ^Base filename ^Displayed By^Description^ ^Base filename ^Displayed By^Description^
-|allmail       |readmail.cpp|Sysop's reading all mail on system menu| +|''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| +|''attr''          |writemsg.cpp|Ctrl-A code help for use within the Synchronet internal message editor| 
-|batchxfr      |bat_xfer.cpp|Batch transfer menu| +|''batchxfr''      |bat_xfer.cpp|Batch transfer menu| 
-|batflag       |listfile.cpp|Batch flag command key menu| +|''batflag''       |listfile.cpp|Batch flag command key menu| 
-|chat          |chat_sec.js |Chat section menu| +|''chat''          |chat_sec.js |Chat section menu| 
-|e-mail        |default.src |E-mail section menu| +|''e-mail''        |default.src |E-mail section menu| 
-|editor        |writemsg.cpp|Synchronet internal editor commands and line editing keys| +|''editor''        |writemsg.cpp|Synchronet internal editor commands and line editing keys| 
-|exempt        |useredit.cpp|Exemption flag descriptions for use within User Edit| +|''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)| +|''flags//<x>//''  |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)| +|''logoff''        |execfunc.cpp|Logoff screen (not displayed on fast logoff)| 
-|logon         |logon.js    |Logon screen (logon1, logon2, logon3, etc. also supported)| +|''logoninfo''     |logon.cpp   |Brief system and user information displayed during logon((when SCFG->System->Toggles->Display Sys Info During Logon is set to "Yes")) | 
-|mailread      |readmail.cpp|Reading mail menu| +|''mailread''      |readmail.cpp|Reading mail menu| 
-|main          |default.src |Main section menu (the most commonly viewed menu)| +|''main''          |default.src |Main section menu (the most commonly viewed menu)| 
-|maincfg       |default.src |Main configuration menu| +|''maincfg''       |default.src |Main configuration menu| 
-|maininfo      |default.src |Main information menu| +|''maininfo''      |default.src |Main information menu| 
-|msgscan       |scansubs.cpp|Message reading/scanning menu| +|''msgscan''       |scansubs.cpp|Message reading/scanning menu| 
-|multchat      |chat.cpp    |Multinode chat menu| +|''multchat''      |chat.cpp    |Multinode chat menu| 
-|privchat      |chat.cpp    |Private node-to-node chat menu| +|''privchat''      |chat.cpp    |Private node-to-node chat menu| 
-|qwk           |qwk.cpp     |QWK Packet configuration and transfer menu| +|''qwk''           |qwk.cpp     |QWK Packet configuration and transfer menu| 
-|restrict      |useredit.cpp|Restriction flag descriptions for use within User Edit (sysop to modify)| +|''random*''       |logon.js    |Logon screen picked at random, e.g. ''random1'', ''random2'', ''random3'', etc. (see also ''logon//<n>//'')| 
-|sentmail      |readmail.cpp|Reading sent mail menu| +|''restrict''      |useredit.cpp|Restriction flag descriptions for use within User Edit (sysop to modify)| 
-|sysmailr      |readmail.cpp|Sysop additional commands while reading mail| +|''sentmail''      |readmail.cpp|Reading sent mail menu| 
-|sysmain       |default.src |Sysop additional commands for main section| +|''sysmailr''      |readmail.cpp|Sysop additional commands while reading mail| 
-|sysmscan      |readmsgs.cpp|Sysop additional commands while message reading/scanning| +|''sysmain''       |default.src |Sysop additional commands for main section| 
-|syssmail      |readmail.cpp|Sysop additional commands while reading sent mail| +|''sysmscan''      |readmsgs.cpp|Sysop additional commands while message reading/scanning| 
-|sysxfer       |default.src |Sysop additional commands for transfer section| +|''sysxfer''       |default.src |Sysop additional commands for transfer section| 
-|tempxfer      |tmp_xfer.cpp|Temporary directory commands menu| +|''tempxfer''      |tmp_xfer.cpp|Temporary directory commands menu| 
-|transfer      |default.src |File Transfer section menu| +|''transfer''      |default.src |File Transfer section menu| 
-|uedit         |useredit.cpp|User Edit menu| +|''userinfo''      |str.cpp     |User Information (statistics) screen | 
-|xfercfg       |default.src |File Transfer section configuration menu| +|''uedit''         |useredit.cpp|User Edit menu| 
-|xferinfo      |default.src |File Transfer section information menu|+|''xfercfg''       |default.src |File Transfer section configuration menu| 
 +|''xferinfo''      |default.src |File Transfer section information menu|
  
 ===== Optional ===== ===== Optional =====
Line 78: Line 81:
  
 ^Base filename ^Displayed By^Description^ ^Base filename ^Displayed By^Description^
-|batdprot      |str.cpp     |Batch download transfer protocols (displayed instead of dynamically generated list)| +|''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)| +|''batuprot''      |str.cpp     |Batch upload transfer protocols (displayed instead of dynamically generated list)| 
-|dlprot        |str.cpp     |Download 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)| +|''ulprot''        |str.cpp     |Upload transfer protocols (displayed instead of dynamically generated list)| 
-|download      |str.cpp |Displayed before the transfer protocol selection when downloading file from filebase (v3.20c)| +|''dirinfo''       |str.cpp     |Information about the current file directory | 
-|upload        |shell_lib.js | Displayed before the prompt for user-supplied filename to upload | +|''download''      |str.cpp |Displayed before the transfer protocol selection when downloading file from filebase (v3.20c)| 
-|fileinfo      |file.cpp    | Displayed when File Information is requested, in place of ''Fi*'' ''[[custom:text.dat]]'' strings (v3.20c)| +|''upload''        |shell_lib.js | Displayed before the prompt for user-supplied filename to upload | 
-|grps          |execmsg.cpp |Message Group listing (displayed instead of dynamically generated list)| +|''fileinfo''      |file.cpp    | Displayed when File Information is requested, in place of ''Fi*'' ''[[custom:text.dat]]'' strings (v3.20c)| 
-|subs//<x>//         |execmsg.cpp |Message Sub-board listing, //<x>// is the (one-based) group number| +|''grps''          |execmsg.cpp |Message Group listing (displayed instead of dynamically generated list)| 
-|libs          |execfile.cpp|File Library listing (displayed instead of dynamically generated list)| +|''subs//<x>//''   |execmsg.cpp |Message Sub-board listing, //<x>// is the (one-based) group number| 
-|msglist | msglist.js|Used by [[module:msglist|Message List]]| +|''libs''          |execfile.cpp|File Library listing (displayed instead of dynamically generated list)| 
-|msgview | msglist.js|Used by [[module:msglist|Message List]]| +|''logon//[n]//''  |logon.js    |Logon screen (logon1, logon2, logon3, etc. also supported), see also ''random*''
-|msgtabs       |writemsg.cpp|Internal message editor tab bar| +|''msglist''       | msglist.js|Used by [[module:msglist|Message List]]| 
-|dirs//<x>//         |execfile.cpp|File Directory listing, //<x>// is the (one-based) library number| +|''msgview''       | msglist.js|Used by [[module:msglist|Message List]]| 
-|xtrn_sec_head      |xtrn_sec.js |External Program Sections header| +|''msgtabs''       |writemsg.cpp|Internal message editor tab bar| 
-|xtrn_sec      |xtrn_sec.js |External Program Sections (displayed instead of dynamically generated list)| +|''dirs//<x>//''   |execfile.cpp|File Directory listing, //<x>// is the (one-based) library number| 
-|xtrn_sec_tail      |xtrn_sec.js |External Program Sections footer| +|''xtrn_sec_head''        |xtrn_sec.js |External Program Sections header| 
-|xtrn//<x>//_head    |xtrn_sec.js |External Program list header, //<x>// is the (one-based) section number| +|''xtrn_sec''             |xtrn_sec.js |External Program Sections (displayed instead of dynamically generated list)| 
-|xtrn//<code>//_head    |xtrn_sec.js |External Program list header, //<code>// is the section code| +|''xtrn_sec_tail''        |xtrn_sec.js |External Program Sections footer| 
-|xtrn_head | xtrn_sec.js | External Program list header (global)| +|''xtrn//<x>//_head''     |xtrn_sec.js |External Program list header, //<x>// is the (one-based) section number| 
-|xtrn//<x>//         |xtrn_sec.js |External Program listing, //<x>// is the (one-based) section number| +|''xtrn//<code>//_head''  |xtrn_sec.js |External Program list header, //<code>// is the section code| 
-|xtrn//<code>//         |xtrn_sec.js |External Program listing, //<code>// is the section code| +|''xtrn_head''            | xtrn_sec.js | External Program list header (global)| 
-|xtrn///<code>//|xtrn_sec.js|Message displayed just before executing the external program represented by //<code>//+|''xtrn//<x>//''          |xtrn_sec.js |External Program listing, //<x>// is the (one-based) section number| 
-|xtrn//<x>//_tail    |xtrn_sec.js |External Program list footer, //<x>// is the (one-based) section number| +|''xtrn//<code>//''       |xtrn_sec.js |External Program listing, //<code>// is the section code| 
-|xtrn//<code>//_tail    |xtrn_sec.js |External Program list footer, //<code>// is the section code| +|''xtrn///<code>//''      |xtrn_sec.js|Message displayed just before executing the external program represented by //<code>//
-|xtrn_tail | xtrn_sec.js | External Program list footer (global)| +|''xtrn//<x>//_tail''     |xtrn_sec.js |External Program list footer, //<x>// is the (one-based) section number| 
-|text_sec      |text_sec.cpp|Text File Section listing (displayed instead of dynamically generated list)| +|''xtrn//<code>//_tail''  |xtrn_sec.js |External Program list footer, //<code>// is the section code| 
-|text//<x>//         |text_sec.cpp|Text File listing, //<x>// is the (one-based) text file section number| +|''xtrn_tail''            | xtrn_sec.js | External Program list footer (global)| 
-|chan          |chat.cpp    |Multinode Chat Channels (displayed instead of dynamically generated list)| +|''sysinfo''       |str.cpp     |Displayed in place of the hard-coded strings (e.g. SiSysName) from ''[[custom:text.dat]]'' in response to user requests for System Information | 
-|tmessage      |default.src |Displays when the user enters the transfer section| +|''text_sec''      |text_sec.cpp|Text File Section listing (displayed instead of dynamically generated list)| 
-|tpolicy       |str.cpp     |File transfer policy (displayed instead of ''[[custom:text.dat]]'' strings: TransferPolicyHdr, TpUpload, TpDownload)| +|''text//<x>//''   |text_sec.cpp|Text File listing, //<x>// is the (one-based) text file section number| 
-|random//<x>//       |logon.js    |Random logon screen (e.g. ''random1''''random2'', ''random3'', etc.)|+|''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)| 
 +|''subinfo''       |str.cpp     |Information about the current message sub-board | 
 + 
 + 
 +===== Modifications ===== 
 +When modifying a stock display file from the ''[[dir:text]]'' directory (or its ''menu'' sub-directory)a sysop should first copy the file to the ''[[dir:mods]]/text[/menu]'' directory and modify that copy so that their modifications will **not** be overwritten (and thus lostby a future Synchronet update.
  
 ===== See Also ===== ===== See Also =====
Line 118: Line 128:
   * [[util:ANS2ASC]] utility   * [[util:ANS2ASC]] utility
   * [[resource:ANSI Editors]]   * [[resource:ANSI Editors]]
 +  * [[dir:text]] directory
 +  * [[dir:mods]] directory
  
-{{tag>}}+{{tag>menu ansi customiza}}