Caucus 4.3 'Bonanza' Description
Version 1.00 10 November 1999
Version 1.02 10 December 1999, covering Bonanza 1.3.
Version 1.03 20 December 2001, minor updates.
Version 1.04 8 May 2003, fixes.

I. Introduction
Bonanza is the code name for a series of CML extensions to the base Caucus 4.10 interface.  Bonanza extends the ability to customize the Caucus Center page, and some other pages, in a way that significantly improves the ability to create custom environments.  (The code name was suggested by the "branding" of environments, which in turn suggested branding cattle... and thus to Bonanza.)  Bonanza was originally an internal product, but was released as part of Caucus 4.3.

The highlights of Bonanza include:

  1. A default look and feel for the Caucus Center page.

  2. A special "Interface Storage" conference as the source of content for the Caucus Center page.

  3. Division of the Caucus Center page into logical blocks, which can be individually modified.  Blocks can be existing atomic elements (e.g., personal conference list, "list all conferences", etc.), or CML text of items from "Interface Storage", or arbitrary CML code.

  4. A template CML file for multiple conference home pages, that includes automatic cross-linking between them.

  5. A configurable "resource" page that can represent any set of arbitrary resources (phone lists, e-mail lists, etc.) as one or more pages within Caucus.

  6. A completely reorganized list of interface control switches.

  7. A new set of macros for interface control.

  8. A completely customizable new user registration page.  Caucus managers may define an arbitrary number of user information fields, which can be configured to appear on the registration page, the personal information page, and the "change your own information" page.

The rest of this document describes the new capabilities in detail.


II. Interface Storage conference
Caucus has long supported multiple "interfaces" to the same conference environment (same set of conferences and people).  Each interface is just a separate set of CML files in a particular interface directory.  (For example, the Caucus 4.0 interface lived in the CML/SP40 directory; the new 4.1 interface lives in CML/CS41.)

With Bonanza, each interface has a dedicated "Interface Storage" conference associated with it.  (The name of this conference is always "Interface_Storage_" with the interface directory name appended, e.g. "Interface_Storage_CS41" for the default interface.)  The conference is used as a convenient place to upload, edit, and experiment with different interface elements, as will become clear below.


III. Caucus Center page
The layout of the "Caucus Center" page can now be controlled by a new manager option, "Control the Caucus Center page Layout".  This page divides the Caucus Center page into the following configurable pieces:

  1. The name of the "Caucus Center"
  2. The upper-left-corner icon for the Caucus Center
  3. An optional upper-left-corner icon for all other pages
  4. The rest of the page is divided along the vertical axis into an arbitrary number of "blocks".  Each block may be:
    • CML text taken from a particular item in the Interface Storage conference
    • a short string of arbitrary CML text and/or macros
    • the standard personal conference list
    • the standard "list all conferences" link
    • the standard "list of popular conferences" link
    • the standard "join conference (name)" box
    • the standard Caucus banner line

This means that most customizations of the Caucus Center page can be performed entirely in Caucus, without editing any of the actual CML files.  (It also reduces the likelihood that such custom work will need to be reimplemented when newer versions of Caucus are released.)


IV. Resource ("IFS") Pages
Additional "resource" pages may be added to the Caucus environment by using a CML macro to link to an item in the Interface Storage ("IFS") conference.  Each resource page has the standard Caucus toolbar, header, and location bar, and its own title.  The content is simply the CML text of the relevant item in the Interface Storage conference. 

For example: create an item in the Interface Storage conference called "Our Phones".  Place your organization's phone list in this item.  Add a block to the custom Caucus Center page that contains the CML text "%ifs_page_link (n 0 Our Phones)", where n is the new item number.  This will show a link "Our Phones" on the Caucus Center page, that in turn displays a regular Caucus page titled "Our Phones", containing the phone list in the item.


V. Caucus Interface "Switches"
The existing set of interface controls, available from the Caucus manager "Edit the Caucus Switches" link, has been completely reorganized into the following categories:


VI. Alternate Conference Home Pages
Bonanza makes some provision for would-be customizers who need to generate alternate forms of the standard conference home page.  For example, heavily customized versions of the CML/CS41/confhome.cml page have been used to treat a conference as a "bookstore", where items are treated as book records instead of discussion records.  One might choose to default to viewing a particular conference through this bookstore "lens", yet still allow access to the conference as a regular conference.

Bonanza includes a template CML file, called CML/CS41/bookstore.cml, which is essentially a copy of confhome.cml with the greeting "Welcome to the Bookstore!".  Both bookstore.cml and confhome.cml contain code that allow the display of links between any or all of the alternate conference home pages -- with the intent, for example, that the bookstore page could contain a link to the "regular" conference home page, and vice versa.

The display of these links, and the selection of which page is the default page for a particular conference, are controlled by a new section under Customize, Conference Home Page Options.  (See the "variant home page" section.)  To define new alternate home pages, see the definition of the variable "confhome" in the CML/CS41/Local/switch.i file.

Creating alternate conference home pages still requires writing or rewriting the CML code in bookstore.cml; the new bonanza code simply makes the process easier, and automates the links between these pages.


VII. New Macros for Interface Control
Bonanza includes 11 new macros that automate or simplify the creation of custom interface parts.  For details, see the Bonanza macro description at bonmacro.html.


VIII. Customizable New User Registration Page
A Caucus manager with "Edit Switches" privilege can completely customize the layout of the new user registration page, including adding or changing arbitrary personal information fields.  Fields on the registration page may be chosen from the following types:

  1. Userid
  2. Password
  3. Password verification
  4. First Name
  5. Last Name
  6. E-mail address
  7. Home Page
  8. Picture URL
  1. Telephone
  2. Brief Introduction
  3. arbitrary HTML text
  4. a pull-down list of US states
  5. an arbitrary text field
  6. an arbitrary (manager-defined) pull-down menu
  7. an arbitrary checkbox field

Fields may be marked as either optional or required.  The manager may also control which fields appear on the:

Finally, the manager may produce a "user report" on either all Caucus users, or all members of a particular conference, which writes all of the personal information fields (excepting passwords) into a tab-separated file that may be read by a spreadsheet program.  (The file is automatically e-mailed to the manager.)