Chapter 1: Introduction
This document is the reference guide for CML, the Caucus Markup Language. CML is a scripting language that combines HTML tags with simple programming constructs and database functions. The CML language interpreter is the core of the World Wide Web interface to the Caucus conferencing system (hence the name).
This guide assumes considerable familiarity with HTML, the World Wide Web, Web browsers, and the Caucus conferencing system. For more information about Caucus, see the CaucusCare home page at http://caucuscare.com.
This document is copyright © 1996-2005 by CaucusCare. This is a work-in-progress, and will be frequently revised. This edition corresponds to the CML interpreter provided with the "Caucus 4.6" package. Corrections and comments (but not questions) should be sent to the author at email@example.com.
New features and functions in 4.6
$addtarget Add TARGET field to <A HREF...> tags when necessary Auth3Tag swebd.conf parameter for external authentication $encode64 Encodes a file into base64 $h2url Translates plain URLs in HTML text to <A HREF...> links $it_cnums List of conferences user is member of $it_hidden Is item hidden? $mkdir Create a directory $peo_access List of userids that access a conference with specified priv $set_it_hidden Hide (unhide) an item $sql_query_open Many new SQL query functions $sql_query_select Evaluate SQL SELECT query $str_replace Search and replace strings $unhtml Remove HTML tags from string
New features and functions in 4.4
$exists Does a file exist? $auth_cookie Generate cookies for user authentication $auth_pw Save/fetch user's password for single-signon $auth_method Which authentication method is in use? $url_decode Decode url-encoded text $request_uri Current page url (after hostname) $pw_methods available password authentication methods $pw_source password authentication source for current user $sleep sleep for N seconds $escsingle escape single quotes in text
New features and functions in 4.3
$includecml "include" (parse) a CML file in a function evaluation. Array manipulation A variety of array functions. Real numbers math functions handle real numbers. $quotient real number division $round rounding real numbers $in_group Is a user in a group? With what permissions? $groupperm Map permission names to numeric values $pw_can_reset Can passwords be reset? $pw_change Change: $pw_change() can "reset" passwords.
New features and functions in 4.21
$chg_author change author (owner) of an item or response $config Value of Config parameters in swebd.conf $set_per_name All 4 $set_per... functions may now be used by current user $http_referer Referer to this & 1st caucus page $http_accept HTTP data type 'accept' string $dst Daylight Savings Time in effect?
New features and functions in 4.11
New features and functions in 4.10
$cache_clear Clears (conference) cache $cache_timeout Set maximum age of (conference) cache $char Convert decimal value to character $charval Value of a character in a string (previously undocumented) $cl_access (Added new optional argument) $co_name name of conference Continue directive Start next iteration in for/while/count loop Copy directive Equivalent to Set, but preserves leading blanks $copyfile copy a file from one place to another $create_conf extended to add userlist argument $deldir Delete a directory (and all subdirectories) $errors display accumulated error messages $http_remote_user access authorization userid $it_pack pack an item triplet list as "english" $it_lastresp Last (undeleted) response in item $is_num position of 1st non-numeric char (previously undocumented) $lice_confs Maximum number of conferences allowed by license $lice_customer License customer number $list_conf_var list conference variables $list_item_var list item variables $list_site_var list site variables $list_user_var list user variables $lock Cooperative advisory locking mechanism $numeric Is a word a number? $pagetime Value of PageTime parameter in swebd.conf $page_flush Flush buffered page output $readterm read a line from user's terminal (sweba only) $reloaded Was this page just reloaded? $set_per_intro Change a person's brief introduction $set_per_join Make a person a member of a conference $set_per_name Change a person's name $set_per_phone Change a person's telephone number $strlen length of a string $timeout Set new value of Timeout parameter $unlock unlock locks granted by $lock() $variables display names and values of all variables $weekday day # of week $words Subset of words in a string $wordpos Character position of a word in a string
What's new in Caucus 4.1
First of all, if you are upgrading from version 3.x of Caucus, first see What's new in Caucus 4.0. The rest of this page describes changes since version 4.0.
In some special cirumstances, CML variable names containing a dot (".") may not be interpreted correctly. If at all possible, please avoid the use of CML variables containing a dot.