"100+ Auto-Installing Software Titles For Your Web Site"

Sunday, June 13, 2021

Adds and retrives users' threaded posts. All the text that is to be displayed on the main page is saved in the main (bbm.dat) database file. Multiple forums (bulletin boards) can be run from one script, by using a separate directory for each set of datafiles.

If users' browser supports 'frames', the script will create the main window and a bottom window to display full text of a thread, refered to as 'full' screen and 'split' screen. Users can switch between full/split if frames-capable browser.

The first post on a subject is called the 'subject' post, and followups are called 'comment' posts. The subject and all attached comments are called a 'thread'. Each subject is numbered sequentially as it is created by reading the count (bbm.cnt) file.

You can set limits for size of post and size of post displayed on the main page. If text exceeds maximum length, a separate subject file (bbmNNN.txt) is created for the extra text in the thread, where NNN is the subject number.

Each line in 'bbm.dat' is a pipe (|) delimited record with 8 fields:

0. Subject number
1. Item line number (where '0' is the subject post, and '1' thru 'n' are the comment posts in the thread.
2. Subject name (if subject post or Mail flag (if comment post)
3. Name
4. Email address
5. Posting date
6. Text to display on the main page.
7. End-of-line

The subject files are also in database format with one record per line containing the excess text. The line number corresponds to the 'item line number' in 'bbm.dat'.

E-Mail is sent to all users in a thread when a followup is posted, unless they uncheck the "Alert me.." box when they submit a comment.

The manager module (bbman.pl) removes subjects and/or comments. Removing by AGE deletes subjects and attached comments which have not been active for a selectable time period from 1 to 12 months. If extra text files exist for the subjects being removed, they are deleted also.

Removing by NUMBER produces a list of all subjects and comments with checkboxes. If a subject is selected, the subject and its attached comments are deleted. If a comment is selected, only that comment is deleted.

Posts removed by AGE are added to an archive file (bbmold.dat) which is sorted in descending (newest at top) chronological order. Currently the script doesn't provide for viewing the archive file, but that enhancement will be added in the future.

Example: Assume a new subject was posted on June 1, and followups were added on June 2, June 4 and July 26. Today is September 25 and the manager selects '2' months from the menu. None of the posts would be removed because the most recent activity was LESS than 2 months ago.

BBMATIC uses the Perl 'flock' function to prevent simultaneous changes (corruption) of data files.


BBMatic BBS automatically installs on your web site in seconds Or, follow the below instructions to install manually.


For each forum, make a copy of 'bbmtemp.htm', 'bbm.dat', 'bbm.cfg', 'bbm.cnt', 'bbm.flk' and 'bbmold.dat'. Be careful not to overwrite them.! Place them in separate directories or use temporary names until you upload them.

Edit each 'bbm.cfg' file using the included sample file for guidance. Line 1 is the TITLE of the forum used in the tag. Line 2 is the tag to be used on forum pages. Line 3 is the TITLE of the forum shown at the top of each page. Save the file.

Edit each copy of 'bbmtemp.html'. The script needs to find the special comment lines that look something like <!-- BBMATIC BLAH BLAH BLAH --> so be sure not to change or delete them. Otherwise you can add any HTML text or graphics to the page. You can even leave it just like it is! Open 'bbmhelp.htm' in a text/html editor and make any changes desired. When you upload these files in step 3, change the extension 'htm' to 'html'.


Open the main script file 'bbmat.cgi' in a text editor and change the sample paths in the "CONFIGURE THE SCRIPT" section, following the instructions found there.


The .gif's must be uploaded as BINARY files. All others are ASCII.

Place 'bbmat.cgi' (755) and 'bbman.pl' (644) into your cgi directory.

Create a directory named 'bbmat' (755). Place 'bbadd.gif' (644), 'bbmore.gif' (644), 'pin-pur.gif' (644), 'bbmhelp.html' (644), 'bbmbot.html' (644) and 'bbmat.pwd' (666) into the 'bbmat' directory.

Create a directory (777) for each forum using the directory paths and names you specified in 'bbmat.cgi' for the %Script variable. You may want to make these subdirectories of the 'bbmat' directory such as:

/bbmat/recipe/ and /bbmat/decapitation/

Place each set of 'bbm.dat' (666), 'bbm.cfg' (644), 'bbm.cnt' (666), 'bbm.flk' (666), 'bbmtemp.html' (644) and 'bbmold.dat' (666) into the corresponding directory. These directories MUST be world-writeable!

If you enable the back-up option, create an empty directory named 'bak' (777) which can be shared with my other scripts that make back-up files. This directory MUST be world-writeable!


To run the main script from the web, enter the URL of the script itself. This will cause the main page to load in the browser, using the default forum database.

Example - http://www.your-server.com/cgi-bin/bbmat.cgi

If you have configured BBMATIC to use multiple forums, you must append a 'query-string' to the URL. For example, in the %HeadTitle variable, if you used 'recipe' as the keyword for a forum, then using 'script=recipe' as the query-string starts the script with that forum.

Example - http://www.your-server.com/cgi-bin/bbmat.cgi?script=recipe

If you want users to be able to select a "NO FRAMES" URL, use ..

Example - http://www.your-server.com/cgi-bin/bbmat.cgi?script=recipe&frames=N

.. however by default frameless browsers (if there are any left) will see a link to the frameless version in the tag, so providing a separate link for them is not necessary. <BR><BR> To run the BBMATIC manager, use 'manager' as the query string. You can optionally specify a forum as in the 'script=recipe' example, but you will have the option to change forums anyway. <BR><BR> Examples - <BR><BR> http://www.your-server.com/cgi-bin/bbmat.cgi?manager<BR> http://www.your-server.com/cgi-bin/bbmat.cgi?manager&script=recipe<BR> http://www.your-server.com/cgi-bin/bbmat.cgi?script=recipe&manager <BR><BR> The response should be the password authorization form. The initial password is 'password'. Of course you should change it soon to something unique by entering a new password in the 'Change Password' box. <center> <br /><br /> <DIV CLASS="mycontent_test"> "I really loved your website because I HATE hassling with perl and cgi. (I'm an author and don't have time)." <br /> - L. Schlumpf <br /><br /> <a href="http://www.cgiconnection.com/cgi-bin/cgi-con/system.cgi?area=contact">Send us your thoughts</a> </div> <br /> </center> <DIV CLASS="mycontent"><FONT SIZE=-1> <DIV ALIGN="LEFT"></DIV> <br /><br /> <A HREF="http://www.cgiconnection.com/cgi-bin/cgi-con/system.cgi?area=downloadoptions&download=X1000"><img src="/buttons/download.gif" border=0></A> <A HREF="http://www.cgiconnection.com/cgi-bin/cgi-con/system.cgi?area=contact&subject=BBMatic BBS">Questions?</A> </FONT></DIV> <!-- MIDDLE I --> <br /> <CENTER> <div class="bottomnav"> <div class="tab4"> <a class="tab4" href="http://www.cgiconnection.com">Home</a> <a class="tab4" href="http://www.cgiconnection.com/cgi-bin/cgi-con/system.cgi?area=login">My Account</a> <a class="tab4 activeTab" href="http://www.cgiconnection.com/software">Software</a> <a class="tab4" href="http://www.cgiconnection.com/articles">Articles</a> <a class="tab4" href="http://www.cgiconnection.com/cgi-bin/cgi-con/system.cgi?area=code">Affiliates</a> <a class="tab4" href="http://www.cgiconnection.com/tools">Tools</a> <a class="tab4" href="https://www.cgiconnection.com/cgi-bin/cgi-con/system.cgi?area=order">Cart</a> <a class="tab4" href="http://www.cgiconnection.com/cgi-bin/cgi-con/system.cgi?area=faq">Help</a> </div> </div> </CENTER> <!-- MIDDLE II --> <!-- FOOTER --> <br><br> <center> <a href="http://www.webpost.net/fuse">Download Fuse Node.js Compiler</a> </center> <br> </div> </div> <script type="text/javascript"> $("a[rel^='prettyPhoto']").prettyPhoto(); $('.tabcorner').corner("bottom 15px"); $('.catboxround').dropShadow(); $('.bottomnav').corner("top 15px"); $('.headlinecorner').corner("cool tl br"); $('.scriptbox').corner("top 5px").corner("bottom 5px"); //$(".scriptbox").dropShadow({left: 7, top: 10, opacity: 0.8, blur: 4}); $('.title2').corner("top 5px"); $('#title').corner("top 10px"); </script> <script language="JavaScript" src="http://www.cgiconnection.com/cgi-bin/cgi-con/sitetrack.cgi"></script> <script type="text/javascript"></script> </body> </html>