How to get more out of Akiva's WebBoard version 4.x, 5.x, and 6.x with Rog's "undocumented" systems

This describes several systems that I've written over the years, but which have never been documented sufficiently to be released as "freeware."

Not all of these systems have been upgraded for WebBoard 5, or 6 ... but your costs for acquiring them are much lower, since the code has already been written.  If you represent a non-governmental nonprofit organization, I may be willing to go even lower.

Many of these systems could also be varied in order to support other applications.


1:  The forms posting system

2:  The Post-Exporting System, AKA "box of chocolates"

3:  The E-mail "scrubbing" system, and a general interface for controlling the content of posts submitted via e-mail

4:  The moderator notification system, for conferences that require post "verification" (i.e. moderation)

5:  How to contact me

6:  Other freeware products


1:  The forms posting system

This system allows users to post forms instead of regular posts, although the option to post ordinary posts is still available.

This system will allow any number of forms, each may be tailored to the needs of your organization.


Here's an example of what the user sees, when posting a message.  This example comes from a system that's currently in use by the Montgomery Co. (MD) Police Dep't:

When the user clicks on the link for an "incident," s/he fills out the fields for this form (I haven't shown the entire form):

When the post is displayed, it shows the entire form, minus any "irrelevant chunks" (I'll say more about this point later):


This system contains a number of advanced features:

  • It supports any number of forms: to build a form, you only have to be able to code the necessary HTML (or hire someone who can).

    Forms design is a sophisticated skill, but that doesn't mean that there aren't a lot of folks who possess it.

  • HTML enhancements allow you to split up a form into "chunks".  If a "chunk" has no modified fields, then it will not be displayed, when the post is displayed.  You may also specify that a "chunk" must always be displayed, even if it contains no information.

    Our example form contains sections for "victims," as you can see:

    And yet, when it's displayed, these sections don't appear.  That's because no data has been entered into them.  However, your application may require that parts of the form must be displayed, even if no information has been entered into them.

  • You may designate certain form fields as mandatory.  Users can't post a form without filling out these fields.

  • Every form has a "plain text" version, which can be printed or viewed via the a link, when the post is displayed (in this case, the links is labelled "B&W Print".

    The link is shown in red (on the upper right):

    Here's what the "plain text" version looks like:

  • It's also possible to view or print all forms that have been posted in the same conference.

    Consider the blue square near the bottom of this illustration:


When forms are coded, you can include any of these "special" tags, that can make it particularly easy to control their display.  Note that "optional" sections don't appear unless there's actual data in them, and that the definitions of "hard" and "soft" dividers can be configured:


G_FormOptlSectStr0  = '<F-OPT>',    /* Start of "optional section"    */
G_FormOptlSectStr9  = '</F-OPT>',   /* End   of "optional section"    */
G_FormHTMOnlyStr0   = '<F-HTM>',    /* Start of "HTML only" portion   */
G_FormHTMOnlyStr9   = '</F-HTM>',   /* End   of "HTML only" portion   */
G_FormPrtOnlyStr0   = '<F-PRT>',    /* Start of "Printed only" part   */
G_FormPrtOnlyStr9   = '</F-PRT>',   /* End   of "Printed only" part   */
G_FormPrtCapsStr0   = '<F-PRTCAP>', /* Start of "Print capitals" part */
G_FormPrtCapsStr9   = '</F-PRTCAP>',/* End   of "Print capitals" part */
G_FormPrtFFStr      = '<F-PRT-FF>', /* TOF (ASC 12, AKA Control-L)    */
G_FormPrtHardDivStr = '<F-PRT-D1>', /* "Hard divider"                 */
G_FormPrtSoftDivStr = '<F-PRT-D2>', /* "Soft divider"                 */
G_FormPrtBRStr      = '<F-PRT-BR>', /* Line feed                      */
G_FormPrtSpStr      = '<F-PRT-SPS>',/* Force 2 spaces in printed form */


Forms can interact with information that's stored in a database, and the data from forms can be easily extracted, since it's stored in message board posts.

Return to table of contents

2:  The Post-Exporting System, AKA "box of chocolates"

If you're an American, you may have heard of the "Whitman's Sampler."

Whitman is a company that makes chocolates.  The "Whitman's Sampler" is a variegated box of chocolate delights, offering myriad varieties of the tasty morsels.

Information and chocolate have a lot in common: for one thing, they both cost money.  Also, there's a gradation of quality.

And finally: if you want people to buy your chocolates, one of the most effective enticements is a box of diverse "samples."  Similarly, if you want people to buy your information (or merely consume it) ... what better way to tout your goods than to put up a web page, accessible to all, that provides a series of high-quality "nuggets" of delectably-declicious insights?

So: if your WebBoard application is focused on marketing information, one of the best ways to recruit customers is to allow them to sample the quality and variety of knowledge that they'll gain, by patronizing your virtual boards.  This system allows you to put together any number of HTML pages composed of sample posts, and it contains all the additional capabilities that you may desire, in order to make these pages compelling.


The three critical concepts in this system are "exporting," the "export pool," and "publishing applications."

You export a post by clicking on a new link that's available on the posting page.  Only staff (WebBoard Administrators, virtual board Managers, and conference Moderators) can see or use that link.

Once a post is "exported", it becomes part of the "export pool."

Think of the "export pool" as the candidates.  Each box of chocolates (i.e. each set of lusciously-tempting "information nuggets) will be composed of one or more posts from the "export pool."

Now, if you really like chocolate, you know that people have diverse tastes in chocolate.  So it might make sense to have a white chocolate sample box, a liquer-filled chocolate sample box, a dark chocolate sample box ... etc.

These different types of "sampler" boxes are known as "applications."

"Publishing" an application means to create an HTML page, composed of an assortment of posts.  But there's more.


You already know how posts are added to the "export pool": as I said before, a staff member simply clicks on the new "export" link which has been added to the post display pages.

The next step is to take all the possible posts and determine which one will be part of which application.  This is done via the "more" menu:

In this particular case, there are 5 applications: "alerts," "brochure," and 3 additional ones known as "extra1", etc.

This system will support any number of applications.  So you can have a dark chocolate "sampler", one for liquer-filled chocolates, one for white chocolate, one for pecan chocolates, one for macadamia nut chocolates, one for cream-filled chocolates ... ad nauseum.

The "delete" option lets you remove posts from the "export pool".  Perhaps the general public has lost its taste for carmel chocolates, so you don't see the need to offer them anymore in your sample boxes.  I'll explain the "Global" option later.


Now we have to build the sample box of "chocolates." (i.e. posts).  The first thing we need to do is to select which posts are to be displayed in this application (i.e. this particular box of chocolates):

This is part of what you see when you actually attempt to "publish" an application: after all, you don't want to include a post in a particular sample page unless you know what it looks like.

But a box of chocolates has structure: some chocolates are going to be in the center, others around the edges.  So you need some way of determining the sequence of posts in this page, and you also need a way of putting your own HTML tags before and after the list of posts:

As you can see from the above image, you can not only determine the precise sequence of posts in the "published" page, but you can also include special posts that will carry the HTML for the beginning of the page, and the end of the page.  (You probably want to do these posts in a private conference, so they don't confuse your users.)

(Note: for those of you who hate to type numbers, the numbers will automatically appear in the box whenever you select the checkboxes associated with each post ... the list of numbers in the box is there only to provide you with more control over the sequence.)

But we're still not done configuring our "box" of sample posts: we also need to consider the fact that people are very visually-oriented.  So, I've provided a very familiar way to manage the colors:

Finally, this system allows you to manage the privacy issues involved:


Hopefully, you now see just how easy it is to build an HTML page that consists of nothing but posts (and whatever additional information that you choose to provide).

Next question: where does this page go?

The answer is that it can go anywhere on your server!  For example, if you put it on the help subfolder of a "no authorization" board, then anyone can see it, even if they're not a registered WebBoard user!

This URL: http://www.yourdomain.com[:8080]/~BOARD/help?PAGENAME will do the trick.

Now anyone can browse to your page of sample posts!


What if you wish to attract customers to a group of boards?  Easy: this system also allows a special kind of exporting: exporting to a "global" pool of posts, i.e. a set of posts that may come from many different boards.

Publishing these "global" applications is just the same ... although you don't have to have a global board if you don't wish to.

Naturally, this system has a "preview" option, so you can view the generated HTML page, before "publishing" it (i.e. copying it to a file on the server).

No special server access is required: once this system is installed, everything can be done from the web.

Return to table of contents

3:  The E-mail "scrubbing" system, and a general interface for controlling the content of posts submitted via e-mail

To run this system, you must have the ability to directly access the server; i.e. you need to be able to set up a "scheduled task" on the server that accesses the database.  Normal operation of the system doesn't require continued access to the server.

WebBoard gives you a great deal of authority over the content of posts that have been initiated from the web.  This system extends your hegemony to posts that are initiated via e-mail, for conferences that have associated e-mail lists.

In other words: this system allows you to intervene in WebBoard's incoming e-mail interface.

To be more precise ... you can do just about anything that you'd like to do, in order to control the content of posts to an e-mail list, before these posts are displayed to the ordinary users of the board, or sent out via the e-mail lists.

You can also use this system to process user requests that are submitted via e-mail, such as forms.  It's easy to set up an interface to allow users to submit forms by e-mail with "formmail.pl" (the popular PerlScript *freeware* goodie for Unix systems, that's available from Matt's Script Archive, or the *freeware* WinTel equivalent, called Form2Mail.

To use this system, you must configure all your affected conferences to require moderation (WebBoard refers to this as "verification").

In other words, a post to these conferences isn't "visible" to ordinary users until a staff member (WebBoard Administrator, virtual board Manager, or conference Moderator) has clicked on the checkbox next to the post, that appears on the topics list.

This system uses a freeware product called "ASPTear" to automatically "verify" posts ... after the content of these posts has been massaged or altered, to your specifications.

Whenever posts are altered, the system will back up the originals, in case there's a problem.  It also uses a fairly verbose log file format, so you can monitor the process from the web if necessary (i.e. without FTP or other forms of "direct" access to the server).

I originally wrote this system to patch a bug in WebBoard 4.  Certain e-mail interfaces, such as O/E, were dumping lots of "garbage" into posts.  I'm not sure whether later versions of WebBoard have addressed this problem, but you can still use this system to exert a lot of control over the content of incoming e-mail posts (to conferences with associated e-mail lists).

Return to table of contents

4:  The moderator notification system, for conferences that require post "verification" (i.e. moderation)

To run this system, you must have the ability to directly access the server; i.e. you need to be able to set up a "scheduled task" on the server that accesses the database.  Normal operation of the system doesn't require continued access to the server.

WebBoard allows you to set up conferences that require post "verification."

In general, this concept is known as "moderation": i.e. a post will not "appear" to the ordinary denizens of the board ... until a conference moderator has viewed the post, and clicked on the "check mark" image that WebBoard displays next to the post subject (in the topics list).

WebBoard 4 provides no "automatic" way for a moderator to know that there are posts that require "moderation," other than having the moderator visit the board(s) periodically.  (To be more precise: this was a serious problem in WebBoard 4; I don't know whether it's been addressed in later versions of WebBoard.)

This system automatically generates e-mail messages to moderators of conferences in which there are "unverified" posts.

It has a number of advanced features:


To get a better idea of how this system works, you may wish to read the documentation (regrettably, this is only in plain text).

Return to table of contents

5:  How to contact me

You can e-mail me at rog@NOSPAM_rs-freeware.org if you encounter problems, or think that you've found a bug.

I can also be reached by telephone in the U.S. from about 9 AM U.S. central time to 5 PM U.S. central time at: 765-742-6705.  If you don't get an answer, you can use my numeric pager at: 765-417-0664 ... I'll try to call you back, if you're in the U.S, Canada, or Mexico.

Naturally, if you're willing to hire me to make changes for your special-purpose application, I'm certainly willing to consider your offer.  My standard rate is $75/hr., but I may charge less if the work is to be done for a small business (less than 25 employees), or a nonprofit organization (in the latter case, I might even do it on a gratis basis  :-)  I may also consider charging you nothing if you're suggesting an improvement that I feel is of value to a large number of other users.

You can find out more about me, including references, and a list of clients/projects at: http://www.rs-freeware.org/rog.

Return to table of contents

6:  Other freeware products

WebBoard users will find lots of WebBoard freeware at: http://www.rs-freeware.org/freeware.htm.

Anyone who writes JavaScript  (regardless of whether this is written on the client or server side),  deals with SQL, or who happens to be interested in obtaining the full power available from DOS may wish to check out http://www.rs-freeware.org/free2.htm

Return to table of contents