home *** CD-ROM | disk | FTP | other *** search
/ Gold Fish 3 / goldfish_volume_3.bin / files / comm / bbs / 4d-bbsdemo / docs / text / 08.menu_commands < prev    next >
Encoding:
Text File  |  1993-12-28  |  27.2 KB  |  805 lines

  1. Chapter 8:  Menus and Menu Commands
  2.  
  3.  
  4.  
  5.  
  6. 8.1 Overview
  7.  
  8.     The menus are the heart of the BBS.  They direct the user around the
  9. BBS and act as a guide.  Whether the menus are simple and plain, or
  10. complicated and fancy, the SysOp has complete control over every aspect of
  11. the menus.  This is a powerful feature enabling the SysOp to personalize
  12. and create a BBS which is very unique.
  13.  
  14. 8.2.1 Menu Formats
  15.  
  16.     All menu files are plain ASCII files located in the MENU:  directory.
  17. Editing and creating menus should be done with a text editor of your
  18. choice.
  19.  
  20.     The first line of the menu file should be the help file for the menu.
  21. This filename is appended either as .ASCII or .ANSI automatically by the
  22. BBS, depending on the on-line user's mode.
  23.  
  24.     The second line is the prompt for the menu.  This can include EIC
  25. codes and color codes.  If color codes are encountered and the user is in
  26. ASCII mode, they will simply be ignored.  There is a maximum of 80
  27. characters.
  28.  
  29.     The third line is the type of entry for the menu as listed below.
  30.  
  31.     TYPE DESCRIPTION
  32.  
  33.     0 Hotkey:  User enters one character without entering return.
  34.  
  35.     #>0 User can enter UP TO # characters, and must press Return at end
  36. (i.e.  10 means the user can enter up to 10 characters.)
  37.  
  38.      # The number sign means that a user can enter one character without
  39. having to press Return or enter up to a 3 digit number and must press
  40. return.  This is most often used in a menu to allow the user to enter
  41. hotkeys, and full numbers (i.e.  in a message base menu to change sections.
  42.  
  43.     -1 No user entry for this menu, and the first command will be executed
  44. automatically, irrelevant of the keypress code.  If the following commands
  45. also have the same keypress, they will be executed also.  This mode is
  46. designed for Command Menus.(Refer to section 8.4.1)
  47.  
  48.     From the fourth line on, each line represents one function.
  49. Everything on the line before the ":" represents the keypress for that
  50. function, everything on the right side of the colon is assumed to be the
  51. command.  The command can be split up into 1 to 4 parts separated by
  52. spaces.
  53.  
  54.     If a keystroke has more characters than allotted in line three, the
  55. function WILL NOT be accessible by the user.  Multiple lines CAN HAVE the
  56. same keystroke, in which case all lines will be executed BUT they must ALL
  57. be consecutive lines in the menu file.
  58.  
  59.     An example line would be:
  60.  
  61.     p:p p 0
  62.  
  63.     This means the keystroke is a single "p", and the command is ":p" with
  64. parameters of "p 0".  An example of multiple lines would be:
  65.  
  66.     o:2 TEXT:LOGOFF.TXT
  67.     o:0 q
  68.  
  69.     This would display the file "TEXT:LOGOFF.TXT" to the user, then do a
  70. quick logoff.  The following would NOT execute the third line:
  71.  
  72.     o:2 TEXT:LOGOFF.TXT
  73.     o:2 TEXT:LEAVE.TXT
  74.     p:p p 0
  75.     o:0 q
  76.  
  77.     In this example, the BBS would execute the first two commands, but
  78. upon seeing that "p" (line 4) is different from the "o" (line 2) the BBS
  79. would return to the prompt, and NOT execute the fourth line.
  80.  
  81. 8.2.1 Layouts
  82.  
  83.     4D-BBS uses menu locks to control user access to menus.  These menu
  84. locks can be unique to each user, and are system specific.  When designing
  85. your menus, it is best to first list all menus which you will be using, and
  86. give a unique lock to each menu.  If some menus are similar in function,
  87. you can give the same lock to them to cut down on the number of menu locks
  88. used.  (Refer to section 8.5.1 for more information.)
  89.  
  90.     There are two types of menu layouts which can be used.  The first is a
  91. hierachy method which means a menu is called, and when finished, the
  92. calling menu regains control.  You can stack menus in this method up to 16
  93. times, so keep this in mind when designing your menus.
  94.  
  95.     The second method is a basic goto or jump.  In this method, the
  96. calling menu is NOT remembered.  This is ideal if you wish to setup a maze
  97. or theme type, BBS since menus do not have to be remembered.
  98.  
  99.     Below are two examples of menus:
  100.  
  101.                                      Main Menu
  102.                     _____________|___________________
  103.                    |                          |                                       |
  104.         Message Bases      File Transfers                 Game Room
  105.                    |
  106.         Electronic Mail
  107.  
  108.     In the above setting, a user starts out at the Main Menu, and can go
  109. to one of the 3 menus.  If they choose the Message Bases, they can not go
  110. into the Game Room unless they exit the Message Bases and go back to the
  111. Main Menu.  If they are in the File Transfers, and want to go to Electronic
  112. Mail, they must go to the Main Menu, then the Message Bases, then finally
  113. to Electronic Mail.
  114.  
  115.  
  116.                       +-  Main Menu     -+
  117.                      /        |           \
  118.       Message Bases +---------+------------+-  Game Room
  119.         |            \        |           /
  120.       E-Mail          +- File Transfers -+
  121.  
  122.     In the above example, a user can jump from any section they wish to,
  123. EXCEPT for the E-Mail section.  To go to or from the E-Mail section, they
  124. must go through the Message Bases.
  125.  
  126.     Remember the above are ONLY examples, and the SysOp can setup the BBS
  127. using one of them, a combination, or design their own layout.
  128.  
  129. 8.2.2 Menu Move Commands
  130.  
  131.     The "0" and "1" menu command cover most basic menu move operations.
  132. They are as follows:
  133.  
  134.     COMMAND DESCRIPTION
  135.  
  136.     0 e Exits the current menu, and returns to the calling menu.  Can only
  137. be used if the calling menu used the "1" command.
  138.  
  139.     0 M Returns to the main menu and clears all hierarchy stacks.
  140.  
  141.     0 * NAME Enters a new menu WITHOUT saving the previous menu.  The "*"
  142. is the lock for the new menu.  The new menu does NOT know who the calling
  143. menu was.
  144.  
  145.     1 * Name Enter a name menu saving the previous menu.  The "*" is the
  146. lock for the new menu.  The new menu DOES know who the calling menu is and
  147. can use the "0 e" command to return to the calling menu.
  148.  
  149.     The two basic commands for moving between menus can be mixed, as in
  150. the second example of section 8.2.1, but caution should be exercised when
  151. doing so.  A loop like this can cause stack limit problems:
  152.  
  153.          Menu --+
  154.           |     |
  155.       Sub-Menu  |
  156.           |     |
  157.      Sub-Menu2 -+
  158.  
  159.     If a jump was used to go from Sub-Menu2 back to Menu, the stack would
  160. not be cleared.  Doing this too many times would bring upon a maximum
  161. sub-menus encountered error to the user.
  162.  
  163.  
  164.  
  165. 8.3 Menu Commands
  166.  
  167.     When a user presses a menu key the BBS will scan the menu file to see
  168. if any matching keypresses are found.  If none are found and the menu is in
  169. Hotkey mode, nothing will happen and the BBS will accept another character.
  170. If the menu is multi-character input and the BBS does not find a match, it
  171. will display "Unknown menu function" and redisplay the prompt.
  172.  
  173.     If the BBS does find a match, it will execute the command after the
  174. ":" in the line, and then check if the next line is the same.  If it is,
  175. then that line will also be executed and this cycle is continued until
  176. either a match is not found or the last command is executed.
  177.  
  178.     Once a command is finished the BBS displays the prompt again and
  179. starts this process over again.  If the command which was executed goes to
  180. another menu, this process is continued on THAT menu.  If the command logs
  181. the user off, the process stops.
  182.  
  183. 8.4 Types of Menus
  184.  
  185.     Currently there are 4 types of menus which you can setup.  These are:
  186. Command, Personal, Access, Global and Default Menus.
  187.  
  188. 8.4.1 Command Menus
  189.  
  190.     A Command Menu is a menu that directly executes the first command
  191. without displaying the logon/stats screen or bulletins.  An example of
  192. using this type of menu would be if you wanted to spawn a serial based
  193. program when a certain account logged on.  UUCP's UUCICO could be used this
  194. way.
  195.  
  196.     The format for this type of menu is the "Cmd." plus the account name
  197. plus ".menu".  So, if you were running UUCP, and your feeds logon account
  198. was called UUCP, you would make a menu called "Cmd.UUCP.Menu", which is a
  199. normal menu with the first command as "a:4 UUCICO" and the second command
  200. as "a:q".  Although the keypress for the commands are irrelevant, they MUST
  201. be the same.
  202.  
  203. 8.4.2 Personal Menus
  204.  
  205.     A Personal Menu is the same as a main menu, except it is used INSTEAD
  206. of the Default, Access or Main Menu.  This allows you to give a different
  207. menu set to a certain user.  The filename is comprised of putting the
  208. user's names between "main." and ".menu" (i.e.:  "Main.John_doe.Menu").
  209.  
  210.     The difference between a Command menu and a Personal menu is that a
  211. Personal menu will display the logon/stats screens and check for new
  212. bulletins.
  213.  
  214. 8.4.3 Access Menus
  215.  
  216.     You can create a different MAIN menu for each access group.  These
  217. replace the default main.menu, and are only used if found.  The filename
  218. format of these menus are MAIN.[ACCESS GROUP].Menu.  Valid filenames are:
  219.  
  220.     Main.NoAccess.Menu
  221.     Main.NewUsers.Menu
  222.     Main.Members.Menu
  223.     Main.Sysop.Menu.
  224.  
  225. 8.4.4 Default Menus
  226.  
  227.     If none of the menu commands listed in sections 8.4.1 through 8.4.3
  228. are found, then the Default menu ("Main.Menu") will be used.
  229.  
  230. 8.4.5 Global Menus
  231.  
  232.     If all of your menus have one same function, instead of having to
  233. define it for every menu, you could define it only once by entering it into
  234. "global.menu"!  Below is an example:
  235.  
  236.     !:0 H ; Logs off
  237.     X:A ; Toggle the expert mode
  238.     A:B ; Toggle the ANSI mode
  239.     =:0 M ; Returns to the main menu
  240.  
  241.     The 4 functions defined above would work in ALL menus on the system.
  242.  
  243.     The format of "global.menu" is just like a regular menu but without
  244. the first three lines.  In other words, no display file, no prompt or input
  245. type lines.
  246.  
  247.     Note that if there is already a keystroke defined in a regular menu,
  248. the function associated with that keystroke will override the one defined
  249. in the file "global.menu." For example, if the key "!" is set in
  250. "global.menu" to log off the user, but in the current menu it is defined to
  251. read mail, if the user hits "!" they would read mail instead of being
  252. logged off.
  253.  
  254. 8.5 Function Locks
  255.  
  256.     Any function in 4D-BBS can be "locked" from a user.  For example, if a
  257. user has a lock of "T", this means that the user can not use function "T"
  258. (the file downloading function).  If a user has a lock string of "tuvwxyz",
  259. then the user can not use the following functions:  "T", "U", "V", "W",
  260. "X", "Y", and "Z".
  261.  
  262. 8.5.1 Menu Locks
  263.  
  264.     It is also possible to lock a user from a menu.  The menu functions (0
  265. and 1) have a parameter which determine which locks the menu uses.  Those
  266. lock characters are ", !, @, #, $, %, ^, &, *, (, and )".  If a menu uses a
  267. lock of "$", and a user has that lock in his lock string, then he will not
  268. be able to enter that menu.  Example:  "f:1 $ file.menu".  If a menu uses
  269. "^", and the user doesn't have that in his lock string, then he WILL be
  270. able to enter that menu.
  271.  
  272. 8.6 An Example Menu
  273.  
  274.     Below is an example of a Menu File, called "main.menu":
  275.  
  276.     mainmenu.txt
  277.     MAIN MENU:
  278.     0
  279.     ?:0 ?
  280.     o:1 !  off.menu
  281.     z:0 q
  282.     m:1 % base.menu
  283.     d:1 $ file.menu
  284.     y:3 echo "^GChat requested!!!"
  285.     u:5 a 0
  286.     w:5 s 0
  287.     l:6
  288.     e:7
  289.     x:a
  290.     j:q
  291.     v:v
  292.     f:1 % feed.menu
  293.     r:m r 0
  294.     s:m s 0
  295.     !:m m 0
  296.     g:j 0 0
  297.     a:d a
  298.     b:d s
  299.     p:b
  300.     {:1 ^ sysop.menu
  301.  
  302.     The first line of the above example is the name to use for the display
  303. file.  There are two versions of the display file, one with the extension
  304. ".ansi" for the ANSI version, and one with the extension ".ascii" for the
  305. ASCII version.  For the above example, there would be two files called
  306. "mainmenu.txt.ansi" and "mainmenu.txt.ascii".
  307.  
  308.     The second line contains a string (up to 80 characters long) that will
  309. be used as the menu prompt.  It may contain ANSI sequences or embedded
  310. codes.  The third is the input type.  A "0" here in this example indicates
  311. hotkeys.  The rest is the actual menu.  The keys before the ":" will
  312. execute the function listed after ":".
  313.  
  314. 8.7 Menu Functions
  315.  
  316.     Functions listed in a Menu File must follow a strict format.  This
  317. format is as follows:  the first character of a line is the keypress or
  318. word (depending on the third line #) that you want to represent that
  319. function.  The second character is a delimiter and can be anything except a
  320. RETURN.  The above example uses a":" for this.  The third character in a
  321. line is the actual function call itself.  The available functions are
  322. listed below.
  323.  
  324.     Some functions require 1 or 2 parameters.  Each parameter must be
  325. separated by at least a space.  A few functions require a string as the
  326. parameter, this is anything immediately after the function and a space, and
  327. ended by a Return.
  328.  
  329.     NOTE:  If you plan on using a control character like Ctrl-M (Enter
  330. key) for your hotkey identifier (i.e.  if user presses enter, Ctrl-M, your
  331. menu option could be "^M:0 ?" to show the menu again).  You need to place
  332. this someplace HALFWAY in your menu.  If you have this command at the end
  333. of your menu you may get a menu read error warning.  This is not critical
  334. and will not happen if it's in the middle of your commands list.
  335.  
  336.     Here is a list of all available 4D-BBS functions and a description of
  337. each:
  338.  
  339.     FUNCTION DESCRIPTION
  340.  
  341.     0 ?  $ This function requires one of the following parameters:
  342.  
  343.             H Send the "logoff.txt" file and then hang up.
  344.  
  345.             Q QUICK LOGOFF and DO NOT send the "logoff.txt" message.
  346.  
  347.             E Exit to the menu which called this menu.  If this is
  348. placed in the main menu, or no menu called the current menu, the effect is
  349. the same as the "Q" option.
  350.  
  351.             ?  Display the help file pointed to by the first line of the
  352. menu.
  353.  
  354.             M Return to the main menu from anywhere in the menu system
  355. and clear the list of menus.
  356.  
  357. If the secondary parameter is a menu lock (refer to section 8.5.1 for
  358. parameters), followed by the name of a menu, the BBS will call up a new
  359. menu WITHOUT saving the current menu.  Please use this with caution,
  360. because if the function "0 E" was executed from such a menu, it would have
  361. unpredictable results.  (See function "1" for more information.)
  362.  
  363. Examples:
  364.  
  365. "g:0 h" ; log off normally with the "g" key "z:0 q" ; Instant logoff "?:0
  366. ?" ; Show the current menu "=:0 M" ; Return to the main menu "t:0 %
  367. new.main" ; Jump to new menu
  368.  
  369.     1 ?  $ This function forces the BBS to call up a new menu file.  The
  370. previous menu is saved, so when the user exits the new menu the user will
  371. be returned to the previous menu.
  372.  
  373. A menu lock parameter is given to prevent some users from accessing this
  374. menu.  (See Section 6.3 for more information on locks.)
  375.  
  376. The second parameter is the name of the new menu which will be called from
  377. the MENU:  directory.
  378.  
  379. Examples:
  380.  
  381. "f:1 ^ file.menu" ; Load and use file.menu "m:1 & mbases" ; Load and use
  382. mbases
  383.  
  384.     2 $ Sends a text file with page breaks.  The parameter here is the
  385. name of the file to be sent.  You need to use the file's full path name
  386. here.  If a "0" is given instead, the user will be prompted for the name of
  387. a file.  It's a good idea to keep this use of the "0" out of most users'
  388. reach, since you may not want them to "spy" everything on your disks.  This
  389. is intended mostly for SysOps' use.
  390.  
  391.  
  392. For example:
  393.  
  394.         "t:2 TEXT:readme.doc"
  395.  
  396.     3 $ Pages the SysOp for chat.  If a command is given after the 3 it
  397. will execute this command.  This command can be used to alert the SysOp of
  398. a chat request, including audio or visual notifications.  However, if the
  399. SysOp is not available for chatting, this command won't be executed,
  400. instead the user will get a message stating that the SysOp isn't available
  401. for chatting.  If the string parameter has been left out, nothing will
  402. happen except that the status window will state that the user has requested
  403. a chat.
  404.  
  405.  
  406.     4 $ Executes an external DOS command.  It requires a string containing
  407. a DOS command as its parameter.
  408.  
  409. Example:
  410.  
  411.             "e:4 dh0:term/term"
  412.  
  413. The above example will cause the BBS to execute the DOS command
  414. "dh0:jrcomm/jrcomm" just as if it were typed from the CLI.  The BBS will
  415. remain dormant until the execution of this command is complete, unless it's
  416. pointed to the "NIL:".  (Note:  if the parameter is "0", the user will be
  417. prompted to enter a DOS command.)
  418.  
  419.     5 ?  $ Shows the user list.
  420.  
  421.             A Show entire user list.
  422.  
  423.             S Prompt user for a search string.  This string will be
  424. checked with each entry in the user list, if a match is found that entry
  425. will be shown.
  426.  
  427.         W Prompt user for a user name.  The profile of that user (name,
  428. phone number, interests, etc.) will be displayed.  (Note:  It will not be
  429. display users who have their data set as private.)
  430.  
  431. This function requires a second parameter, which is either a "0" (which
  432. will prompt the user to enter a string) or a string.  If the string is
  433. used, only entries consisting of that string will be used.
  434.  
  435. Examples:
  436.  
  437.     "s:5 s 0" ; Allows you to enter the string "s:5 s WA" ; Automatically
  438. search for "WA" "s:5 w Sysop" ; Displays profile of "Sysop" "u:5 A" ;
  439. Complete user list No "0"
  440.  
  441.     6 This function will show the daily user log.  No parameters needed.
  442. Example:  "1:6".
  443.  
  444.     7 Activates the User Editor to allow user to modify his own personal
  445. data.  Not to be confused with the SysOp User Editor accessible from the
  446. waiting screen.  No parameters needed here.
  447.  
  448. Example:
  449.  
  450. "e:7" ; Edit a users stats
  451.  
  452.  
  453.     8 Shows the current time and date.
  454.  
  455.             Example:
  456.  
  457.             "t:8" ; Show the current time and date
  458.  
  459.     9 Displays the bulletins.  Bulletins are automatically displayed upon
  460. each user's login, but this function is provided here in case the user
  461. wishes to see the bulletins again.  No parameters needed.
  462.  
  463. Example:
  464.  
  465. "b:9" ; Show the bulletins
  466.  
  467.     A Toggles a user's EXPERT mode either ON or OFF.  No parameters used.
  468.  
  469. Example:
  470.  
  471. "x:a" ; Xpert menu toggle
  472.  
  473.     B Toggles the ANSI mode.  If a user has the ANSI mode toggled to OFF,
  474. all ANSI color codes will be filtered out and the altername ".ASCII" menus
  475. will be shown.  No parameters needed.
  476.  
  477. Example:
  478.  
  479. "a:b" ; Toggle ansi filter on/off
  480.  
  481.     C ?  $ With only one other parameter which does not fall into one of
  482. the below categories, this function executes a Paragon compatible door from
  483. the "DOORS:" directory.  It takes a string, the path and name of the door
  484. relative to the "DOORS:" directory, as its parameter.  (Refer to Chapter 10
  485. for more information on Ddoor, ARexx and FIFO information.)
  486.  
  487.             P Execute a Paragon Compatible door program.  The command
  488. following the "P" will be run relative to the "DOORS:" directory.  This is
  489. exactly the same as if only one parameter is given as stated above.
  490.  
  491.             A Execute an ARexx script.  The command following the "A"
  492. can include spaces and EIC codes.  The command path must be a full path and
  493. will be parsed for any EICs.  Then it is sent to DOS with the "RX Command"
  494. notation.  The BBS will go into a server mode waiting for ARexx commands
  495. until the script instructs to quit.
  496.  
  497.             F Execute a DOS/CLI command with redirected input and
  498. output.  The command following the "F" will be executed as a DOS command,
  499. with its input and output controlled by the BBS.  Like the ARexx command
  500. above, this command must also be given in a full path.  In the special case
  501. of the command being "4D-SHELL", the BBS will spawn a shell as if the user
  502. had typed "newshell" at a CLI prompt.  To exit this special mode, type
  503. "ENDCLI" as you would do to exit any normal shell.
  504.  
  505.     "a:c adv/adv" ; Run a game called "adv"
  506.     "a:c p adv/adv ; Same as above command
  507.     "w:c A rexx:4DWhosOn.rexx" ; Runs ARexx script
  508.     "d:c F dir dh0:" ; Directory of Dh0:
  509.     "s:c F 4D-SHELL" ; Spawn a Shell from BBS
  510.  
  511.     D ?  This function deals with the online BBS listing.
  512.  
  513.             A Add a BBS entry to the BBS list.
  514.  
  515.             S Show entire BBS list.
  516.     
  517. Examples:
  518.  
  519.     "s:d s" ; Show the BBS list
  520.     "a:d a" ; Add a new entry to the list
  521.  
  522.     E $ Displays a line of text.
  523.  
  524.             Example:
  525.  
  526. "z:e Hiya world!" ; Displays "Hiya world!"
  527.  
  528.     f $ Allows you to edit a text file using the built-in text editor.  It
  529. is a very good idea to keep this function out of your normal users' reach.
  530. This function is intended mostly for SysOps' use in case they log on their
  531. BBS remotely and need to edit or create a file.  For example:
  532.  
  533. "e:f 0" ; Prompts the user for filename "e:f text:junk.txt" ; Edits the
  534. file named "text:junk.txt"
  535.  
  536.     G $ A logging function that you can put anywhere in a menu function.
  537. It adds a user's name and time to the file.
  538.  
  539. For example:
  540.  
  541. "C:G text:log.txt" "C:1 % new.menu"
  542.  
  543. In the above example, each user who goes to the menu "new.menu" will be
  544. recorded in the file "log.txt".  (NOTE:  this file can get BIG if updated
  545. many times, so be sure to delete it periodically.)
  546.  
  547.     H $ Prompts the user for a password.  The string parameter is the
  548. actual password.  If the password that the user types in does not match
  549. this, the BBS will skip all the subsequent functions associated with that
  550. keystroke.  The password is case insensitive.  For example:
  551.  
  552. "x:h EXOTIC" ; Prompts the user for password "x:1 % adult.menu" ; If the
  553. password is correct then user goes to this menu
  554.  
  555.     I # Allows you to change the current file library.
  556.  
  557.     G The current section will become "ALL".  This is good for a search of
  558. all file transfer sections instead of only the current file transfer
  559. section.
  560.  
  561. If any other number from 0 to 99 is given, the current file library is
  562. changed to that number.
  563.  
  564. Note:  In the special case of the "##:" keypress explained in section
  565. 3.3.x, you do NOT put a parameter after the "I".  The BBS itself will
  566. append a space and the number the user entered.  This alleviates you from
  567. having to put in a menu command for every section you want to use with this
  568. command.  Remember, in order for this to work the menu type for this
  569. command MUST be a "#" (the third line of the menu file).
  570.  
  571. Examples:
  572.  
  573. "a:i G" ; Now in "ALL" "12:i 12" ; change to sub 12 "##:i" ; Change to sub
  574. number user entered
  575.  
  576.     J Starts a "Global Q-Scan" of non-masked message sub-boards.  No
  577. parameters needed.
  578.  
  579. Example:
  580.  
  581. "g:j" ; Will global scan ALL bases
  582.  
  583.     K Changes the current message sub-board.  It works just like the
  584. function "I".  However the "G" parameter will not work in this function.
  585. The special case of the "##:" keypress is also valid for this command.
  586.  
  587.     L Shows a listing of all available message sub-boards.  If a parameter
  588. of "0" is given, then the entire list will be shown.  If a number of 1 to
  589. 99 is given, then ONLY that sub-board will be listed.
  590.  
  591. Examples:
  592.     
  593. "l:l 0" ; list all subs "l:l 23" ; list only sub 23
  594.  
  595.     M ?  $ Electronic-Mail function.  These functions are ONLY maintained
  596. for compatibility with earlier versions of 4D-BBS.  E-Mail should be sent
  597. on sub-board 0.
  598.  
  599.     S SEND mail to a user.  If the string is "0" the user will be prompted
  600. for the name of the recipient.
  601.  
  602.     R READ a user's mail.  If the second parameter is "0" then the user
  603. will be prompted to enter the name of the user who's mail they wish to
  604. read.  Otherwise, the name given as the string parameter will be used.
  605. Note:  A user with SysOp status is able to read any user's E-Mail.
  606.  
  607. If a name is given in the string parameter of the READ mail function, the
  608. user will be able to READ another user's private E-Mail.  Therefore it is
  609. suggested that this feature not be accessible to the general user.
  610.  
  611.     S SEND mail to the SysOp.  This is the same as the ":m s" function,
  612. except the recipient is the predefined SysOp account.  This is commonly
  613. called Feedback.
  614.  
  615. Examples:
  616.  
  617. "s:m s 0" ; Send mail, prompt for name "s:m s John Doe" ; Send mail to John
  618. Doe "r:m r 0" ; Read Some else's Mail "r:m r John Doe" ; Read E-mail to
  619. John Doe
  620.  
  621.     N # Displays the file catalog.  If the current file section is global
  622. or all, then all files in all sections can be shown.
  623.  
  624.             0 Prompt user for a search string.  The BBS will then show
  625. only files which have filenames or file descriptions that contain a match
  626. to the given search string.
  627.  
  628.     1 Show all files in the current category shown.
  629.  
  630.     2 Show all files that have been uploaded since the user's last call.
  631.  
  632. Examples:
  633.  
  634. "l:n 0" ; List whole file catalog "l:n 1" ; Prompt for keyword "l:n 2" ;
  635. List new files
  636.  
  637.     O Displays all the available file sub-directories.  No parameters
  638. needed.
  639.  
  640. Example:
  641.  
  642. "l:o" ; List subs
  643.  
  644.     P ?  # Allows you to post, read and scan messages.
  645.  
  646. P POST a message.
  647.  
  648. R READ messages.
  649.  
  650. S SCAN messages.
  651.  
  652. A second parameter is required for all of the above listed first
  653. parameters.  Normally, "0" is used for the current message board.  But if a
  654. number from 1 to 99 is given then the function will be performed on the
  655. board of that number only.  Note:  A "P" may be given to have the function
  656. performed on the mail sub-board, 0.
  657.  
  658. Examples:
  659.  
  660. "p:p p 0" ; Post on current sub.  "r:p r 0" ; Read on current sub.  "r:p r
  661. 23" ; Read on sub 23 only.  "s:p s 3" ; Scan sub 3.  "s:p s 0" ; Scan the
  662. current sub.
  663.  
  664.     Q Invokes the MACRO editor.  No parameters needed.
  665.  
  666. Example:
  667.  
  668. "m:q" ; Edit your macros.
  669.  
  670.     R ?  Allows the user to mask out any message sub-board or file library
  671. from the Global Q-Scan.
  672.  
  673. M Message Base sub-boards mask editor.
  674.  
  675. F File Transfer sections mask editor.
  676.  
  677. If no parameter is given the user will be prompted for one.
  678.  
  679. Example:
  680.  
  681. "y:r f" ; Files mask editor.  "m:r" ; Prompt.
  682.  
  683.     T # $ Allows a user to DOWNLOAD a file.
  684.  
  685. 1 XMODEM protocol will be used.
  686.  
  687. 2 YMODEM protocol will be used.
  688.  
  689. 3 ZMODEM protocol will be used.
  690.  
  691. 0 Prompts the user for which protocol they would
  692.     like to use.
  693.  
  694.     This function requires a second parameter.  If the second parameter is
  695. a "0", the user will be prompted to enter one or more filenames, which
  696. should be available in the current file library.  On the other hand, if the
  697. parameter is a filename (can be any path name on any device, it does not
  698. need to be in the file libraries, that file will be downloaded.
  699.  
  700.     Examples:
  701.  
  702.     "d:t 3 0" ; Download using zmodem
  703.     "d:t 2 file:demo.arc" ; Download with ymodem, demo.arc
  704.     "d:t 0 0" ; Prompts user for protocol
  705.  
  706.     U This function will allow a user to UPLOAD a file to the current file
  707. library.  This function works exactly the same as the T function mentioned
  708. above (except that the ASCII protocol isn't supported).
  709.  
  710. 1 XMODEM protocol will be used.
  711.  
  712. 2 YMODEM protocol will be used.
  713.  
  714. 3 ZMODEM protocol will be used.
  715.  
  716. 0 Prompts the user for which protocol they would
  717.     like to use.
  718.  
  719.     V This has to do with the users ability to Mark, View, and Clear file
  720. lists.  It needs to have a second parameter.
  721.  
  722.     A Add a name to the mark list.
  723.  
  724.     C Mark list will be cleared.  "C" alone will ask the user what to
  725. clear.  "V C A" will clear all marked files without querying the user.
  726.  
  727.     G User is prompted for filenames to mark.
  728.  
  729.     L Mark names will be listed.
  730.  
  731.     D User is prompted to enter the descriptions for files which they
  732. uploaded, but did not give a description for when they uploaded.
  733.  
  734.     Examples:
  735.  
  736. "c:v c" ;Clear "h:v l" ;List "y:v a" ;Prompt for name "f:v g" ;Prompt for
  737. LOTS of names "d:v d" ;Prompt for descriptions
  738.  
  739.     W File Catalog Editor
  740.  
  741. Example:
  742.  
  743. "f:w"
  744.  
  745.     X User Editor.  No parameters needed.
  746.  
  747. Example:
  748.  
  749. "u:x" ; Edit a user
  750.  
  751.     Y Allows you to edit system defaults.  If you give a second parameter,
  752. you may enter many editors.  If there is no second parameter you will be
  753. prompted for which editor you wish to run.
  754.  
  755.  
  756. B Message Base Editor.
  757.  
  758. F File Catalog Editor.
  759.  
  760. S System Configuration Editor.
  761.  
  762. U User Defaults Editor.
  763.  
  764. Example:
  765.  
  766. "s:y" ; Prompts for editor "d:y b" ; Enter the Message Base Editor
  767.  
  768.     Z BULLETINS editor.  No parameters needed.
  769.  
  770. Example:
  771.  
  772. "b:z" ;Edit the bulletin information.
  773.  
  774.     !  ?  $ Allows the loading of alternate data files.  If a second
  775. parameter is not given, the default filename will be used.  Otherwise the
  776. second parameter is assumed to be the filename of the alternate data file
  777. to load.
  778.  
  779. B Message Bases Data.
  780.  
  781. D Paths File (like the "-D" CLP switch).
  782.  
  783. F File Transfers Data.
  784.  
  785. G Global.Menu File.
  786.  
  787. S System Data.
  788.  
  789. U User Defaults.
  790.  
  791. W Def_Say.t File.
  792.  
  793. Example:
  794.  
  795. "f:!  w BBS:Startrek.t" ;load the new strings "f:!  d BBS:Startrek.paths"
  796. ;load new paths "g:!  g" ;load global menu
  797.  
  798. If you changed the global menu or ANY data file and would like the BBS to
  799. recognize the change immediately, you can use these menu commands and the
  800. pull-down menus to do this.
  801.  
  802.     @ This will toggle the QuickListing status from quick to long
  803. descriptions in the file transfer area.  (See the "L" menu function.)
  804.  
  805.