Backtalk Installation Guide

Part VI: Backtalk Customization

Version 1.1.10

© 1996-2001 Jan Wolter, Steve Weiss

Prev: Part V: Apache Configuration (Backtalk Accounts or Backtalk Accounts)


At this point your Backtalk system should be working, but you will probably want to customize it.

(1) Edit the Global Configuration Script

Almost all Backtalk pages are generated by scripts written in the Backtalk script language, which is a stack-based language somewhat similar to Postscript. All scripts are installed in the script directory under the Backtalk directory. The script/config.bt script is a header script run before every other Backtalk script. Many global settings are defined here. You will probably want to change at least some of them.

Note that lines starting with '%' are comments. Most options are described in details by the comments in the file.

  1. Edit the automatic recompilation flag. Look for the line
     
       /auto_recompile 1 def
     
    This controls what checks Backtalk does to decide if a script needs to be recompiled. For most people, 1 is a good value. If you are going to be doing significant amounts of script development, then you might want to reset this to 2. If eventually your system configuration gets stable enough that you aren't going to be making changes to the config.bt file, and if you want to make Backtalk run a wee bit faster, you may eventually want to change it to 0.
     
  2. Edit the system name. Look for the line
     
       /bbsname (SITE-NAME) defconstant
     
    and change the portion in parenthesis to the name of your conferencing system. It can have spaces in it. For example, if you conferencing system is to be called "Star Forum" you might set this to
     
       /bbsname (Star Forum) defconstant
     
  3. Set up your system's logo. Backtalk allows you to define an image to use as a logo for your conferencing system. You can define two different logo images. The standard logo should be about half a screen wide, maybe 250 to 400 pixels. You can also define a wide logo, intended to be about as wide as a screen, maybe 600 to 800 pixels wide. However, none of the standard interfaces actually use this, so unless you are installing other interfaces, you needn't bother with that.
     
    Create the logo image as a .gif, .jpg or .png file and store it in the image directory under Backtalk's home directory (where backtalk.jpg already is). Look for the lines
     
       /logo imghost(/backtalk.jpg)+ defconstant
       /logo.h 125 defconstant         % height of logo
       /logo.w 285 defconstant         % width of logo

     
    and replace the (/backtalk.jpg) part with the name of your logo image file, replace 125 with the height of your image, and replace 285 with the width of your image. For example, if your logo is a 200 by 400 pixel GIF file named `starforum.gif', then you'd change these lines to
     
       /logo imghost(/starforum.gif)+ defconstant
       /logo.h 200 defconstant         % height of logo
       /logo.w 400 defconstant         % width of logo

     
    Actually, the image doesn't have to be under the image directory. You can give arbitrary URLs, by doing something like:
     
       /logo (http://www.mysite.com/picts/starforum.gif) defconstant
     
    If you want the image to be clickable, then find the line that says
     
       %/imageURL (http://localhost) defconstant
     
    uncomment it by deleting the initial percent sign, and change the `http://localhost' part to the URL that you want people sent to if they click on your logo image.
     
  4. Who may Create Accounts? By default, Backtalk is configured to random people coming in off the net, create Backtalk accounts simply by filling out the registration form, and immediately start using those accounts. This can be changed by editting the configuration file line that looks like:
     
       /newuseropen 2 defconstant
     
    If you change the newuseropen value to '1', then people will still be able to create accounts with the same public form, but the accounts will be created in an "unvalidated" state, and will not be usable until an administrator has "validated" them (this can be done through the web interface).
     
    If you change the newuseropen value to '0', then it will no longer be possible to create accounts using the public newuser form. Accounts will only be creatable by adminstrators.
     
  5. Should Unauthenticated Reading be Allowed? By default, Backtalk is configured to allow users who have not authenticated, and possibly don't have accounts, to read all open conferences anonymously. They can't post, and the system won't remember what they have seen, but they can observe. If you would like to disable unauthenticated reading entirely, so that only people with accounts may read the conferences, then edit the line that looks like:
     
       /allowanon 1 defconstant
     
    Just change the 1 to a 0.
     
  6. Set Author Powers Different systems have different ideas of what kinds of editing powers the person who originally posted an item should have over that item. These are configured with the settings below:
     
       /author_freeze  1 defconstant
       /author_kill    1 defconstant
       /author_retire  1 defconstant
       /author_retitle 1 defconstant
       /author_erase   1 defconstant
       /author_hide    1 defconstant
       /author_edit    0 defconstant

     
    They are all normally enabled by default. You can disable them by changing the 1's to 0's.
     
    The author_freeze option, if enabled, allows the original poster of an item to freeze it, so that no further postings can be made to it by other users.
     
    The author_kill option, if enabled, allows the original poster of an item to delete it so long as no responses have yet been made by other users. If other people have responded to an item, then it cannot be deleted by the author, even if author_kill is enabled.
     
    The author_retire option, if enabled, allows the original poster of an item to retire it, so that it is no longer displayed to users who ``read new'' or ``read all'' but can still be seen by people who explicitly request to see it.
     
    The author_retitle option, if enabled, allows the original poster of an item to edit the title of the item.
     
    The author_erase option, if enabled, allows the original poster of a response to erase that response at a later date. (Normally copies of erased responses are logged.)
     
    The author_hide option, if enabled, allows the original poster of a response to hide that response at a later date. Hidden responses aren't displayed unless the reader makes an extra mouse click. Disabling this would be a bit weird.
     
    The author_edit option, if enabled, allows the original poster of a response to change the text of that response at a later date. (A copy of the previous text is logged.) We think this disrupts the flow of the conversation, and should almost never be enabled. It defaults off.
     
  7. Set Fairwitness Powers Different systems have different ideas of what kinds of editing powers that conference hosts should have. (Conference hosts are traditionally called ``fairwitnesses'' in Backtalk. They are users appointed by the system administrator to oversee one particular conference.) These are configured with the settings below:
     
       /fw_erase   1 defconstant
       /fw_hide    1 defconstant
       /fw_retitle 1 defconstant
       /fw_edit    0 defconstant

     
    They are all normally enabled by default. You can disable them by changing the 1's to 0's.
     
    System administrators always have all of these powers. Fairwitnesses can always freeze, retire, and kill items.
     
    The fw_erase option, if enabled, allows the fairwitnesses to erase other user's responses to items in their conferences. The erased text is logged so it can be recovered, but becomes inaccessible to other users.
     
    The fw_hide option, if enabled, allows the fairwitnesses to hide other user's responses to items in their conferences. Hidden responses are not normally displayed to users, but they can see them with one extra mouse click if they want.
     
    The fw_retitle option, if enabled, allows the fairwitnesses to edit the titles of items in their conferences. This may be useful if the author chooses undescriptive titles, or the conversation drifts into other topics.
     
    The fw_edit option, if enabled, allows the fairwitnesses to edit the content of items and responses posted by other users. The original content is logged. We think letting someone change someone else's words is a horrible idea, so this option defaults off, and we strongly discourage turning it on.
     
  8. Hide User's Names and Personal Info? Some systems, notably those with users who are minors, don't want to publish their user's names and personal information on the web. Backtalk can be configured to identify users only by their login IDs, not by their full names and to suppress display of other personal information. There are two kinds of names whose visibility is controlled by the anonymity setting: the user's "real" name saved in the user database, and the name or alias that the user attaches to postings he makes. The different anonymity levels are:
     
    Anonymity  Who can see full names:   Who can see response names:  

         0     everyone.                 everyone.
         1     authenticated users only. authenticated users only.
         2     admins only.              current conf fairwitness only.
         3     admins only.              admins only.

     
    Level 0 is the default. You can set other levels by doing something like:
     
       /anonymity   1 defconstant
     
  9. Allow HTML Postings by Default? With Backtalk fairwitnesses (conference hosts) can decide if HTML is to be allowed in postings to their conferences. The dflt_html switch sets the default value for conferences where the fairwitness has not set the option. It is initially set to 1. Set it to 0 to disable HTML by default. Note that only a safe subset of HTML is allowed, and if you are sharing conferences with Yapp or Picospan, Backtalk automatically filters the HTML out of the versions of the postings that they will display.
     
  10. Edit the show_motd switch. If you want the web interface to display your system's /etc/motd file, then you should uncomment the line:
     
       %/show_motd 1 defconstant
     
    by removing the percent sign from the front. This is most often used on installations with real Unix logins. If this is not defined, then Backtalk will instead display the motd.html file found in the bbs directory. This is specific to Backtalk and can contain HTML tags.
     
  11. Edit the useplan switch. If you want to store user's personal information in their .plan files instead of in their .backtalk files, then you should uncomment the line:
     
       %/useplan 1 defconstant
     
    by removing the percent sign from the front. This is most often used on installations with real Unix logins.
     
  12. Edit the text_interface definition. If you are setting up Backtalk to share conferences with Picospan or Yapp, you should define the text_interface constant to the name of that system, either:
     
       /text_interface (Picospan) defconstant
     
    or:
     
       /text_interface (Yapp) defconstant
     
    Otherwise, just leave it commented out:
     
       %/text_interface (Picospan) defconstant
     
  13. Edit the usepublic_txt switch. If you are setting up Backtalk to share conferences with Picospan or Yapp, then the usual place to store the list of conferences is in a text file named "public.txt". Backtalk strongly prefers to use a more rigidly formatted file named "confmenu", but if you want to be compatible with Picospan, you should uncomment the line:
     
       %/usepublic_txt 1 defconstant
     
    by removing the percent sign from the front. Note that if you do use a public.txt file, it must obey certain formatting restrictions, as described in the Administrative Guide for Conference Creation.
     
  14. Edit the many_users switch. If your system has a somewhat slow computer, and you expect to have many thousands of users, you should probably turn on the many_users switch. This tells the scripts to avoid doing things like loading the full list of users into memory and sorting it before displaying it, which are nice on a small installation, but impractical on a large one. To set this flag, edit the line:
     
       /many_users 0 defconstant
     
    Change the default 0 value to 1 if you expect to have too many users.
     
  15. Edit the shyfile switch. If you have anonymous reading but some of your users don't want their responses read by unregistered users, then Backtalk supports a "shyfile" facility where particular user's responses are hidden from unregistered readers. If you want to use this, uncomment the line
     
       %/shyfile (/usr/local/backtalk/etc/shylist) defconstant
     
    by removing the percent sign from the front, and change the path name in the parenthesis to the place where you want to have your shylist saved.
     
  16. Edit the register_url switch. This is the page you would like people who want an account directed to. By default it points to the standard Backtalk account creation form, which is probably fine for most sites.
     
  17. Edit the languages switch. If you are using ispell for spell checking, and you have installed ispell dictionaries for languages other than the standard american and british ones, then you should add them to the definition of the languages constant. For example,
     
       /languages (american,british,russian,polish) defconstant
     
    The default language is determined by the configuration of the ispell program.
     
  18. Edit the favicon switch. Some browsers (Internet Explorer 5 and Konqueror) like to request an icon image called 'favicon.ico' from web sites. IE uses it for bookmarks. Normally backtalk responds to all such requests with an empty document. If you have a custom .ico file for your site that you would like sent, set the favicon variable to to the full path of that file. Leaving this undefined is the more common option. Visit www.favicon.com for more info on favicons and how to make them.
(2) Edit Pistachio Configuration Script
 
The ``pistachio'' interface is the most commonly used Backtalk user interface. It consists of a set of scripts. It has it's own configuration file, where there are a few settings you may want to alter. The file is installed under the Backtalk directory at script/pistachio/config.bt.
 
If editing this file seems to have no effect, remove all the "script/pistachio/*.bb" files. Unless you have set the automatic recompilation flag above to 2, Backtalk will not automatically recompile scripts after they have changed, and will instead keep using the old compiled copy. Deleting the compiled scripts is a sure way to force them all to be recompiled.

  1. Edit the default background color. Each conference fairwitness can set a different background color for their conferences. The color defined here is used for conferences with no defined background color, and for other, non-conference pages.
     
    Actually, you might as well just leave it for now, but if you ever decide you don't like it, this is where to go to change it.
     
  2. Edit the default button style. Again, probably just leave it be for now.
     
  3. Edit the global page header. This is some HTML that is inserted at the top of every Pistachio page. The default is nothing. This can be used for ad rotators and such (yick). You should also set global_header_height to the approximate height in pixels of the page header. This is used to enlarge the size of the top frame on read pages enough to hold both the header and the buttons.
     
  4. Edit the global page footer. This is some HTML that is inserted at the bottom of every Pistachio page. The default is a Backtalk copyright message in small print. You are welcome to take that out (though we would prefer that you display the copyright someplace, it doesn't have to be on every page) and replace it with anything you like.
     
  5. Edit the default item list type. Pistachio can display four kinds of item lists:
         new      - only items with new responses
         current  - all items not forgotten or retired
         all      - all items
         forgotten- only forgotten or retired items


    You can configure which of these is the default that will be shown to users when they click on the "item list" button (later they can select whichever they want). Only the new and current options are really very sensible. To change this, edit the line that looks like
     
       /dflt_item_list (new) defconstant
     
  6. Edit names for things. Backtalk's terminology, in which "confernces" are managed by "fairwitnesses" and contain "items" consisting of many "responses," has the virtue of long tradition. However, everyone seems to have their own idea what things should be called. Some people like "fairwitnesses" to be "hosts" or maybe "moderators". Some people think "conferences" should be "forums" or "rooms" or "channels" or "departments". Some people think "items" should be "topics" and "responses" should be "postings" or "comments". Other people other ideas.
     
    So pick your terminology, and configure it into the interface, and excuse us for continuing to call things by the same old names in our documentation. Look for the following lines:
     
       /Fairwitness (fairwitness) defconstant
       /AFairwitness (a fairwitness) defconstant
       /Fairwitnesses (fairwitnesses) defconstant
       /Item (item) defconstant
       /AnItem (an item) defconstant
       /Items (items) defconstant
       /Conference (conference) defconstant
       /AConference (a conference) defconstant
       /Conferences (conferences) defconstant
       /Response (response) defconstant
       /AResponse (a response) defconstant
       /Responses (responses) defconstant

     
    Edit the parts in parentheses to your favorite terms. You terms should be all lower case. The scripts will take care of capitalizing them where necessary. I recommend against using multi-word phrases for these things, partly because it's clumsy, partly because the capitalization may not work right.
     
    Note that there are three definitions for each term - singular, plural and singlar with an article. So if you want to rename 'items' to 'topics' you'll need to change three lines, like this:
     
       /Item (topic) defconstant
       /AnItem (a topic) defconstant
       /Items (topics) defconstant

(3) Edit Abalone Configuration Script
 
The ``abalone'' interface is a newer, prettier, slower Backtalk user interface. It consists of a set of scripts. It has it's own configuration file installed under the Backtalk directory at script/abalone/config.bt. Currently that file is very like the Pistachio configuration file.

If editing this file seems to have no effect, remove all the "script/abalone/*.bb" files. Unless you have set the automatic recompilation flag above to 2, Backtalk will not automatically recompile scripts after they have changed, and will instead keep using the old compiled copy. Deleting the compiled scripts is a sure way to force them all to be recompiled.

  1. Edit the global page header. This is some HTML that is inserted at the top of every Abalone page. It works exactly like the same option in Pistachio.
     
  2. Edit the global page footer. This is some HTML that is inserted at the bottom of every Abalone page. It works exactly like the same option in Pistachio.
     
  3. Edit the Colors. Abalone uses the same color scheme everywhere (unlike Pistachio, which allows it to be set differently in different conferences). You can choose one of these as the default by editing the config file line:
     
       /default_scheme (coffee) defconstant
     
    Current color schemes are 'coffee', 'openforum' and 'bright'.
     
    You can create new color schemes by editing the abalone/header.bt script. Each scheme defines the following variables:
    variable      function                              default
    bg_color       Background color used on all pages     White
    link_color     Color of link text                     Dark Green
    alink_color    Color of link text while being clicked Dark Green
    vlink_color    Color of link text after being clicked Dark Blue
    text_color     Default text color                     Black
    head_bg_color  Color of background on header lines    Dark Green
    head_fg_color  Color of text on header lines          White
    title_bg_color Color of background on title lines     Dark Gray
    title_fg_color Color of text on title lines           Black
    row1_bg_color  Color of background on odd rows        Light Grey
    row2_bg_color  Color of background on even rows       Medium Grey

That's all. Happy Backtalking.


Prev: Part V: Apache Configuration (Backtalk Accounts or Backtalk Accounts)