Software Development Documentation Development Overview WCTL Template Language WCTL Commands WCJS Server-side JavaScript WCMS Development Chat Development Standard Templates & URL Codes Operator Documentation

Visit the

  • Developer Center,
  • WebX Harbor, and the
  • Web Crossing Conference
    to find a wealth of WebX info and a community of WebX experts on the Web!
  • Web Crossing Template Language
    Commands & Variables

    Table of Contents

    About WCTL Commands and Built-in Variables
    Variables by function
    Variables listed alphabetically
    Time and date formats

    » About WCTL Commands and Built-in Variables

    Web Crossing provides a large number of commands and built-in variables for accessing the conference database.

    Note that when you use a variable to get HTML text from the Web Crossing database, this text is generally available either formatted or unformatted. Formatted text has been run through the quick-editor and checked for legal and balanced HTML tags. Unformatted text is the raw text as originally entered by the user. There is an extensive set of string functions to allow you to convert any text to the desired format.

    » Variables by function

    The following tables organize all the Web Crossing built-in variables by function.

    User Information
    Current user values
    Kind of user
    User last login time
    Current user configuration
    User subscriptions
    Selecting and sorting users
    Current user access to current location
    Other registered user access to current location
    Author information

    Conference and Chat Management
    Current location
    Current location values
    Current location nested contents
    Selecting and sorting folder and discussion contents
    Group commands
    Chat rooms
    Site information
    Enclosures
    Moderated messages
    Queue for moderated messages

    Current Web Crossing Context
    Authentication
    Browser information
    Error Handling
    Forms processing
    CGI environment variables and HTTP response values
    Current page type
    Message item, discussion heading, and folder heading information
    Standard layouts
    User interface directives
    Message list context.
    Login and registration actions
    Editing information
    Preferences editing information
    Search commands
    Threaded Messages Display
    Newsgroups
    E-mail list mirroring
    Source/Mirror cluster
    Modules
    Filters
    Graphics
    Enabled Features and Licenses

    WCTL Directives
    String operations
    Date and time operations
    Path operations
    File system and logging
    Scripting and e-mail
    Persistent variables
    Create/destroy commands
    General directives


    » Current user values
    u.userPasswordMD5 MD5 hash of the user's original password
    u.userPostCount Number of posts tracked for this user.
    u.setUserCheckRemoteAddr Set a user's flag for checking the remote IP address.
    user User unique ID in hexadecimal. Used in user.function expressions.
    user2ndLine
    (also user.setUser2ndLine)
    Second line of information.
    userAlias
    (also user.setUserAlias)
    Email alias.
    userBio
    (also user.setUserBio)
    User biographical information.
    userCanAddLinks True if the user can add links to the current location.
    userCreate Create a new user.
    user.userDestroy Create or destroy a user.
    u.userDate Date/time a user was created.
    u.userDefaultDomain Default domain name of the server for the user's local e-mail box.
    username.emailLookupUser( domain, index ) Looks up a user by email name and optional domain.
    userEmail
    (also user.setUserEmail)
    E-mail address. See u.userMailbox for the local email address of a user.
    userEmailAliases
    (also user.setUserEmailAliases)
    User's e-mail aliases (i.e. multiple different e-mail addresses for the same user).
    userEmailCode The user's e-mail code after an automated e-mail message has been sent to them.
    userField Additional custom fields added to user's information record.
    user.userForwardTo
    (also user.setUserForwardTo)
    Forwarding address for incoming email. If set, all email sent to this user will be forwarded as specified.
    user.userFtpHome
    (also user.setUserFtpHome(h))
    Get/set a user's home FTP directory.
    userGroups List of user groups the user belongs to.
    userHasPicture User has picture.
    userHomePage
    (also user.setUserHomePage)
    Home page URL.
    userLastExport Return name of last file exported by user.
    userLookup Lookup a user by name.
    u.userMailbox Local email address for a user (versus userEmail, which is the external email address).
    username (also user.setUserName) Name.
    string.usernameLogin Check to login a username/password, returns the userId if login is successful.
    u.userNetEmail Email address after taking into account local mailboxes, forwarding,etc.
    userOutsideEmail Outside e-mail address for a user (i.e. the user's contact e-mail address). If not set, or the user has forwarding e-mail address set, the function returns user's forward e-mail address to.
    user.setUserPassword
    (also user.userCheckPassword)
    Set or check a user password.
    userPicture URL to user's picture.
    userSpellCheckIgnores
    (also user.setUserSpellCheckIgnores)
    List of personal spelling words for a user.
    userUniqueId User's unique ID.
    userUrls
    (also user.setUserUrls)
    User URL list, formatted.
    userUrlsRaw User URL list, unformatted.
    userUseCookies
    (also user.setUserUseCookies)
    True if the user has cookies enabled.
    user.addUserToGroup
    user.removeUserFromGroup
    user.userIsMember
    user.userIsMemberAny
    Check, add, or remove membership in a group.
    userPathAccess Return "host," "participant," "readOnly," "moderated," or "none."
    u.setUserImap (value) Set user's access to IMAP email.
    u.setUserPathAccess Set access for a user u.
    u.setUserPop3 (value) Set user's access to POP3 email.
    u.setUserWebEmail (value) Set user's access to web email.
    u.userPosts( count ) Get a list of most recent posts by a user, if "track user posts" is enabled.

    » Kind of user
    userIsCgiUser
    also u.userIsCgiUser
    Returns 1 if the user is sysop/superhost or is a member of the cgiUser group.
    u.userIsDeleted Returns 1 if tje user is deleted but is still in the database.
    userIsGuest Guest user (i.e. the user has posted as a guest).
    userIsHost Host user (for the current location).
    userIsHostOrSysop Sysop.
    userIsProvisional
    (also user.setUserIsProvisional)
    True if the user is provisional or host user (for the current location).
    userIsRegistered Registered user.
    userIsSuperhost Superhost user (treated as sysop except for site service IPs, ports, etc. settings)
    userIsSysop Sysop or superhost user.
    userIsUnknown User has neither logged in nor posted as a guest.
    userIsWctlUser
    also u.userIsWctlUser
    Returns 1 if the user is sysop/superhost or is a member of the wctlUsers group.

    » User last login time
    awayHours Check hours since last login.
    userAwayHours Number of hours user has been away for a user ID (e.g. the number of hours between the current login and the prior login).
    lastLogin Check for last login before a specific date.
    (Note that %% if lastLogin... %% doesn't make any sense
    in a login message, because the user is unknown at that point -- if
    the user is a guest or not logged in, this expression will evaluate as true.)
    userLastLogin Check for last login before a specific date for a user ID.
    userLastLoginValue Prior login date/time before the last (or current) login for a user ID.
    userThisLogin Last (current) login date/time for a user ID.
    userThisLoginValue Last (current) login date/time for a user ID.

    » Current user configuration
    userBouncedEmail
    also (user.setUserBouncedEmail)
    Check if a user has bounced e-mail (i.e. no messages will be sent to the user, until his/her next login and check/confirm his/her e-mail address).
    userChatPreference
    (also user.setUserChatPreference)
    Type of chat service used in a chat room for a user. This can be "JavaApplet" or "HTML".
    userCheckChangePassword
    (also user.setUserCheckChangePassword)
    Check if a user has to change password the next time he or she logs in.
    userCheckRemoteAddr Check that user certificate is from the same IP address as originally
    userDigestTimes
    (also user.setUserDigestTimes)
    List of e-mail digest mailing times for a user.
    userFolderSortBy
    (also user.setUserFolderSortBy)
    The sort-sequence used to list folders for this user.
    userHasCookie TRUE iff the current user was validated by a webxUser cookie.
    userHasImap Check whether a user has an Internet Message Access Protocol (IMAP4rev1) access to his or her e-mail account.
    userHasPop3 Check whether a user has a POP3 e-mail account (i.e. the POP3 e-mail service, such as Eudora or Outlook Express, is enabled for the user, and the user is provided with personal e-mail box).
    userHasRespBodySize
    (also user.setUserRespBodySize)
    Check whether the user has specified a font size for the body of a message.
    userHasRespInfoSize Check whether the user has specified a font size for the secondary information in messages.
    userHasRespNameSize Check whether the user has specified a font size for the user name in message.
    userHasWebEmail Check whether a user has a Web e-mail account (i.e. the Web e-mail service is enabled for the user, and the user is provided with personal e-mail box).
    userInboxIsFull
    TRUE if a number of messages in the user's Inbox is greater or equal to the limit set in the user preferences or in the sysop control panel.
    userImapIsSpecific
    (also user.setUserImapIsSpecific)
    Check whether the default site settings are used, or whether the user property
    ( userImapSpecific ) is used to determine if a user has the IMAP access to his or her e-mail account.
    userImapSpecific
    (also user.setUserImapSpecific)
    TRUE if the user preference is to have the IMAP e-mail service enabled for a user.
    id.userLogoutTime
    (also user.setUserLogoutTime)
    User logout time in minutes.
    u.setUserPicture( picture ) Set a user's picture
    userPickedEmailBox
    (also user.setUserPickedEmailBox)
    TRUE if the user has chosen whether to receive e-mail to a local e-mail address ( userMailbox ) or to have it forwarded to an external e-mail address ( userEmail ).
    userPictBorder
    (also user.setUserPictBorder)
    Show picture borders for this user.
    setUserPop3 ( value ) Set user access to POP3 services, where value can be 0, 1 or "default" to turn services off, on or reset-to-default.
    userRegisteredTd
    (also user.setUserRegisteredTd( dateObj ))
    Get/set the date when a user registered.
    userRespBodySize The font size for message bodies (0 if not specified by the user).
    userRespInfoSize
    (also user.setUserRespInfoSize)
    The font size for secondary information in a message (0 if not specified by the user).
    user.userMarkCurrent Mark a user's subscription list as current.
    userMaxData
    (also user.setUserMaxData)
    Maximum number of data bytes in a list of messages.
    userMaxEmailMessages
    (also user.setUserMaxEmailMessages)
    Maximum number of e-mail messages allowed in the user's inbox.
    userMaxMessages
    (also user.setUserMaxMessages)
    Maximum number of messages in a list of messages.
    userNextDigest Scheduled date/time when the next digest of messages will be sent for a user by e-mail, if there any message that is waiting to be sent for the user.
    userNextDigestCount Number of messages that are waiting to be sent for a user as a digest by e-mail.
    userNextDigestList List of messages queued for e-mail digest as message location unique IDs.
    userPop3IsSpecific
    (also user.setUserPop3IsSpecific)
    Check whether the default site settings are used, or whether the user property
    ( userPop3Specific ) is used to determine if a user has the POP3 e-mail account.
    userPop3Specific
    (also user.setUserPop3Specific)
    TRUE if the user preference is to have the POP3 e-mail service enabled for a user.
    userRespNameSize
    (also user.setUserRespNameSize)
    The font size for user names in a message (0 if not specified by the user).
    userShowPictures
    (also user.setUserShowPictures)
    Include user pictures with messages.
    userShowPrepared
    (also user.setUserShowPrepared)
    Show the "prepared for..." line at the top of each page.
    userSubscriptionList User subscription list, as displayed in the user preferences page.
    userUseEmoticons
    (also setUserUseEmoticons )
    Get/set a user's emoticons preference.
    userWebEmailIsSpecific
    (also user.setUserWebEmailIsSpecific)
    Check whether the default site settings are used, or whether the user property
    ( userWebEmailSpecific ) is used to determine if a user has a Web e-mail account.
    userWebEmailSpecific
    (also user.setUserWebEmailSpecific)
    TRUE if the user preference is to have the Web e-mail service enabled for a user.

    » User subscriptions
    mostRecentNewMessage Returns the date/time of the most recent new message from the last userNewMessages.
    u.userAddSubscriptions( subscriptionTypes ) Subscribes a user to the current location (folder or discussion) by the specified subscription types (i.e. allowing the user to receive new messages by web, by e-mail, and to receive digests of new messages by e-mail).
    u.userClearSubscriptions Clear a user's entire subscription list.
    u.userCountNewEmail Number of new (unread) email messages for a user
    u.userFullEmail
    (also user.setUserFullEmail)
    Send URL notification or full messages in email for user's e-mail subscriptions.
    u.userHasNewEmail Check whether a user has any new (unread) email messages.
    userHasSubscriptions Check whether a user has any subscriptions.
    userIsSubscribed User is subscribed to the current location.
    userIsSubscribedDigest Check whether a user is subscribed to the current location and he has checked the Email Digest option (i.e. the user gets an email digest of new messages, sent to the user on a regular basis).
    userIsSubscribedEmail Check whether a user is subscribed to the current location and he has checked the Email option (i.e. the user gets an email message every time a new message is posted).
    userIsSubscribedMsgs Check whether a user is subscribed to the current location and he has checked the Check Messages option (i.e. the user sees new messages when he clicks on Check Messages, and sees new messages in his Message Center page).
    u.userNewMessages Returns a list of all new message locations (one per discussion).
    u.userRemoveSubscriptions( subscriptionTypes ) Cancels a user's subscription methods (i.e. allowing the user to receive new messages by web, by e-mail, and to receive digests of new messages by e-mail) to the current location (folder or discussion).
    userSubscribe Subscribe a user to the current location.
    u.userSubscribeCleanup Clean up the user's subscription lists.
    userSubscribeDigest Subscribe a user to the current location (folder or discussion) and allow him to receive digests of new messages by e-mail.
    userSubscribeEmail Subscribe a user to the current location (folder or discussion) and allow him to receive new messages by e-mail.
    userSubscribeMsgs Subscribe a user to the current location (folder or discussion) and allow him to find new messages by logging in to the site and clicking on Check Messages, or through the Message Center page.
    userSubscriptions List of locations and whether they are subscribed to or not.
    userUnsubscribe Cancel a user's subscription to the current location.
    userUnsubscribeDigest Cancel a user's subscription method to the current location (folder or discussion) allowing the user to receive digests of new messages by e-mail.
    userUnsubscribeEmail Cancel a user's subscription method to the current location (folder or discussion) allowing the user to receive new messages by e-mail.
    userUnsubscribeMsgs Cancel a user's subscription method to the current location (folder or discussion) by logging in to the site and clicking on Check Messages, or through the Message Center page.

    » Selecting and sorting users.
    These commands let you select and sort the user directory or a subset.
    selectRandomUser Return a randomly selected user.
    selectUsers Return a list of users matching some selection criteria.
    userList.userSort( spec ) Sort a list of userIDs.

    » Current user access to current location
    userCanAddDiscussions User can add discussions to current location.
    userCanAddFolders User can add folders to current location.
    userCanAddMessages User can add messages to current location.
    userCanDelete User can delete the current location.
    userCanEdit User can edit to current location.
    user.userCanView User can view the current location.
    u.userHasNoAccess User has no access at the current location.
    u.userIsModerated User is moderated at the current location.
    u.userIsParticipant User is a participant at the current location.
    u.userIsReadOnly User is read-only at the current location.

    » Other registered user access to current location
    otherCanAddFolders Other registered users can add folders to the current location.
    otherCanAddDiscussions Other registered users can add discussions to the current location.
    otherCanAddMessages Other registered users can add messages to the current location.
    otherCanAddLinks Other registered users can add links to the current location.

    » Author information.
    This is about the author of the current folder, discussion, message, or personal information page.
    author The unique ID in hexadecimal of the current author. Used in author.function expressions.
    authorAlias Author's email alias.
    authorBio Author's biographical information.
    authorEmail E-mail address of author.
    authorField Author's additional fields.
    authorHasPicture Author has a picture.
    authorHomePage URL to author's home page.
    authorInfoUrl URL to author's personal information page.
    authorIsCgiUser Returns 1 the author is sysop/superhost or is a member of the cgiUser group .
    authorIsSuperhost Returns TRUE iff the user is in the superhost group, else false.
    authorIsSysop Current location created by the sysop.
    authorIsWctlUser Returns 1 the author is sysop/superhost or is a member of the wctlUser group.
    authorLine2 Author's secondary information.
    authorName Name of the author of the current location.
    authorPicture URL to author's picture.
    authorShow Show author information for the current location.
    authorUniqueID Author's unique ID in hexadecimal.
    authorUrls Author's favorite URLs, formatted.
    authorUrlsRaw Author's favorite URLs, unformatted.
    pathShowAuthor
    (also setPathShowAuthor)
    The Flag is the location in the database that tells whether the author's name should be shown when that location is displayed.
    setAuthor Set the current author to a particular user, and clear the current location.
    setPathAuthor Change the author of record for the current location.

    » Current location
    The current location is initially set to the folder, discussion, message, link, or chat room referenced by the user (the location portion of a Web Crossing URL). You can change the location by using the setPath location or other directives, and you can return to the original location at any time by using setPath with no location parameter.
    setLinkUrl Set the URL that a link entry points to.
    linkUrl Return the url that a link references.
    location Pathname of the current location.
    parentTitle Title of parent at specified level.
    parentTitleUrl Same as parentTitle, but URL quoted (blanks as %20, etc.). If the current location is a message, pathTitleUrl returns title or name of the message's discussion, URL-quoted.
    parentUrl URL to parent at specified level.
    setPath Set current location.
    setPathContentType Set content-type for a location.
    setPathFollowLink Move to the location pointed to by the current link and make the link part of the current pathname.
    setPathId( id ) Change the unique ID of the current location.
    setPathListable( flag ) Change the "hidden" status of a folder.
    setPathNoLink( location ) Set a location to a link instead of automatically following the link.
    pathIcon URL of icon for current location.
    pathIconParent URL of icon for parent of current location.
    pathIsChat Current location is a chat room.
    pathIsChild (loc) Returns TRUE if the current path is a child (at any level) of the specified location.
    pathIsDiscussion Current location is a discussion.
    pathIsFolder Current location is a folder.
    pathIsLink Current location is a link.
    pathIsMessage Current location is a message.
    pathIsNone Not at a valid location.
    pathIsParent (loc) Returns TRUE if the current path is a parent (at any level) of the specified location.
    pathIsTop At top level.
    pathItemNumber Item number for a discussion or message.
    pathMainRoom (also setPathMainRoom) Common room for a chat table.
    pathMoveTo Move a folder, chat room, link, node, discussion, or message to a new location
    pathMoveTreeTo Move a folder, chat room, link, node, discussion-tree, or message-tree to a new location
    pathTitle (also setPathTitle) Title or name of current location. If the current location is a message, pathTitle returns title or name of the message's discussion.
    pathTitleRaw Title or name of current location without any quoting.
    pathTitleUrl Same as pathTitle, but URL quoted (blanks are %20, etc.).
    setPathToGroup Set the current location to a user group.
    setPathToLink Move to the location pointed to by the current link, without making the
    link part of the current pathname.
    setPathToParent Move to the parent of the current location.
    setPathToTreeParent If the current location is a message, change the current location to the
    parent item of this message.
    pathTreeTitle Returns the title of a message (i.e. the "tree" title).
    pathUrl Returns a URL to the current location.
    pathUrlCmd( command ) Returns a URL for the current location with the specified command code or macro name.
    pathUrlCmdFull( command ) Returns a full URL (e.g. with http(s)://domain/...) for the current location with the specified command code or macro name.
    pathUrlFull Returns a full URL (e.g. with http(s)://domain/...) for the current location.

    » Current location values
    linkDescription
    (also setLinkDescription)
    Descriptive text for a link.
    linkShowDescription
    (also setLinkShowDescription)
    Current location is a link that shows its description.
    pathAddDiscussions
    (also setPathAddDiscussions)
    Allow discussions to be added.
    pathAddSubfolders
    (also setPathAddSubfolders)
    Allow subfolders to be added.
    pathAddSubfoldersOnce
    (also setPathAddSubfoldersOnce)
    Allow subfolders, but they may only contain discussions.
    pathArchiveDays
    (also setPathArchiveDays)
    For a folder, the number of days before a discussion expires.
    pathArchiveFolder
    (also setPathArchiveFolder)
    If disposition for an elapsed discussion is to move to a folder, then this is the unique ID of the destination folder.
    pathArchiveType Disposition of an elapsed discussion: move to a folder, delete, or purge.
    pathBackground
    (also setPathBackground)
    Background, unformatted. (deprecated - see pathBodyTag )
    pathBanner (also setPathBanner) Banner, unformatted.
    pathBody (also setPathBody) Body text, unformatted.
    pathBodyFormatted Body text, formatted.
    pathBodyRaw Fetch raw data from folder headings, discussions, and messages.
    pathBodyTag Background, unformatted, for the current location.
    pathCreatedDate
    (also setPathCreatedDate)
    Creation date.
    pathFooter (also setPathFooter) Footer, unformatted.
    pathHosts
    pathHostIds
    List of hosts for the current location.
    pathIsDeleted Has a message been deleted.
    pathIsNew Returns true if the current location is a folder, discussion, or message, and this item has not yet been read by the user.
    pathIsPermanent (also setPathPermanent) Checks whether a discussion is permanent, i.e. never expires.
    pathIsPlugin Checks whether an object is a plugin.
    pathListItems (also setPathListItems) List items in a folder.
    pathMarkAsRead
    pathMarkAsReadAll
    Mark a location as having been read, or a location and all of its children
    pathMessage (also setPathMessage) Message text (if a message item), unformatted.
    pathMimeFrom (also setPathMimeFrom) The "From" header for incoming MIME-formatted messages
    pathMimeOther (also setPathMimeOther) Other heading fields/values for incoming MIME-formatted messages. From/To are kept separately, all other header values are in other, including Reply-To. (pathMimeReplyTo is a convenience routing to extract the Reply-To value from the pathMimeOther values.)
    pathMimeReplyTo The "Reply-To" header for incoming MIME-formatted messages
    pathMimeTo (also setPathMimeTo) The "To" header for incoming MIME-formatted messages
    pathModeratedUsers
    pathModeratedUserIds
    List of moderated users for the current location.
    pathModifiedDate Last modified date.
    pathNetHasObjectionable 1 if the current location has an objectionable word list or is checking for phone numbers in posts, 0 otherwise
    pathNetObjectionable Actual objectionable-word list used for the current location
    pathNetObjectionablePhone 1 if the current location is checking for phone numbers, otherwise 0
    pathNetUrlHttpDomain Returns the net "http(s)://domain" for the current location
    pathNoAccessUsers
    pathNoAccessUserIds
    List of users with no access to the current location.
    pathNoSubfolders
    (also setPathNoSubfolders)
    No subfolders may be added.
    pathObjectionable (also setPathObjectionable) Objectionable word list for a specific location in the pathname hierarchy
    pathParticipants
    pathParticipantIds
    List of participants for the current location.
    pathReadOnlyUsers
    pathReadOnlyUserIds
    List of read-only users for the current location.
    setPathShowByUserPreferences Use this for threading.
    pathSortSeq (also setPathSortSeq)) Sort sequence for folder items.
    pathSource Track how discussions and messages were posted.
    pathTemplate (also setPathTemplate) Template for location (i.e. folder template).
    pluginCreate( title ) Create a new plugin object in the current folder.

    » Current location nested contents
    newDiscuss Returns HTML list of new discussion titles, with hyperlinks and graphical path dividers.
    pathChatCount Chat rooms in a folder.
    pathDepth The nesting depth in the hierarchical threaded tree.
    pathDiscussionCount Nested discussion count.
    pathFolderCount Nested folder count.
    pathHasDiscussions Current location has nested discussions.
    pathHasFolders Current location has nested folders.
    pathHasItems Current location has nested items.
    pathHasMessages Current location has nested messages.
    pathHasOneDiscussion Current location has exactly one nested discussion.
    pathHasOneFolder Current location has exactly one nested folder.
    pathHasOneMessage Current location has exactly one message.
    pathHasNewMessages Current location has new messages for the current user.
    pathHasOneNewMessage Current location has exactly one new message for the current user.
    pathLinkCount Links in a folder.
    pathLinkToDiscussionCount The number of links to folders.
    pathLinkToFoldersCount The number of links to folders.
    pathMessageCount Count of nested messages, igoring messages that are moved or deleted-and-not-showing for the current user
    pathMessageTotal Total number of items in a discussion, including all deleted and moved messages
    pathNewMessageCount Count of new messages for the current user.

    » Site information.
    copyright The copyright string for the program.
    hostIsTemplate Returns TRUE if the site is configured so that sysop and host posts are evaluated as WCTL macros.
    pictSizeButton WIDTH and HEIGHT for button icon.
    pictSizeConversation WIDTH and HEIGHT for conversation icon.
    pictSizeDivider WIDTH and HEIGHT for pathname divider icon.
    pictSizeFolder WIDTH and HEIGHT for folder icon.
    pictSizeInlineButton WIDTH and HEIGHT for inline button icon.
    pictSizeLink WIDTH and HEIGHT for inline link icon.
    pictSizeOutline WIDTH and HEIGHT for outline button icon.
    pictSizePlugin WIDTH and HEIGHT for plugin icon.
    pictSizeSite WIDTH and HEIGHT for site icon.
    platform Site platform.
    programDesc A short string that describes the program.
    serveInfoPictures Site is serving user pictures in the personal information page only.
    servePictures Site is serving user pictures everywhere.
    setSite86edEmail Set the list of email addresses that are not allowed for registered users at this site.
    setSiteCertificate Install a new certificate for the server
    setSiteCalendar Set path to site calendar directory
    showsiteBuildDateInt Return the current build date.
    siteDbVersion Return the current database internal version number.
    setSiteDocs Set path to site documentation files directory
    setSiteEmail Set site email address.
    setSiteFullBackground( bg ) Set site background string.
    setSiteHelp Set path to site help files directory
    setSiteHtmlActive( flag ) Set whether or not the site is serving HTTP (direct web service or DWS)
    setSiteHttpAllowDeny( list ) Set the allow/deny list for HTTP access
    setSiteHttpDataFiles( list ) Set the directory for serving static html files
    setSiteIcons Set path to site icons directory
    setSiteImages Set path to site images directory
    setSiteLogoutTime( minutes) Set the default automatic logout time.
    setSiteNntpAllowDeny( list ) Set the NNTP allow/deny list.
    setSiteWebMap( table ) Set the web service mapping and redirection table.
    setSiteResponseTimeFormat( format ) Set the response time format for the site.
    setSiteTimeFormat( format ) Set the default time format for the site.
    site86edEmail Get the list of email addresses that are not allowed for registered users at this site.
    siteAllowsHttpBasic TRUE iff site is using HTTP basic authentication.
    siteBuildDate Returns build date of binaries of current instance.
    siteCanAutoRegister Users may auto-register.
    siteCanSearch Search button is enabled in nested folders and discussions.
    siteCanSearchTop Top-level search button is enabled.
    siteCertExpires Returns number of days to expire, -1 if no limit, 0 if expired.
    siteCertIsOld Returns 1 if the certificate is for an old version, else 0.
    siteCertIsSeats Returns 1 if the certificate is seat-based.
    siteCertLicense Returns license (Platinum, 5T, 5S, etc).
    siteCertLimitItems Returns item limits, LE 0 for no limit.
    siteCertLimitSeats Returns seat limits, LE 0 for no limit.
    siteCertLimitPages Returns page limits, LE 0 for no limit.
    siteCharSet (also setSiteCharSet) Returns the site character set.
    siteChatSeats Returns number of chat seats, LE 0 for no limit.
    siteCreateDiscussChoice Sysop has enabled users to choose the type of discussion at the time they create it.
    site.cssRev Counter incremented on template cache resets.
    siteDbId Returns the unique database ID for this site.
    siteDiscussionShowAuthor TRUE iff the author of a discussion is shown in the discussion's heading.
    siteDiscussionShowSysop TRUE iff the sysop is author of a discussion and is shown in the discussion's heading.
    siteDocs Sysop-documentation-directory URL string from sysop general settings.
    siteLogEmailFilename return the value of the "Log Email" filename
    siteEmail Site email address (same as sysopEmail).
    siteEmailDomains Returns the list of local email domains.
    siteEmailValidate E-mail validation is enabled for this site.
    siteEmailValidateTemplate
    setSiteEmailValidateTemplate
    Get/set the email validation template
    siteEmoticons
    setSiteEmoticons
    Get/set the URL of the directory for emoticons.
    siteEmoticonsDefinition
    setSiteEmoticonsDefinition
    Get/set the site emoticons mapping.
    siteFolderShowAuthor TRUE iff the author of a folder is shown in the folder's heading.
    siteFolderShowSysop TRUE iff the sysop is show in folder headings when this user is the author.
    siteFullBackground Returns site's background setting string.
    siteHasPasswordForm TRUE iff site has a 2-stage login using a separate password form.
    siteHelp End-user help-directory URL string from sysop general settings.
    siteHost Domain name of the Web server used to access Web Crossing.
    siteHostAccessEdit TRUE iff hosts can edit their access lists.
    siteHostDirectoryDelim Returns the directory delimiter for the current host (/ for Unix, \ for Windows, : for Mac).
    siteHostFull Full access/domain/port of the Web server used to access Web Crossing.
    siteHtmlActive Returns whether or not the site is serving HTTP (direct web service or DWS)
    siteHtmlCompressionActive
    (also setSiteHtmlCompressionActive
    Get/set the HTTP compression setting
    siteHtmlRemove Return a list of the html tags removed for this site
    siteHttpAllowDeny Return the allow/deny list for HTTP access
    siteHttpDataFiles Return the directory for serving static html files
    siteIcons Icons-directory URL string from sysop general settings.
    siteImages Buttons-directory URL (used to be all images) string from sysop general settings.
    siteImapAllowDeny
    setSiteImapAllowDeny( list )
    Returns the IMAP allow/deny list.
    siteIp Returns site IP address.
    siteIsSecure Site is running through a secure server.
    siteLicensee Site licensee name.
    siteLogEmailFilename return the value of the "Log Email" filename from the sysop control panel.
    siteLogoutTime The default automatic logout time in minutes.
    siteLogPort returns the current port being logged, 0 for all, -port for all except port, or a specific port number
    siteMaxDiscussHeading The maximum number of characters allowed for discussion headings.
    siteMaxEmailMessages
    setSiteMaxEmailMessages(n)
    Number of email messages stored for a user.
    siteMaxFolderHeading The maximum number of characters allowed for folder headings.
    siteMaxItemsPerPage returns the number of items displayed per page in a folder or threaded-discussion summary.
    siteMaxMessage The maximum number of characters allowed in a message.
    siteMaxMessages returns the number of messages displayed in a discussion page.
    siteMaxTitle The maximum number of characters allowed in a folder or discussion title.
    siteMisc Miscellaneous-files-directory URL string from sysop general settings.
    siteMySubscribers Returns true if the site allows users to subscribe other users to their discussions .
    siteName
    setSiteName( name )
    Site name/title.
    siteNntpAllowDeny Returns the NNTP allow/deny list.
    siteOldDbVersion Return the prior database internal version number.
    siteOneSearch Search the Net via Forum One.
    sitePathLimit
    setSitePathLimit( limit )
    Returns the maximum length of a pathname before switching to query-style urls.
    sitePop3AllowDeny
    setSitePop3AllowDeny( list )
    Returns the POP3 allow/deny list.
    siteRelayAfterLogin
    setSiteRelayAfterLogin( list )
    Returns the number of minutes where a login is considered recent.
    siteRelayAllowDeny
    setSiteRelayAllowDeny( list )
    Returns the SMTP relay allow/deny list.
    siteResponseTimeFormat Site's time formatting for messages.
    siteScriptName
    setSiteScriptName( value )
    Get/set the script name.
    siteServerName
    setSiteServerName( value )
    Get/set the server name.
    siteSmtpAllowDeny
    setSiteSmtpAllowDeny( list )
    Returns the incoming SMTP allow/deny list.
    siteStripsHtml TRUE if html is stripped from all non-sysop/non-host posts.
    siteSysopIsTemplate TRUE if the site is configured so that sysop posts are evaluated as WCTL macros.
    siteSysopUseQuickEdit TRUE if the site uses the quick-editor for host/sysop posts.
    siteTemplateDir
    setSiteTemplateDir
    Get/set the site's template subdirectory path.
    siteTemplateErrors Return the error messages for the current templates.
    siteTemplateStatus Return the template status.
    siteTimeFormat Site time format.
    siteTimeZoneSuffix Site time zone suffix, derived from the current siteTimeFormat.
    siteTitle
    setTitleTitle("title")
    Site title.
    siteToolbarAcross Number of buttons across for old-style toolbar.
    siteUrl URL to top-level site page.
    siteUseCookies Site is configured to use cookies.
    siteUseEmailScript TRUE iff site uses a script to get a user's e-mail address.
    siteUseEmoticons TRUE iff use of emoticons is enabled.
    siteUseQuickEdit TRUE iff site uses the quick-editor for user posts.
    siteUseTemplates Return 1/0 when the site's templates are on/off.
    siteUserRegisters TRUE iff site allows users to register other users.
    siteUsersSetAliases TRUE iff site allows users to set their own email aliases.
    siteUseWctlUsers
    setSiteUseWctlUsers ( f )
    Get/set whether the wctlUsers group is used to control access to templates
    siteWebFileLimit
    setSiteWebFileLimit( limit )
    Returns the maximum length of a webfile pathname before switching to query-style urls.
    siteWebMap Returns current web service mapping and redirection table.
    siteWrapperInside Returns 1/0 for inside/other.
    siteWrapperMode
    siteSetWrapperMode( v )
    Returns -1/0/1 for outside/none/inside.
    siteWrapperOutside Returns 1/0 for outside/other.
    siteVersion Returns version number of current instance.
    statusExtras The output of this macro is appended to the html section of the returned value from the 199@@ command.
    statusExtrasXml The output of this macro is appended to the XML section of the returned value from the 199@@ command.
    sysopEmail Sysop e-mail address.
    urlBase /...webx? portion of a Web Crossing URL.
    urlBaseSlash The URL pathname for the root WebX folder.
    urlBaseSlashFull Same as % % pathNetUrlHttpDomain & urlBaseSlash % %
    useChatService Chat services are enabled for this site.
    userIsHttpBasic TRUE iff the current user was authenticated through HTTP Basic.
    usersCount Number of registered users.
    version Web Crossing version string.
    waitingForSynch Slave server is waiting for synch with master to complete.

    » Enclosures
    pathDocumentImgHeight Returns the height of a document or attachment that is an image.
    pathDocumentImgWidth Returns the width of a document or attachment that is an image.
    pathDocumentImgWidthHeight Returns the width and height of a document or attachment that is an image.
    pathDocumentIsImage TRUE iff the current location is an enclosure document.
    pathDocumentIsText TRUE iff the current location is a text enclosure document.
    pathDocumentName Original filename iff the current location is an enclosure document.
    pathEnclosures Returns list of enclosures.
    pathAddEnclosure Add an enclosure to a location (duplicating one already attached somewhere else)
    pathRemoveEnclosure Remove an enclosure from a location
    pathHttpDownloads
    (also setPathHttpDownloads)
    TRUE iff the current location supports Web-based downloads.
    pathHttpUploads
    (also setPathHttpUploads)
    TRUE iff the current location supports Web-based uploads.
    pathInheritsEnclosures
    (also setPathInheritsEnclosures)
    TRUE iff the current location inherits its enclosure settings from its parent.
    pathIsDocument TRUE iff the current location is a document.
    siteHttpDownloads TRUE iff the site supports Web-based downloads.
    siteHttpUploads TRUE iff the site supports Web-based uploads.

    » Moderated messages
    s.isObjectionable Returns TRUE iff a string contains objectionable words.
    s.markObjectionable Inserts tags before and after all possibly objectionable words in a string.

    » Selecting and sorting folder and discussion contents.
    pathSelect Select items from a folder or discussion.
    pathSort Sort a list of pathname items.

    » Queue for moderated messages
    item.moderatedApprove Approve the moderated item, post it to its parent, and remove it from the moderated list.
    item.moderatedApprovePath Approve a moderated item and return the pathname of the new folder/discussion/message.
    item.moderatedAuthor Return authorID of the moderated item.
    item.moderatedBody Return body text.
    item.moderatedDate Return date, default format is as a date object.
    item.moderatedDecline Decline to approve a moderated item, destroy it, and remove it from the moderated list.
    item.moderatedExists Return TRUE iff item still exists.
    moderatedLookup Return blank-delimited list of moderated items that can be processed by this user.
    moderatedLookupLocation Return blank-delimited list of moderated items that can be processed by this user. Only returns items contained (at any level) in the current location.
    item.moderatedSetPathToParent Set the current location to the parent of a moderated item. (Used to be named moderatedParentOpen.)
    item.moderatedShowAuthor Returns "Show Author" flag for moderated item.
    item.moderatedTitle Return the title of the moderated item.
    item.moderatedType Return "folder," "discussion," or "message."
    item.moderatedValue( name ) Return a custom path variable set for a moderated item.
    item.moderatedSetValue( name, value ) Set a custom path variable set for a moderated item.

    » Group commands
    "groups".groupCount Examine the master list of all groups.
    groupCreate( name ) Create a new user group.
    groupDestroy( name ) Destroy a user group.
    groupname.groupFirst( prefix ) First group name matching a prefix
    "groups".groupItem Returns the group ID of the indexed item.
    groupname.groupLast( prefix ) Last group name matching a prefix
    groupName.groupItem Return the user ID of the indexed item.
    groupNameCount Return number of items in a group.
    groupLookup Return group handle if found.
    u.isGroup Return TRUE iff the user-handle-ID "u" is a group.
    u.userName Return users's name, or a group's name for use with groupCount or groupItem, etc.

    » Chat rooms.
    broadcast Broadcast to all tables in a chat room.
    chatMessages List of messages from the other chat users.
    chatTables List of chat tables.
    chatTableUsers Return the total number of users at a chat table.
    chatMembers List of chat members in this particular room.
    enterChat Enter a chat room, text-chat only.
    enterChatTable Enter a specific overflow table, text-chat only.
    enterPrivateRoom( id ) Same as the "enterRoom" command, except that the parameter is the id of the room created with an earlier newPrivateRoom command.
    enterRoom Enter a chat room, text plus other services if any.
    enterRoomTable Enter a specific overflow table in a chat room, text plus other services if available.
    newPrivateRoom( params ) Create a private, unnamed chat room.
    pathHasTables Current location is part of a chat room with multiple tables.
    pathIsAnonymous
    (also setPathIsAnonymous)
    Current location is a chat room that allows anonymous users.
    pathIsChat Current location is a chat room or table.
    pathIsPlayLoopback
    (also setPathIsPlayLoopback)
    Same as playback loop mode for a chat room.
    pathMaxUsers (also setPathMaxUsers) Maximum users per table for a chat table.
    pathPlayFile (also setPathPlayFile) Playback file for a chat table.
    pathPlayMillisecs
    (also setPathPlayMillisecs)
    Playback total time in milliseconds.
    pathRecordFile (also setPathRecordFile) Recording file for a chat table.
    privatePlayback Enter a private playback table.
    roomError Error message if room could not be entered.
    roomHandle Handle ID for client to use in call to chat Fanout Server.
    roomIp IP address of Fanout Server.
    roomIsHost Test whether the current user is a host for HTML chat pages.
    roomPort Port to call Fanout Server.

    » Authentication
    alwaysCertificate Generate an authentication (URL) certificate even if the user came in through a cookie.
    certificate Current user's authentication certificate.
    certificateLogout Immediately expire a user's authentication certificate.
    siteUseWebAuthenticate Return 1 IFF the site uses either HTTP basic or HTTP digest authentication, or both.
    siteUseWebBasic (also setSiteUseWebBasic Get/set the site setting to use HTTP Digest authentication.
    siteUseWebSecureSessions (also setSiteUseWebSecureSessions Get/set the site setting to use SSL for registered user sessions.
    sessionIsDigest Return 1 IFF the current request is digest authenticated.
    sessionIsBasic Return 1 IFF the current request is basic authenticated.
    sessionWebAuthSlot Returns the slot number for an authenticated session.
    sessionWebAuthCert Returns the session certificate for an authenticated session.
    sessionWebAuthUserID Returns the user ID for an authenticated session.

    » Browser information.
    browserCanUseLabels Client browser can use JavaScript labels.
    imgButton Client browser supports image buttons.
    userAgent Client browser "user agent" string.

    » Error Handling
    error Error message for error page.
    errorTitle Suggested title for error page.

    » Forms processing
    allInputAsHidden( exclude ) Add all input name/value pairs as hidden fields.
    line.fieldvalue( name ) Extract a field value from a MIME header line.
    formGetNames Return all names from a form. Each name is URL quoted and space delimited.
    formGetNameValues Return all name=values from a form. Each value is URL quoted and space delimited using an '=' between the name and value.
    formGetValues Return all values from a form. Each value is URL quoted and space delimited.
    getValue("name") or
    form.name
    Get a field from a post.
    formHeader("name") Return the MIME-header for a field posted through a multi-part MIME envelope.
    hasValue Check for a field in a post.

    » CGI environment variables and HTTP response values
    addResponseHttp Add a keyword=value pair to the HTTP response being generated.
    envir Get the value of a CGI environment variable.
    envirCookie Get the value of a cookie in the CGI request from the client.
    envirList Get a list of CGI environment variables.
    set httpDataFromServer url.http Issue an HTTP request and wait for the response.
    set httpDataFromServer url.httpReq Allows you to generate a POST or other requests.

    » Current page type
    loginIs Kind of login page being prepared.
    pageIs Kind of page being prepared.
    registerIs Kind of registration page being prepared.

    » Message item, discussion heading, and folder heading information.
    This information is available while laying out a message, discussion heading, or folder heading.
    discussionHeader Formatted header (not including banner or title) for a discussion
    itemBodyFontSize Font size for item body.
    itemCanDelete Item can be deleted by current user.
    itemCanEdit Item can be edited by current user.
    itemCount Total number of items in this list.
    itemDate Creation date.
    itemInfoFontSize Font size for secondary information.
    itemNameFontSize Font size for author name.
    itemNumber Item number.
    itemShowOperations Show edit and/or delete buttons.
    itemShowPictBorder Show border around picture in this item.
    itemShowPictures Show author picture in this item.
    itemShowTimeDate Show time/date.
    itemIsThreaded Set if the display is to be presented as a threaded discussion, instead of linear
    itemBaseDepth This is the depth of the "root" message for the current view. This allows you to display things relative to some node in the message hierarchy.
    msgListThreaded TRUE iff the message list is being laid out threaded.
    (Only meaningful in messageListBefore and messageListAfter macros.)

    » Standard layouts.
    Standard layouts for folders or discussion messages.
    folderListAfter Show HTML after a list of items in a folder.
    folderListBefore Show HTML before a list of items in a folder.
    folderListItem Show HTML for an item in a folder.
    folderListEmpty Show HTML for an empty folder list.
    pathItems Show items.
    pathItemsAll Show all items.
    pathItemsAreAtEnd Items are at the end of the list.
    pathItemsInContext Show items in context.
    pathItemsPrevious Show items previous.
    pathStandardHeading Show standard heading for top-level, folder, or discussion.
    responsePost Standard form to post a message.
    unknownUserHelp Standard help text for an unknown user.

    » User interface directives.
    backPath Default parent location with links to parent folders.
    backpathContext Context for the backPath macro to evaluate in (e.g. the icons to use) .
    background Current background; bodyTag gives the identical results.
    banner Banner for current location, formatted.
    backPathThis Default current location with links to parent folders.
    bodyTag Current background; background gives the identical results.
    editHelp Edit help text, formatted.
    footer Footer for current location, formatted.
    greetingNews Greeting news template, formatted.
    loginNews Login news template, formatted.
    message Current message item in standard format.
    pad Insert padding in <pre> sections.
    passwordNews Password news template, formatted.
    preparedFor Default Prepared for... heading or none.
    registerError Registration error message.
    registeredHeading Registered heading, formatted.
    registerHeading Registration heading, formatted.
    showPreparedFor Show Prepared for... line for current user.
    toolbar Standard toolbar.
    toolbarAfter HTML to insert after toolbar.
    toolbarBefore HTML to insert before toolbar.
    toolbarBetween HTML to insert between toolbar rows.

    » Message list context.
    This information is available when a message list is being laid out.
    cmdIsShowAll True if the display command is Show All.
    cmdIsShowInContext True if the display command is Show In Context.
    cmdIsShowPrevious True if the display command is Show Previous.
    msgListBetween Eval to code "between" messages.
    msgListCountFollowing Count of following items.
    msgListCountPrevious Count of preceding items.
    msgListFirst Actual first item in the current slice of the discussion
    msgListFollowing %% location %% of following item or none.
    msgListEmpty Message list is empty.
    msgListLast Actual last item in the current slice of the discussion
    msgListPrevious %% location %% of previous item or none.

    » Login and registration actions
    actionPath Action path for login and registration.
    actionPathCommand Command code in action path.
    doActionPath Action path for login and registration, with embedded certificate.
    loginPassword (password) Password with which user is attempting to log in; used by loginAuthenticateFilter
    loginProtocol ("nntp") Protocol by which user is attempting to log in; used by loginAuthenticateFilter
    loginUsername (username) Username with which user is attempting to log in; used by loginAuthenticateFilter

    » Editing information.
    (For registration, user preferences, new folder, new discussion, etc.)
    editBanner Banner text, unformatted.
    editBackground Background text, unformatted.
    editEmail E-mail address.
    editFolderIcon Type of icon for a link.
    editFooter Footer text, unformatted.
    editHeading Heading.
    editMessage Message.
    editName User name.
    editPassword Password.
    editTemplate Template.
    editTitle Title.
    moderatedDiscussion Display moderated discussion in default format.
    moderatedFolder Display moderated folder in default format.
    moderatedMessage Display moderated message in default format.
    editShowAuthor True to show the item's author.
    editShowDescription True to show a link's description.
    editSortSeq The sort sequence value.
    editUrl A link's URL.

    » Preferences editing information
    prefsEmailError Error message for e-mail change or none.
    prefsNewEmail New e-mail address.
    prefsNewName New user name from preferences form.
    prefsPasswordError Password change error to report.
    prefsRenameMessage Error message for rename or none.
    prefsPasswordMessage Message for password change.
    prefsSubscrUpdated Message for subscription list update.
    prefsSysopCertificate Sysop authorization certificate when the sysop is changing a user's preferences.

    » Search commands
    name.custIndexAddRaw ( value keywordData ) Add items to a custom index.
    name.custIndexAddStemmed ( value keywordData ) Add items to a custom index.
    name.custIndexClose Close a named custom index file.
    name.custIndexExists Test whether a named custom index file exists.
    name.custIndexLookupRaw ( keywordData ) Look up items in a non-stemmed custom index.
    name.custIndexLookupStemmed ( keywordData ) Look up items in a stemmed custom index.
    name.custIndexRemoveRaw ( value keywords ) Remove items from a custom index.
    name.custIndexRemoveStemmed ( value keywords ) Remove items from a custom index.
    searchItems Total number of matching items found by the last pathSearch command.
    siteSearchIsReady TRUE iff searches can be performed at this time.
    siteIndexSearchStatus Current status of search, such as indexing status.
    pathSearch Returns a list of items matching a search query.

    » Threaded Messages Display
    pathInheritsByUserPreferences TRUE if current location inherits its threading settings from its parent.
    pathNetMessageTitle TRUE if net effect of all settings is to request a title for all messages.
    pathNetReplyTo TRUE if net effect of all settings is to show a Reply button with each message.
    pathNetSummaryButton TRUE if net effect of all settings is to show an Outline button next to discussions in their folder listing.
    pathNetTreeView TRUE if net effect of path hierarchy settings (ignoring user settings) is to show as threaded messages.
    pathShowByUserPreferences TRUE if threading display is from user preferences.
    siteUserDefaultReplyTo TRUE if site default is for a user to see a Reply button with each message.
    siteUserDefaultThreading TRUE if site default is for a user to view as threaded messages.
    u.userReplyTo TRUE if user preference is to show a Reply button with each message.
    u.userSummaryButton TRUE if user preference is to see an Outline button next to discussions in their folder listing.
    u.userThreading TRUE if user preference is to view as threaded messages.
    u.userThreadingBySite TRUE if user uses site settings for threading.
    siteUserDefaultSummaryButton TRUE if site default is for a user to see an Outline button next to discussions in their folder listing.

    » Newsgroups
    editNewsgroup Name of newsgroup when editing an Add Folder or Edit Folder form.
    firstLocal Save the first local new message found by userNewMessages.
    pathNewsGetFrom
    (also setPathNewsGetFrom)
    The external server for mirroring that we get new messages from. This value is a ip address and optional port, such as "206.52.123.1:119."
    pathNewsGetMode (also setPathNewsGetMode) Get messages from an external news server.
    pathNewsGetPassword
    (also setPathNewsGetPassword)
    The the login password for mirroring, when we pull new messages.
    pathNewsGetUsername
    (also setPathNewsGetUsername)
    The login username for mirroring when pulling new messages.
    pathNewsMode (alsosetPathNewsMode) Control how we mirror a Web Crossing folder/newsgroup with external servers.
    pathNewsSendPassword
    (and setPathNewsSendPassword)
    The login username for mirroring when sending new messages.
    pathNewsSendTo (also setPathNewsSendTo) IP of external server for mirroring, that we send new messages to.
    pathNewsSendUsername
    (also pathNewsSendUsername)
    Login username for mirroring when sending new messages.
    pathNntpPostsOk
    (also setPathNntpPostsOk)
    Allow external newsgroup clients to post messages without logging in.
    siteHasNews TRUE iff news service is enabled for the site.

    » E-mail list mirroring
    editEmailFrom Setting for pathEmailFrom during Add Folder or Edit Folder
    editEmailMirror Setting for pathEmailMirror during Add Folder or Edit Folder.
    editEmailPostThru Setting for pathEmailPostThru during Add Folder or Edit Folder
    editEmailPW Setting for pathEmailPW during Add Folder or Edit Folder.
    editEmailReply Setting for pathEmailReply during Add Folder or Edit Folder.
    editEmailReplyTo Setting for pathEmailReplyTo during Add Folder or Edit Folder
    editEmailStripSig Setting for pathEmailStripSig during Add Folder or Edit Folder
    pathEmailFrom (also setPathEmailFrom) From value for messages forwarded to the list, or blank to use the user's e-mail address.
    pathEmailMirror (also setPathEmailMirror Mailbox from which to read e-mail list messages.
    pathEmailNotify Send emails to subscribed users, and post-through to any external email list.
    pathEmailPostsOk (also setPathEmailPostsOk) TRUE if messages posted by email are permitted.
    pathEmailPostThru (also setPathEmailPostThru) TRUE if messages posted to Web Crossing are forwarded to the e-mail list.
    pathEmailPW Password for pathEmailMirror mailbox.
    pathEmailReply (also setPathEmailReply) Address to which to send messages posted directly to Web Crossing.
    pathEmailReplyTo (also setPathEmailReplyTo) Reply-to value for messages forwarded to the list, or blank to use the user's e-mail address.
    pathEmailStripSig Signature to strip from tail of incoming messages.
    siteHasEmailServices TRUE iff site has e-mail services (i.e. DNS server address is available).
    siteHasWebEmail TRUE iff site has e-mail boxes (i.e. Web-based email is available).

    » Source/Mirror cluster
    siteIsSlave TRUE if instance is a mirror in a source/mirror cluster

    » Modules
    moduleName Module name
    moduleVersion Module version
    setModuleName Set the module name
    setModuleVersion Set the module version

    » Filters
    filterNeedsUrlNotify Variable for the emailFilterIndividual filter.

    » Graphics

    These directives all start with the siteImages or siteIcons URL. If langDir is present and non-blank, this is the language directory, and is inserted one level up from the lowest-level directory. For example, if siteImages is "/Images/b1", them "ok.gif".siteImagesUrl( "French" ) is "/Images/French/b1/ok.gif".

    The width/height of the image are obtained by reading and parsing the image file to extract this information. If the file is not present, or is not a legal gif/jpeg, then these are not included in the tags, and are returned as 0 by the xxxWidth/Height directives. Once the width/height have been read and parsed, they are cached in the server for later use. Resetting the template files will reset this cache. So if you upload new icons/images, you need to reset the webx.tpl cache. The xxxImg directive returns a full <img...> tag, with the src field coming from the button/image name, the current siteImages/Icons, and the langDir values. If alt is present and non-blank, then an alt="alt" attribute is added. If attrs is present and non-blank, then this value is added at the end of the tag as additional attributes.

    If spacerToWidth is present, then a transparent spacer (/Images/m/t.gif) is added to make the total width of the image and space be spacerToWidth.

    button.imageSize Returns "WIDTH=w HEIGHT=h" for a file in the images directory for the current location
    icon.imageSize Returns "WIDTH=w HEIGHT=h" for a file in the icon directory for the current location
    filename.fileImgSize Returns "WIDTH=w HEIGHT=h" for any gif/jpeg file
    button.siteIconsImg Returns a full image <img...> tag for a file from the site icons directory.
    button.siteIconsUrl Returns the URL of a file from the site icons directory.
    button.siteIconsWidth Returns the width in pixels of a file from the site icons directory, or 0 if the size is not available.
    button.siteIconsHeight Returns the height in pixels of a file from the site icons directory, or 0 if the size is not available.
    button.siteIconsInput Returns a full <input type="image"...> tag for a file from the site icons directory
    button.siteImagesImg Returns a full image <img...> tag for a file from the site images directory.
    button.siteImagesUrl Returns the URL of a file from the site images directory.
    button.siteImagesWidth Returns the width in pixels of a file from the site images directory, or 0 if the size is not available.
    button.siteImagesHeight Returns the height in pixels of a file from the site images directory, or 0 if the size is not available.
    button.siteImagesInput Returns a full <input type="image"...> tag for a file from the site images directory

    » Enabled Features and Licenses

    The site "enable" directives get or set the value that indicates whether a particular service is available in a Web Crossing instance. If the current license does not enable some service, then the "siteXXX" value will always return false, regardless of what it is set to. A service may be installed and licensed, but not enabled in the control panel. The license "enable" directives indicate whether the site is licensed for a particular service.

    siteUseDiscussions
    (also setSiteUseDiscussions)
    Get/set the flag for discussion usage
    siteHtmlActive
    (also setSiteHtmlActive)
    Get/set whether or not the site is serving HTTP (direct web service or DWS)
    sitePop3
    (also setSiteHasPop3)
    Get/set the flag for POP3 service
    siteImap
    (also setSiteHasImap)
    Get/set the flag for Imap service
    siteHasWebEmail
    (also setSiteHasWebEmail)
    Get/set the flag for Webmail service
    siteHasNews
    (also setSiteHasNews)
    Get/set the flag for NNTP service
    useChatService
    (also setUseChatService)
    Get/set the flag for chat service
    siteHasFtp
    (also setSiteHasFtp)
    Get/set the flag for FTP service
    siteSmtp
    (also setSiteHasSmtp)
    Get/set the flag for SMTP service
    siteSmtpForwarding
    (also setSiteHasSmtpForwarding)
    Get/set the flag for SMTP forwarding service
    licenseHasDiscussions Site is licensed for discussion usage
    licenseHasHtml Site is licensed for serving HTTP (direct web service or DWS)
    licenseHasPop3 Site is licensed for POP3 service
    licenseHasImap Site is licensed for Imap service
    licenseHasWebEmail Site is licensed for Webmail service
    licenseHasNews Site is licensed NNTP service
    licenseHasChatService Site is licensed for chat service
    licenseHasFtp Site is licensed for FTP service
    licenseHasSmtp Site is licensed for SMTP service
    licenseHasSmtpForwarding Site is licensed for SMTP forwarding service

    » String Operations
    String manipulation
    count Number of characters in a string.
    cr A carriage-return string.
    crlf A carriage-return/line-feed string.
    emoticonsReplace Replace emoticon patterns in a string.
    eval Evaluate a string as a WCTL expression.
    evalTemplate Evaluate a string as a WCTL template.
    getchar Get a character from a string.
    hardWrap Convert a string to preserve linebreaks and indents. All hard linebreaks are converted to either <br> or <p> and all indents (both tabs and spaces) are converted to &nbsp; equivalents.
    htmlOut Format "string" into normal output format per the rules for the given source/contentType.
    htmlToPlainText Convert a string into similar-looking plain text.
    isObjectionable Check for objectionable words.
    lf A line-feed string.
    lookup Lookup a pattern in a string.
    markObjectionable Mark objectionable words.
    putchar Put a character into a string.
    randomString A random 11-character string.
    replace( from, to, startIx, length ) Replace a section of a string.
    spellCheckSetup Sets up a spell-checking dialog for a string.
    split Split the first token off a string.
    splitCount Count the number of tokens in a string.
    splitEmail Split the first email address off a string.
    splitList Split the first token off a string.
    substring Get a substring of a string.
    tail Split the last token off a string.
    toJIS Convert to 7-bit Japanese characters.
    toJisIfSiteIsJapanese Convert to 7-bit Japanese characters if the site default charset is Japanese
    toLower Convert to lower case.
    toShiftJIS Convert to 8-bit Japanese characters.
    toUpper Convert to upper case.
    trim Remove leading and trailing white space.
    validEmail Check for a valid email address.
    wrap Wrap text to a specified column width.
    User names
    nameToFirstLast Convert name to first-last format.
    nameToLastFirst Convert name to last-comma-first format.
    getFirstName First name from a name string.
    getLastName Last name from a name string.
    XML Parsing Logic
    string.fromXML Returns plain-text string.
    string.toXML Returns string formatted with XML escapes.
    string.toXMLData Returns string formatted with XML escapes.
    setXmlIndex (and string.xmlParse) Return TRUE iff the input string was not empty.
    xmlParseClose Add text to the current xmlData string until the closing element matching xmlElement is found.
    HTML
    fromSGML Convert from SGML quotes to original string.
    htmlClosure Fixup for HTML tag closure and remove illegal tags.
    htmlStripTags Strip all HTML tags from a string.
    httpToLinks Convert all HTML tags in a string to links.
    quickEdit Process a string with the Web Crossing quick editor.
    s.revertHtmlLinks Revert automatic conversion of pasted links back to the original link.
    selfRef Insert correct certificate in all local URLs.
    textToHtml Convert hard line-breaks to <br> and blank lines to <p>.
    toSGML Convert to SGML quoted format.
    toSgmlNoEscs Convert strings to SGML quoted format but leave any SGML escaped characters in the original string.
    URLs
    fromURL Convert from URL quotes to original string.
    toURL Convert to URL quoted format.
    Numbers
    hexToInt Convert a hexadecimal string to an integer.
    intToHex Convert an integer to hexadecimal.
    intWithCommas Convert an integer to a numeric string with commas.
    numberString.numberFormat Convert a numeric string to a specified numeric format.
    MIME Formats
    canUseQuotedPrintable Check whether a string is suitable for quoted-printable formatting.
    fromBase64 Convert a string from base-64 format.
    fromQuotedPrintable Convert a string from quoted-printable format.
    toBase64 Convert a string to base-64 format.
    toQuotedPrintable Convert a string to quoted-printable format.

    » Date and time operations
    date Current date.
    dateNamesSetDefault( spec ) Set default date format.
    dateNamesSetCurrent( spec ) Set date format for current command only.
    dateString.dateAddSeconds Adds the specified number of seconds (positive or negative) and returns the adjusted dateObject.
    dateString.dateDeltaSeconds( date2 ) Returns the number of seconds for (dateString-date2).
    dateString.dateEqual Returns TRUE iff dateString == date2.
    dateString.dateFormat Formats a date per the format string.
    date.dateFromGmt Convert a date object from GMT to local time.
    dateGMT Current date/time in GMT.
    dateString.dateGreaterThan Returns TRUE iff dateString > date2.
    dateString.dateLessThan Returns TRUE iff dateString < date2.
    dateObject Time/date format to get a date object.
    dateObj Same as dateObject.
    dateString.dateSetHours( hours ) Sets the hours (24 hour clock, so the hour is from 0 to 23) and returns the adjusted dateObject.
    dateString.dateSetMinutes( minutes ) Sets the minutes (from 0 to 59) and returns the adjusted dateObject.
    dateString.dateSetSeconds( seconds ) Sets the seconds (from 0 to 59) and returns the adjusted dateObject.
    dateString.dateSubtractSeconds Subtracts the specified number of seconds (positive or negative) and returns the adjusted dateObject.
    date.dateToGmt Convert a date object from local to GMT.
    milliseconds Return current milliseconds since 12 a.m. local time.
    secsFrom1970 Time in seconds since Jan 1, 1970 (GMT).
    time Current time.

    » Path operations
    pathAccess( separator ) Return a list of all user/group names that have entries in the access list for the current location.
    pathAccessIds Return a list of all user/group IDs that have entries in the access list for the current location.
    pathAddBtree Add a new btree to the current location (folder or discusion only).
    pathAddEnclosure Add an existing enclosure to a new/different location.
    pathAddLinks (also setPathAddLinks) The control for whether links can be added to a folder or not.
    pathAppendTo The location that additional items should be appended to for a move-multiple command.
    pathBtreeKey Show what the internal sort keys look like.
    pathBtreeSpec Return the sortSpec for a btree at the current location.
    setPathDate Sets last modified date.
    pathDefaultContentType Returns the default content-type for the current location.
    pathDefaultRanking Returns the default ranking for a location.
    pathDelete Delete the current location.
    pathDocumentDataBinary Returns the data from an attachment in binary form.
    pathDocumentDataQuoted Returns the data from an attachment in either quoted-printable or base64 form as appropriate.
    pathDocumentSize Returns the size of the attachment and header with its default formatting.
    pathDocumentSizeBinary Returns the size of the attachment file in binary without any header.
    pathExists( path ) Returns 1 if path exists.
    pathExport( filename ) Export the current location.
    pathExportTail( filename ) Export the tail of a discussion.
    pathFolderItemCount Returns the total number of items in a folder.
    pathFromMessageId (also setPathFromMessageId) Open the specified message.
    pathHasAccessList Return 1 if the current location has an access list.
    pathHasBtree Return 1 if the current location has a btree with this name.
    pathHierLocation Return the location of the last path$var lookup.
    pathHitsDec Decrement hits counter for current location.
    pathHitsInc Increment hits counter for current location.
    pathHostCount Return the numer of host files in a folder.
    pathHostDir Get/set the host directory mapping and excluded file/directory names for a folder.
    (also setPathHostDir( dir ))
    pathHostName Returns the host pathname of a file
    pathHostSynch Resynch the current location to the host filesystem
    pathHttpDownloadsLocal A flag (0 or 1) that indicates whether Web-based attachments can be downloaded or not.
    pathHttpUploadsLocal A flag (0 or 1) that indicates whether Web-based attachments can be uploaded or not.
    pathIconFilename
    (also setPathIconFilename)
    If set, returns name of icon used by the built-in folder listing code.
    pathImport Import to the current location.
    pathImportAsGuests Same as pathImport, but users in the import who do not already exist are treated as guests (e.g. they are not added as new registered users)
    pathIsCommon Get common vs local status for host files and folders.
    pathIsHost True if the current location is a mirrored host file.
    pathIsListable Returns -1/0/1 for inherited/don't-list/list.
    pathIsLocal Get local vs common status for host files and folders.
    pathItemsShowHidden List folder items including normally hidden (e.g. not listable) items .
    pathMarkIndividual( setting ) Mark individual messages for a user.
    pathName
    (also setPathName)
    Returns the name of a location.
    pathNameFullUri Deprecated.
    pathNameUri Return the non-query URL for the current location.
    pathNetContentType Returns the net content-type for the current location.
    pathNetLocal True if the current location has net local status for host files and folders.
    pathNewDiscussionCount Returns the number of new discussions in a folder.
    pathNewIndividualCount Returns the number of new individually marked messages nested under a location.
    pathNodeCount Returns the number of nodes in a folder.
    pathPlugTemplate ( also setPathPlugTemplate) If specified, will be checked/used if a macro is not in the normal pathTemplate envelope.
    pathPostsDec Decrement posts counter for current location.
    pathPostsInc Increment posts counter for current location.
    pathRanking
    (also setPathRanking)
    Returns ranking string for the current location.
    pathRemoveBtree Remove an existing btree from the current location.
    pathRemoveEnclosure Remove an existing enclosure from the current location.
    pathSetLocal (v) Set local vs common status for host files and folders.
    pathShowsLinkToParent
    (also setPathShowsLinkToParent)
    Tell whether the current location shows a link to parent items in threaded message format.
    setPathShowsLinkToParentLocal Same as pathShowsLinkToParent, except this is the exact setting of the current location.
    pathShowsLinkToPrevious
    (also setPathShowsLinkToPrevious)
    Tell whether the current location shows a link to the previous item in threaded message format.
    pathShowsReplyTo (also setPathShowsReplyTo) Tells whether the current location shows a "Reply" button.
    pathShowsSummaryButtonLocal
    (also setPathShowsSummaryButton)
    Controls whether the listing of a threaded discussion in a folder has a "summary icon" to show the discussion in outline format.
    pathShowsThreaded
    (also setPathShowsThreaded)
    Tell whether the current location shows discussions in threaded message format. Looks at both path settings and user preferences. (See also pathShowsThreadedLocal.)
    pathShowsThreadedLocal Same as pathShowsThreaded, except this is the exact setting of the current location.
    pathShowsTitle
    (also setPathShowsTitle)
    Tell whether the current location shows a title for each message.
    pathSubscribeOnly
    (also setPathSubscribeOnly( flag ))
    Check whether subscriptions are for a given folder only.
    pathSubscriptionList( "med" )) Returns a list of users with subscriptions at a location.
    setPathSource Set the source of a discussion or message to the specified string.
    pathUrlHttpDomain
    (also setPathUrlHttpDomain( flag ))
    Controls usage of http:// or https:// based on the site secure-forwarding setting.
    pathVirtualArea
    (also setPathVirtualArea( flag ))
    Get/set the flag that indicates that a location is a virtual area (e.g. that the backpath for nested items stops with this location)
    pathVirtualTopLevel Returns the location of the closest virtual folder to the current location (will be itself if the current location is a virtual folder).
    path$wrap_defaultFontFace Returns the local default font face.
    path$wrap_defaultFontSize Returns the local default font size.
    path$wrap_Images Returns the local images path setting; if set, supersedes siteImages
    path$wrap_iconColumnWidth Returns the width of the icon column in a folder.
    path$wrap_Icons Returns the local icons path setting; if set, supersedes siteIcons
    path$wrap_Background Returns the local background setting; if set, supersedes siteBackground, background, and pathBackground (deprecated)

    » File system and logging
    commonLog( text ) Write to the common.log file.
    file Get the contents of a file.
    fileDelete Delete a file.
    fileError Error message from last file command.
    filename.fileExists Return 1 if the filename exists.
    filename.fileLength Return the length of the file, or "" if no such file.
    filename.fileRead Read data and returns it as a string.
    filename.fileRename Rename the file to the newname.
    filename.fileWrite Write data into a file.
    logFilename Return the current logNNN name.
    logUsageMTD Add a MONTH-TO-DATE entry to the logUsage file.
    noRollForward Suppress roll-forward logging of a variable.
    noSynch Suppress master-slave synchronization of a variable.
    rollForward Enable roll-forward logging of a variable.
    string.log Writes a string into the log file, if the Web Crossing master log switch is on.
    synch Enable synchronization of a variable.

    » Scripting and E-mail
    cgi Run a script program with CGI environment variables.
    exec Run a script program.
    takeAction( request ) Process a Web Crossing URL for the current user
    sysopAction( request ) Process a Web Crossing URL as the sysop
    email Send an e-mail message.
    emailAddressTrace( forward ) Trace of evaluation of an email address for delivery.
    userImportMailSpool Import Unix mail spool data as email messages for a user
    scriptError Error from last exec or cgi, or none.
    MxFlush Flush the mail exchange (MX record) address cache.

    » Persistent Variables
    nosynch Suppress synchronization of selected session variables across source/mirror clusters.
    ... session.name ... Return the current value of a session variable, or the index of a saved container for use in subsequent scXxx calls.
    set session.name value Save a string or number into a session variable.
    sessionZeroSeqNo Causes the current session to always use a zero sequence number.

    » Create/destroy commands
    folderCreate Set current location to new folder if created OK.
    discussionCreate Set current location to new discussion if created OK.
    messageCreate Set current location to new message if created OK.
    linkCreate Set current location to new link if created OK.
    chatCreate Set current location to new chat if created OK.
    pathDestroy Destroy the current location and Set the location to the original location.

    » General directives
    clearOutput Clear the accumulated output generated by a macro.
    clearOutputNoWrapper Clear the accumulated output generated by a macro; will not automatically insert the wrapper banner/footer in the page as with clearOutput
    "macroname".queue Queue a macro for later execution.
    queueClear( name ) Clear (e.g. don't run) any queued macros with the specified name
    use macroname Call a macro.
    useParent macroname Call a macro from the parent folder.
    yield Interrupt the current request.

    » Variables listed alphabetically

    Click to see variables starting with a letter:

    A B C D E F G H I L M N O P R S T U V W X Y
    » Variable Usage
    %% actionPath %% Action path for login and registration. When a user logs in or registers, the original URL has to be remembered so that it can be used after the login/registration is complete. The actionPath is the original request, reformatted as <command>@<action>. For example, an actionPath to show a folder might look like 14@.eaf433.

    You need to use the actionPath whenever you build a URL to process a login or registration form. See the login template in the standard.tpl file for examples of this usage.

    %% actionPathCommand %% Command code from actionPath.
    %% addResponseHttp
    ( "name:value" )%%
    Add a keyword:value pair to the HTTP response being generated. The CRLF at the end of the keyword-value pair is added automatically by Web Crossing. Do not add the CRLF in this function, or the HTTP response will be invalid.
    %% user.addUserToGroup
    ( group )%%
    Add a user to a group. For example, user.addUserToGroup( "abc" ) will add the current user to the group abc.
    %% allInputAsHidden
    ( exclude ) %%
    Add all input name/value pairs as hidden fields. The "exclude" list is a blank/comma-delimited list of fields to exclude, where each fieldname is either exact or is a prefix*. For example, % % allInputAsHidden( "title showauthor name email header SpellCheck* SpellEdit* enclosure* fix_*" ) % % is used to propagate extra fields during a spelling check
    %% alwaysCertificate %% Generate an authentication (URL) certificate even if the user came in through a cookie. For example, when forwarding to a new location in Web Crossing, this is recommended for the certificate portion of the destination URL. This will guarantee that the user is logged in a recognized correctly even though the destination URL has a different host name from the currently installed cookie. (This is possible when running on multi-homed servers.)
    %% author %% The unique ID in hexadecimal of the current author. Used in author.function expressions.
    %% authorAlias %% The author's email alias. If present, the email alias is inserted in the "from" address of outgoing email, as "alias ".
    %% authorBio %% The formatted biographical information for the author of the current location.
    %% authorEmail %% The e-mail address of the author of the current location.
    %% authorField field %% Author's additional fields, where field is the field name.
    See the example section on adding your own fields.
    %% if authorHasPicture %% True if the author of the current location has a picture.
    %% authorHomePage %% URL of the home page for the author of the current location.
    %% authorInfoUrl %% URL to the personal information page for the author of the current location.
    %% authorIsCgiUser %% Returns 1 if the author is sysop/superhost or is a member of the cgiUser group
    %% if authorIsSuperhost %% Returns TRUE iff the user is in the superhost group, else false.
    %% if authorIsSysop %% True if the author of the current location is the sysop.
    %% authorIsWctlUser %% Returns 1 if the author is sysop/superhost or is a member of the wctlUsers group
    %% authorLine2 %% Secondary information for the author of the current location.
    %% authorName %% Name of the author of the current location.
    %% authorPicture %% URL to the picture of the author of the current location. If the author does not have a picture, this will be to the default picture specified by the sysop.
    %% if authorShow %% True if the author has requested that he/she be shown as part of the presentation of the current location.
    %% authorUniqueID %% Author's unique ID in hexadecimal.
    %% authorUrls %% Favorite URLs of the author of the current location, formatted.
    %% authorUrlsRaw %% Favorite URLs of the author of the current location, unformatted.
    %% if awayHours > count %% Check whether the current user last logged in more than count hours ago. For example,
    %% if awayHours > 4 %%
     Welcome back...
    %% endif %%
    will show the Welcome back... text when the user has been away for more than 4 hours.

    B

    » Variable Usage
    %% background %% Current background, formatted for use in a <body> tag. For example,
    <body %% background %%>
    will set the background color or pattern as specified in Web Crossing for the current location.

    If the first character of the background specifier is a space, then the output is <body background>.
    If the first character is a # it is <body bgcolor=background>.
    Otherwise it is <body background=background>.

    %% backPath %% Default current location "backpath" with links to parent folders, does not include the current location (just its parents).
    %% backpathContext %% Context for the macro to evaluate in (e.g. the icons to use)
    %% backPathThis %% Default current location "backpath" with links to parent folders, same as backPath except it includes the current location as well.
    %% banner %% Banner for current location, formatted.
    %% broadcast message %% Broadcast a message to the current chat room location. For example,
    %% broadcast form.message %%
    where "message" is an input field in the form being processed.
    %% browserCanUseLabels %% Evaluates to TRUE iff the client browser can use JavaScript labels. (Only false right now for MSIE 3.x.)

    C

    » Variable Usage
    %% s.canUseQuotedPrintable %% TRUE iff a string can be placed in a MIME envelope in quoted-printable format (otherwise use base-64).
    %% certificate %% Current user's authentication certificate. This is used to build Web Crossing URLs. For example,
    "%% urlBase %%14@%% certificate %%@/Books"
    is the URL to display the /Books folder.
    %% certificateLogout %% Immediately expire (logout) the current user's authentication certificate.
    %% cgi
    ( commandLineString ) %%
    Run a program with the specified command line, with all the environment variables from the current CGI request, and return the output of the program, removing any HTTP header lines from it. For example, cgi( "myCgiProgram myArgument" ). Additional environment variables may be set for this command with VAR=value pairs preceding the command, for example, cgi( "MYVAR=test OTHER=42 myCgiProgram myArgument" ). (See the section on CGI Environment Variables.)
    %% chatCreate
    ( title ) %%
    Return error or null, Set current location to new chat if created OK.
    %%ChatMessages%% List of messages from the other chat users.
    %%ChatTables("<OPTION>")%% List of chat tables. Takes an optional parameter string which is prepended to each table. e.g. chatTables("<OPTION>")
    %%ChatTableUsers%% Return the total number of users at a chat table, including any overflow tables. The current location must be set to the table in question.
    %%ChatMembers("<OPTION>")%% List of chat members in this particular room. Takes an optional parameter string which is prepended to each table. e.g. chatMembers("<OPTION>")
    %% clearOutput %% Clear the accumulated output generated by a macro.
    %% clearOutputNoWrapper %% Clear the accumulated output generated by a macro; will not automatically insert the wrapper banner/footer in the page as with clearOutput.
    %% commonLog( text ) %% Write to the common.log file, if common.log output is enabled. A newline is automatically appended.
    %% copyright %% The copyright string for the server.
    %% string.count %% Return number of characters in a string. For example, "abc".count is 3.
    %% if cmdIsShowAll %% True if the current command is "show all."
    %% if cmdIsShowInContext %% True if the current command is "show in context." This command should show one or more previous messages.
    %% if cmdIsShowPrevious %% True if the current command is "show previous." This command should show previous messages.
    %% cr %% A carriage-return string.
    %% crlf %% A carriage-return/line-feed string
    %% name.custIndexAddRaw( value, keywordData ) %% Added a new set of data to the named index. If this index does not exist, it is created. "value" is the id/location of the keywordData, and must not contain any blanks (blanks are stripped). The keywordData are added without stemming.
    %% name.custIndexAddStemmed( value, keywordData ) %% Added a new set of data to the named index. If this index does not exist, it is created. "value" is the id/location of the keywordData, and must not contain any blanks (blanks are stripped). The keywordData are added with stemming.
    %% name.custIndexClose %% Forces the named custom-index file to be closed if it is in the cache, so that it can then be renamed or destroyed without affecting the cache.
    %% name.custIndexExists %% Returns TRUE if the named file exists and is a custom index
    %% custIndexLookupRaw( keywordData ) %% Returns a list of values that contain the keywordData from the named file. The list of values is blank-delimited. keywordData is not stemmed.
    %% custIndexLookupStemmed( keywordData ) %% Returns a list of values that contain the keywordData from the named file. The list of values is blank-delimited. keywordData is stemmed.
    %% name.custIndexRemoveRaw
    ( value keywords )%%
    Remove items from a custom index. This means that you can basically treat a custom index like an associative memory. However, this change invalidates any existing custom index files, they have to be rebuilt with the new version. The remove functions take two arguments, the value and its keywords (the same parameters as custIndexAddRaw/Stemmed). For example:
    
       %% "test.ci".custIndexRemoveRaw( "v3", "ABC" ) %%
       
    %% name.custIndexRemoveStemmed
    ( value keywords )%%
    Remove items from a custom index. This means that you can basically treat a custom index like an associative memory. However, this change invalidates any existing custom index files, they have to be rebuilt with the new version. The remove functions take two arguments, the value and its keywords (the same parameters as custIndexAddRaw/Stemmed). For example:
    
       %% "test.ci".custIndexRemoveStemmed( "s1", "follows" ) %%
       

    D

    » Variable Usage
    %% date format %% Current date/time. You may specify a format or just use the default, which is defined in the sysop control panel (the initial setting is M1/D1/Y2 H1:I2a followed by any time zone).
    %% dateString.dateAddSeconds
    ( seconds ) %%
    Adds the specified number of seconds (positive or negative) and returns the adjusted dateObject.
    %% dateString.dateDeltaSeconds
    ( date2 ) %%
    Returns the number of seconds for (dateString - date2).
    %% dateString.dateEqual
    ( date2 ) %%
    Returns TRUE iff dateString == date2.
    %% dateString.dateFormat
    ( format ) %%
    Formats a date per the format string.
    %% dateString.dateFromGmt
    ( format ) %%
    Converts a date object from GMT to local. format is optional and defaults to dateObject.
    %% dateFunction
    ( dateObject ) %%
    %% dateFunction
    ( dateObj ) %%
    Time/date format to get a date object, where dateFunction is any operation that takes a date format string as a paramter. (Date objects are just strings with the format "Y4-M2-D2-H4.I2.S2").
    %% dateGMT
    ( format ) %%
    Returns the current GMT date/time. formatis optional and defaults to dateObject.
    %% dateString.dateGreaterThan
    ( date2 ) %%
    Returns TRUE iff dateString > date2.
    %% dateString.dateLessThan
    ( date2 ) %%
    Returns TRUE iff dateString < date2.
    %% dateNamesSetCurrent
    ( spec ) %%
    Set date format for current command only.
    %% dateNamesSetDefault
    ( spec ) %%
    Set default date format.
    %% dateString.dateSetHours
    ( hours ) %%
    Sets the hours (24 hour clock, so the hour is from 0 to 23) and returns the adjusted dateObject.
    %% dateString.dateSetMinutes
    ( minutes ) %%
    Sets the minutes (from 0 to 59) and returns the adjusted dateObject.
    %% dateString.dateSetSeconds
    ( seconds ) %%
    Sets the seconds (from 0 to 59) and returns the adjusted dateObject.
    %% dateString.dateSubtractSeconds
    ( seconds ) %%
    Subtracts the specified number of seconds (positive or negative) and returns the adjusted dateObject.
    %% dateString.dateToGmt
    ( format ) %%
    Converts a date object from local to GMT. format is optional and defaults to dateObject.
    %% discussionCreate
    ( title )
    Set current location to new discussion if created OK.
    %% discussionHeader %% Returns the formatted header (not including banner or title) for a discussion.
    %% doActionPath %%

    %% doActionPath tag %%

    Action path for login and registration with embedded certificate. For example, if the current actionPath is
    14@.aef456
    then the doActionPath is the same as
    14@%% certificate %%@.aef456
    (See the standard.tpl file for some examples of actual use.)

    You may specify a new tag for the certificate used for the URL. (See the certificate variable for details.)

    E

    » Variable Usage
    %% editBackground %% Background text, unformatted. This variable is only meaningful inside an addFolder or editFolder template, while preparing an "Add/Edit Folder" page. This variable is either the original value, or the edited background when notifying the user of an error in adding the requested folder.
    %% editBanner %% Banner text, unformatted. This variable is only meaningful inside an addFolder or editFolder template, while preparing an "Add/Edit Folder" page. This variable is either the original value, or the edited banner when notifying the user of an error in adding the requested folder.
    %% editEmail %% E-mail address. This variable is only meaningful inside a registration form, or when a guest user is posting a folder, discussion, or message.
    %% editEmailFrom %% Setting for pathEmailFrom during Add Folder or Edit Folder.
    %% editEmailMirror %%
    %%
    Setting for pathEmailMirror during Add Folder or Edit Folder.
    %% editEmailPostThru %% Setting for pathEmailPostThru during Add Folder or Edit Folder.
    %% editEmailPW %% Setting for pathEmailPW during Add Folder or Edit Folder.
    %% editEmailReply %% Setting for pathEmailReply during Add Folder or Edit Folder.
    %% editEmailReplyTo %% Setting for pathEmailReplyTo during Add Folder or Edit Folder.
    %% editEmailStripSig %% Setting for pathEmailStripSig during Add Folder or Edit Folder.
    %% editFolderIcon %% Folder icon type, "web," "folder," or "discussion." Used in adding or editing a link.
    %% editFooter %% Footer text, unformatted. This variable is only meaningful inside an addFolder or editFolder template, while preparing an "Add/Edit Folder" page. This variable is either the original value, or the edited footer when notifying the user of an error in adding the requested folder.
    %% editHeading %% Heading. This variable is only meaningful inside an addFolder, editFolder, addDiscussion, or editDiscussion template, while preparing an "Add/Edit Folder/Discussion" page. This variable is either the original value, or the edited heading when notifying the user of an error.
    %% editHelp %% Edit help text, evaluated. This is the evaluated sysop Edit Help template.
    %% editMessage %% Message text, unformatted. This variable is only meaningful inside an addMessage template. It is the message text as entered by the user to be posted to the current discussion.
    %% editName %% User name. This variable is the username for registration, adding a folder, adding a discussion, or adding a message.
    %% editNewsgroup %% Name of newsgroup when editing an Add Folder or Edit Folder form.
    %% editPassword %% Password. This variable is the password for the register template. It is either empty or the password entered by a user who is going to receive an error report.
    %% editShowAuthor %% True if author is to be shown. Available while adding or editing.
    %% editShowDescription %% True if a link's description is to be shown. Available while adding or editing a link.
    %% editSortSeq %% Sort sequence. Available while adding or editing a link or chat room.
    %% editTemplate %% Template. This variable is only meaningful inside an addFolder or editFolder template, while preparing an "Add/Edit Folder" page. This variable is either the original value, or the edited template when notifying the user of an error in adding the requested folder.
    %% editTitle %% Title. This variable is only meaningful inside an addFolder or editFolder template, while preparing an "Add/Edit Folder" page. This variable is either the original value, or the edited title when notifying the user of an error in adding the requested folder.
    %% editUrl %% URL for a link. Available while adding or editing.
    %% username.emailLookupUser( domain, index ) %% Looks up a user by email name and optional domain. Returns userUniqueId@domain or the empty string. "domain" is the required domain or "" for any domain. "index" is the slot to check (0, 1, ...) when domain is "".  Because the combination of username & domain must be unique in the email name b-tree, if "domain" is supplied then the "index" is ignored and a lookup is done on the username+domain.

    HOWEVER: if the domain is supplied, and there is no explicit entry for that domain, but there is an entry for a user with no domain, the entry with no domain is returned and the output is "userUniqueId@". This is because a username with no domain matches all domains that are not explicitly in the db.
    %% enterChat %%
    %% enterChat
    ( textGroup ) %%
    If the current location is a chat table, then enter it for text-chat only. Evaluates to true if the chat room was entered. Sets roomError, roomHandle, roomIp, and roomPort. If a textGroup expression is provided, this is the name of the chat fanout-server group to use. For example, enterChat( "socks" ) to be served by a SOCKS fanout server.
    %% enterChatTable
    ( "n textGroup" ) %%
    If the current location is a chat table, then enter it for text-chat only. Takes a parameter which is the auto-overflow table index from 0 to n. Evaluates to true if the chat room was entered. Sets roomError, roomHandle, roomIp, and roomPort. If a textGroup expression is provided, this is the name of the chat fanout-server group to use. For example, enterRoom( "1 socks" ) to be served by a SOCKS fanout server.

    %% enterPrivateRoom
    ( id ) %%
    Same as the "enterRoom" command, except that the parameter is the id of the room created with an earlier newPrivateRoom command. If the room does not exist, then enterPrivateRoom returns false and the error message is available via "roomError".
    %% enterRoom %%
    %% enterRoom
    ( textGroup ) %%
    If the current location is a chat table, then enter it for full services. Evaluates to true if the chat room was entered. Sets roomError, roomHandle, roomIp, roomPort. If a textGroup expression is provided, this is the name of the chat fanout-server group to use. For example, enterRoom( "socks" ) to be served by a SOCKS fanout server.
    %% "rcpt".emailAddressTrace
    ( forward ) %%
    Returns a trace of evaluating an email address for delivery, where "rcpt" is the address to resolve, and "forward" is 1 or 0, a flag for whether or not the address can be forwarded to a remote server or not. The default for "forward" is 1. The returned string is an sgml-formatted trace of how the email address was resolved, including a list of all matching local users if the address is ambiguous.
    %% email
    ( message ) %%
    Send an e-mail message. (See Sending E-mail.)
    %% s.emoticonsReplace %% Replace emoticon patterns in the string "s" with corresponding <img...> tags.
    %% enterRoomTable
    ( "n textGroup" ) %%
    If the current location is a chat table, then enter it for full services. Takes a parameter which is the auto-overflow table index from 0 to n. Evaluates to true if the chat room was entered. Sets roomError, roomHandle, roomIp, roomPort. If a textGroup is provided, this is the name of the chat fanout-server group to use. For example, enterRoomTable( "0 socks" ) to be served by a SOCKS fanout server.
    %% envir.cgiVarname %%
    %% envir
    ( cgiVarnameExpr ) %%
    Get the value of a CGI environment variable, such as
    %% envir.query_string %%
    cgiVarnameExpr can be any WCTL expression, such as
    %% set item "query_string" %%
    %% envir( item ) %%
    %% envirCookie.cookieName %%
    %% envirCookie
    ( envirCookie ) %%
    Get the value of a cookie in the CGI request from the client.
    %% envirList %% Return a blank-delimited list of all available CGI variables. (See the showEnvir template in standard.tpl for an example of using this variable to display a list of all CGI variables and their values.)
    %% errorTitle %% Suggested title for an error message page. Available in the error form.
    %% error %% Error message for an error message page. Available in the error form.
    %% string.eval %% Evaluate a string as a Web Crossing Template Language expression. For example, "1 + 2".eval evaluates to 3.
    You can use set in an eval expression, but you cannot use break, continue, broadcast, if, else, elseif, macro, endmacro, while, endwhile.
    %% string.evalTemplate %% Evaluate a string as a Web Crossing Template Language template. For example,
     %% set delim "%" & "%" %% %% set template "abc" & delim & "1+2" & delim
     & "def" %% %% template.evalTemplate %%
    results in abc3def being inserted into the output.
    %% exec
    ( commandLineString ) %%
    Run a program with the specified command line, and return the output of the program. For example, exec( "myProgram myArgument" ). Environment variables may be set for this command with VAR=value pairs preceding the command, for example, exec( "MYVAR=test OTHER=42 myProgram myArgument" ).

    F

    » Variable Usage
    %% line.fieldvalue
    ( name ) %%
    Extract a field value from a MIME header line .
    %% file
    ( filename ) %%
    Get the contents of a file. filename can be any expression. The file is not cached, so external changes to the file are picked up immediately.
    %% fileDelete
    ( filename ) %%
    Delete a file. filename can be any expression. Evaluates to the error message for the delete, or the empty string if no error.
    %% fileError %% Error message from last file command, or the empty string if no error.
    %% filename.fileExists %% Return 1 if the filename exists, such as %% if "testfile".fileExists %%.
    %% filename.fileLength %% Return the length of the file, or "" if no such file.
    %% filename.fileRead
    ( offset==0 ,
    length==wholeFile ) %%
    Read data and returns it as a string.
    By default, reads the whole file.
    %% filename.fileRename
    ( newname ) %%
    Rename the file to the newname, such as %% "testfile".fileRename( "testFile2" ) %%.
    %% filename.fileWrite
    ( data, offset==endOfFile ) %%
    Write data into a file.
    Create the file if it does not exist. By default, appends data to the end of the file, but can also be used to overwrite existing data.
    %% filterNeedsUrlNotify %% Variable for the emailFilterIndividual filter. This variable is either "yes" or "no" depending on whether the user needs a URL-type notification (e.g to be sent only for the first unread message in a thread).
    %% firstLocal %% Save the first local new message found by userNewMessages.
    %% folderCreate
    ( title )
    Set current location to new folder if created OK.
    %% folderListAfter %% Show HTML after a list of items in a folder.
    %% folderListBefore %% Show HTML before a list of items in a folder.
    %% folderListEmpty %% Show HTML for an empty folder.
    %% folderListItem
    ( item ) %%
    Show HTML for an item in a folder. The current location is used to locate the correct template or HTML text for the specified item. (See the folderBy... templates in standard.tpl for examples.)
    %% footer %% Footer for current location, formatted. This variable finds the closest folder with a footer, or else uses the sysop default footer.
    %% formGetNames %% Returns all names from a form. Each name is URL quoted and space delimited.
    %% formGetNameValues %% Returns all name=value pairs from a form. Each name/value pair is URL quoted and space delimited with an '=' between the name and value.
    %% formGetValues %% Returns all values from a form. Each value is URL quoted and space delimited.
    %% formHeader( "name" ) %% Returns the MIME-header for a field posted through a multi-part MIME envelope. This is required in order to be able to post attachments via WCTL. If there is no field with the specified name, or if the post was not in multi-part MIME format, then the empty string is returned.
    %% string.fromBase64 %% Convert a string from base-64 to binary. (base-64 is a MIME encoding format.)
    %% string.fromQuotedPrintable %% Convert a string from quoted-printable to binary. (Quoted-printable is a MIME encoding format.)
    %% string.fromSGML %% Convert from SGML quotes to original string. For example, "&lt;b&gt;".fromSGML is "<b>".
    %% string.fromURL %% Convert from URL quotes to original string. For example, "This%20path".fromURL is "This path".
    %% string.fromXML %% Convert from XML escapes to original string.

    G

    » Variable Usage
    %% string.getFirstName %% First name from a string. For example, "John Smith".getFirstName is "John". The name can be in first-last or last-comma-first format. For example, "Smith, John".getFirstName is still "John".
    %% string.getLastName %% Last name from a string. For example, "John Smith".getLastName is "Smith". The name can be in first-last or last-comma-first format. For example, "Smith, John".getLastName is still "Smith".
    %% string.getchar
    ( ix ) %%
    Get a character from a string as an integer value. ix is 0-origin and may be any expression. For example, "abc".getchar(0) is 'a'; "abc".getchar(1) is 'b'.
    %% form.name %%
    %% getValue inputName %%
    %% getValue
    ( nameExpr ) %%
    Get value from a posted form. Evaluates to the empty string if the input field is not defined. For example,
    %% getValue "message" %%
    will get the value of the <input name=message...> field from the input form.
    %% getValue( "message" ) %%
    is equivalent, and "message" can be any expression.
    In most cases, instead of getValue "message", you can just use form.message.
    %% greetingNews %% Greeting news template, formatted.
    %% groupName.groupCount Return number of items in a group.
    %% "groups".groupCount %% Examine the master list of all groups.
    %% groupCreate
    ( groupName ) %%
    Create a new user group.
    For example, %% groupCreate( "myGroup" ) %% will create a new group named "myGroup."
    %% groupDestroy
    ( groupName ) %%
    Destroy a user group. For example, %% groupDestroy( "myGroup" ) %%.
    %% groupName.groupFirst
    ( prefix ) %%
    returns the index of the first item matching the prefix, or the item just after the prefix if there aren't any matches. Note that the returned index will be -1 if there are no items matching or before the prefix.
    %% groupName.groupLast
    ( prefix ) %%
    returns the index of the last item matching the prefix, or the item just preceding the prefix if there aren't any matches. Note that the returned index will be -1 if there are no items matching or before the prefix.
    %% groupLookup
    ( name ) %%
    Return group handle if found.
    The group handle can be used like a user handle to get the name of the group, etc.
    %% groupName.groupItem
    ( ix ) %%
    Return user (ix from 0..groupCount-1).
    %% "groups".groupItem
    ( ix ) %%
    Examine the master list of all groups.

    H

    » Variable Usage
    %% string.hardWrap Convert a string to preserve linebreaks and indents. All hard linebreaks are converted to either <br> or <p> and all indents (both tabs and spaces) are converted to &nbsp; equivalents.
    %% hasValue inputName %%
    %% hasValue
    ( nameExpr ) %%
    Check for a value in a posted form. True if the field is present in the posted form. For example,
    %% if hasValue "message" %%
    will evaluate to true if the form being processed has a "message" input field.
    %% if hasValue
    ( "message" ) %%
    is equivalent, and "message" can be any expression.
    %% string.hexToInt %% Convert a hexadecimal string to an integer. For example, "1A".hexToInt is 26. If this function is applied to an integer, the result is the empty string. For example, 50.hexToInt is the empty string.
    %% hostIsTemplate %% Returns TRUE if the site is configured so that sysop and host posts are evaluated as WCTL macros.
    %% string.htmlClosure %%
    %% string.htmlClosure( tags ) %%
    Fixup for HTML tag closure and remove illegal tags, usually applied to user posts.
      For example, "<h3><blink>Hello!".htmlClosure is "<h3>Hello!</h3>".
    If you use quickEdit, htmlClosure, and selfRef, do the quickEdit first, then the htmlClosure, as in myPost.quickEdit.htmlClosure.selfRef.

    The optional tags parameter can be used to specify a non-standard list of tags to remove. By default, the standard site tags are removed. To include all the standard tags plus some special ones, use the siteHtmlRemove setting. For example, string.htmlClosure( siteHtmlRemove & " p" ) will remove all the standard tags plus the <p> tag.

    %% string.htmlOut
    ( source, contentType ) %%
    Format "string" into our normal output format per the rules for the give source/contentType. You can get the source/contentType via pathSource and pathContentType if the string is the raw (unformatted) text for a location. Note that string.htmlOut does not insert emoticons; to include emoticons use string.emoticonsReplace on the result of this directive.
    %% string.htmlToPlainText %% Convert HTML text into similar-looking plain text. All SGML-escaped characters are converted. HTML-formatted white space is converted to plain-text. <P>, <BR>, and <PRE> are converted to similar-looking newlines. <LI> is converted to an asterisk and a space. &nbsp; is converted to a normal space. </TABLE> and </TR> are converted to newlines, and </TD> is converted to a space.
    %% string.htmlStripTags %% Remove all HTML tags from a string.
    %% string.httpToLinks %% Convert all plain-text http://... strings to <a href="http://...">http://...</a>.

    I

    » Variable Usage
    %% "buttonName".imageSize %% Return "WIDTH=w HEIGHT=h" for a file in the images directory for the current location
    %% "iconName".imageSize %% Return "WIDTH=w HEIGHT=h" for a file in the icon directory for the current location
    %% "filename".fileImgSize %% Return "WIDTH=w HEIGHT=h" for any gif/jpeg file
    %% if imgButton %% Check whether the user's browser supports image buttons. For example,
    %% if imgButton %%
     <input type=image
     name=" Create Folder " src="...">
    %% else %%
     <input type=submit
     value=" Create Folder ">
    %% endif %%
    %% int.intToHex %% Convert an integer to hexadecimal. For example, 26.intToHex is "1A."
    %% int.intWithCommas %% Convert an integer to string with commas. For example, 1234567.intToHex is "1,234,567."
    %% u.isGroup %% Return TRUE iff the user-handle-ID "u" is a group.
    (Use this command to handle nested groups while you iterate through the members in a group.)
    %% if string.isObjectionable %% Check for objectionable words or phone numbers in a string. Returns TRUE if the string contains objectionable words.
    %% itemBaseDepth %% This is the depth of the "root" message for the current view. This allows you to display things relative to some node in the message hierarchy.
    %% itemBodyFontSize %% Font size for message item body text, only valid while laying out a message item. This is either the user's setting or the sysop default value.
    %% if itemCanDelete %% Item can be deleted by current user, only valid while laying out a message item.
    %% if itemCanEdit %% Item can be edited by current user, only valid while laying out a message item.
    %% itemCount %% Total number of items in the current discussion, only valid while laying out a message item.
    %% itemDate format %% Creation date of the current message item, only valid while laying out a message item. You can specify the format, or just use the default.
    %% itemInfoFontSize %% Font size for secondary information, only valid while laying out a message item. This is either the user's setting or the sysop default value.
    %% itemIsThreaded %% Set if the display is to be presented as a threaded discussion, instead of linear
    %% itemNameFontSize %% Font size for author name, only valid while laying out a message item. This is either the user's setting or the sysop default value.
    %% itemNumber %% Item number, only valid while laying out a message item.
    %% if itemShowOperations %% Show edit and/or delete buttons, only valid while laying out a message item.
    %% if itemShowPictBorder %% Show border around picture in this item, only valid while laying out a message item.
    %% if itemShowPictures %% Show author picture in this item, only valid while laying out a message item.
    %% if itemShowTimeDate %% Show time/date, only valid while laying out a message item.

    L

    » Variable Usage
    %% if lastLogin < MM/DD/YYYY.HH:MM:SS %% Check for last login before a specific date. For example,
    %% if lastLogin < 02/15/1996.00:00%%
     We've added a new service...
    %% endif %%
    could be used to display information in the greeting page the first time a user logs in after some new service has been added.
    %% lf %% A line-feed character string.
    %% licenseHasDiscussions %% TRUE if the site is licensed for discussions.
    %% licenseHasHtml %% TRUE if the site is licensed for HTTP service.
    %% licenseHasPop3 %% TRUE if the site is licensed for POP3 service.
    %% licenseHasImap %% TRUE if the site is licensed for IMAP service.
    %% licenseHasWebEmail %% TRUE if the site is licensed for Web email service.
    %% licenseHasNews %% TRUE if the site is licensed for NNTP service.
    %% licenseHasChatService %% TRUE if the site is licensed for chat service.
    %% licenseHasFtp %% TRUE if the site is licensed for FTP service.
    %% licenseHasSmtp %% TRUE if the site is licensed for SMTP service.
    %% licenseHasSmtpForwarding %% TRUE if the site is licensed for SMTP forwarding service.
    %% linkCreate
    ( title )
    Return error or null, Set current location to new link if created OK.
    %% linkDescription %%
    (also %% setLinkDescription
    ( desc ) %%)
    Descriptive text for a link, if the current location is a link.
    %% if linkShowDescription %%
    (also %% setLinkShowDescription
    ( flag ) %%)
    Show the description for a link in its folder.
    %% linkUrl %% Return the url that a link references.
    %% setLinkUrl
    ( url ) %%
    Set the URL that a link entry points to. (pathUrl is the current URL for a link entry.)
    %% location %% Pathname of the current location. This variable can be used to construct Web Crossing URLs, such as
    "%% urlBase %%14@%% certificate %%@%% location %%"
    This URL will display the current folder, discussion, or message.
    %% string.log %% Writes a string into the Web Crossing log file, if the master-logging switch is on.
    %% logFilename %% Return the current logNNN name (or the empty string if not logging).
    %% if loginIs kind %% Kind of login page being prepared. This variable is only meaningful while a login page is being prepared.
    Kind Meaning
    ------------ ----------------------------
    normal initial login form
    failure login failure for some reason
    noSlots no free slots to login
    noRegister auto-register not supported
    For example,
    %% if loginIs normal %%
    %% else %%
     Login failure.
    %% endif %%
    %% loginNews %% Login news template, formatted.
    %% loginPassword (password) %% Password with which user is attempting to log in; used by loginAuthenticateFilter
    %% loginProtocol ("nntp")) %% Protocol by which user is attempting to log in; used by loginAuthenticateFilter
    %% loginUsername (username) %% Username with which user is attempting to log in; used by loginAuthenticateFilter
    %% logUsageMTD %% Add a MONTH-TO-DATE entry to the logUsage file. This allows snapshots of total monthly usage to date for a site.
    %% string.lookup
    ( pattern, startIx, skip ) %%
    Lookup a pattern in a string. startIx is the 0-origin starting point for the lookup, and defaults to 0. The result is the starting index of the first pattern, or the length of the string if the pattern is not found. skip is an optional skip count, if present this parameter will skip over the specified number of occurances of the pattern. For example, "abcbc".lookup( "bc" ) is 1,
    "abcbc".lookup( "bc", 1 ) is 1,
    "abcbc".lookup( "bc", 2 ) is 3,
    "abcbc".lookup( "xx" ) is 5,
    "abcbc".lookup( "bc", 0, 1 ) is 3.

    M

    » Variable Usage
    %% string.markObjectionable %%
    %% string.markObjectionable
    ( before, after ) %%
    Mark objectionable words. All objectionable words and/or phone numbers are marked by inserting the specified text before and after the objectionable words. The default for ( before, after ) is ( "<font color=red>", "</font>" ).
    %% message %% If the current location is a message, then it is formatted with its normal appearance. Otherwise, this results in an empty string.
    %% messageCreate
    ( title ) %%
    Return error or null, Set current location to new message if created OK. (Creates the message in the current discussion, or as a reply if the current location is a message.)
    %% milliseconds %% Return current milliseconds since 12 a.m. local time.
    %% item.moderatedApprove %% Approve the moderated item, post it to its parent, and remove it from the moderated list.
    Returns the pathname of the new item. For example,
     %% set new item.moderatedApprove %%
     %% setPath( path ) %%
     %% if location %%
     ... current location is the new item. If the item
     was already approved by someone else or there was
     some error on the approval/post, then the location is none.
     %% endif %%
    %% item.moderatedAuthor %% Return authorID of the moderated item.
    %% item.moderatedBody %% Return body text (not SGML quoted).
    %% item.moderatedDate
    ( format ) %%
    Return date, default format is as a date object.
    %% item.moderatedDecline %% Decline to approve a moderated item, destroy it, and remove it from the moderated list
    %% moderatedDiscussion %% Displays a moderated discussion in standard format.
    %% item.moderatedExists %% Return TRUE iff item still exists.
    %% moderatedFolder %% Displays a moderated folder in standard format.
    %% moderatedLookup
    ( maxItems ) %%
    Return blank-delimited list of moderated items that can be processed by this user.
    %% moderatedLookupLocation
    ( maxItems ) %%
    Return blank-delimited list of moderated items that can be processed by this user. Only returns items contained (at any level) in the current location.
    %% moderatedMessage %% Displays a moderated message in standard format.
    %% item.moderatedApprovePath %% Approve a moderated item and return the pathname of the new folder/discussion/message. (Similar to item.moderatedApprove, added new function so that the returned value wouldn't invalidate existing usage.)
    %% item.moderatedSetPathToParent %% Set the current location to the parent of a moderated item. (Used to be named moderatedParentOpen.)
    %% item.moderatedSetValue( name, value ) %% Set a custom path variable for a moderated itemWhen a moderated item is approved, all of its custom variables are copied to the resulting folder/discussion/message, and are accessible via path.name syntax.
    %% item.moderatedShowAuthor %% Returns "Show Author" flag for moderated item.
    %% item.moderatedTitle %% Return the title of the moderated item (not SGML quoted).
    %% item.moderatedType %% Return "folder," "discussion," or "message."
    %% item.moderatedValue( name ) %% Return a custom path variable set for a moderated item (by item.moderatedSetValue)
    %% moduleName %% Return module name.
    %% moduleVersion %% Return module version.
    %% mostRecentNewMessage %%
    %% mostRecentNewMessage
    ( format ) %%
    Returns the date of the most recent item from the last u.userNewMessages. If the date format is omitted, the date is formatted as a dateObject.
    %% msgListBetween %% The HTML text between messages, formatted.
    %% msgListCountFollowing %% Count of following items, only valid during a message list layout.
    %% msgListCountPrevious %% Count of preceding items, only valid during a message list layout.
    %% if msgListEmpty %% Message list is empty, only valid during a message list layout.
    %% msgListFirst %% First item in the current slice of the discussion
    %% msgListFollowing %% %% location %% of following message item or none, only valid during a message list layout.
    %% msgListLast %% Last item in the current slice of the discussion
    %% msgListPrevious %% %% location %% of previous item or none, only valid during a message list layout.
    %% msgListThreaded %% Returns TRUE iff the message list is displayed as threaded messages. Only valid in messageListBefore and messageListAfter macros.
    %% MxFlush %% Flush the mail exchange (MX record) address cache.

    N

    » Variable Usage
    %% string.nameToFirstLast %% Convert name to first-last format. For example, "Smith, John".nameToFirstLast is "John Smith"; "Smith, Ph.D., John".nameToFirstLast is "John Smith, Ph.D.".

    If the name is already in first-last format, there is no change. For example, "John Smith".nameToFirstLast is "John Smith".

    %% string.nameToLastFirst %% Convert name to first-last format. For example, "John Smith".nameToLastFirst is "Smith, John"; "John Smith, Ph.D.".nameToLastFirst is "Smith, Ph.D., John".

    If the name is already in last-comma-first format, there is no change. For example, "Smith, John".nameToLastFirst is "Smith, John".

    %% newDiscuss( max ) %% Returns HTML list of new discussion titles, with hyperlinks and graphical path dividers. max is the maximum number of new discussions to return.
    %% newPrivateRoom( params ) %% Creates a private, unnamed chat room. After creating a private chat room with an initial user, other users can be added to the room via the enterPrivateRoom command.

    %% if newPrivateRoom( params ) %% is the same as the "enterRoom" command, with the following changes:

    (1) "params" is a string that specifies the group name and the template for HTML chat pages. This string has the format "groupName templateName". If the groupName is omitted (the normal case), then this is just a space followed by the templateName. Both groupName and templateName can be omitted.

    (2) a new command "roomId" has the ID of the new temporary private room. For example, %% set session.id roomId %% will save the room id for use with other users.

    %% noRollForward
    ( "varname" ) %%
    Suppress roll-forward logging of "varname." This means that shut-down/restarts will lose the prior value of this variable. varname can be "site.var," "path.var," or "user.var."
    %% noSynch
    ( "varname" ) %%
    Suppress master/slave synchronization of "varname." This means that each master/slave server process will have its own value for this variable. varname can be "site.var," "path.var," or "user.var."
    %% numberString.numberFormat
    ( formatString ) %%
    Convert a numeric string to a specified numeric format. Number formats include currency and scientific notation.

    The format string may contain any leading and trailing characters. These leading and trailing characters are output before/after the reformatted number.

    Control characters in the format string are:
    # Optional digit.
    0 Required digit
    . Optional decimal point
    , Optional comma indicator
    ; Optional split into left (non-negative) and right (negative) formats. The number is converted to absolute value, so it is non-negative, before it is evaluated by the right (negative) format.
    % Display as a percentage (e.g. 1.0 is 100%)
    E+ or e+ Display a signed exponent
    E- or e- Display an exponent, signed only for negative exponent values
    -- Examples --
    NumberSt FormatSt Converted to
    0.071 0.00% 7.10% (e.g. 0.071.numberFormat( "0.00%" ) evaluates to "7.10%")
    $3650 0.00e+00 3.65e+03
    3650 $0.00e-00 $3.65e03
    0.0365 0.00E-0 3.65E-2
    123.5E0155 0.00E+0 1.24E+157
    1350 $#,##0;($#,##0) $1,350
    -33 $#,##0;($#,##0) ($33)
    -1234 $#,##0;($#,##0) ($1,234)
    123456789 $#,##0;($#,##0) $123,456,789
    95 0.00 95.00
    123,456 0 123456
    123456 #,##0 123,456
    1.236 0.00 1.24
    1.236 0.############ 1.236
    1.236789 0.############ 1.236789
    1.2 0.00 1.20
    3E6 0.00 3000000.00
    3E6 #,##0.00 3,000,000.00
    3E5 #,##0,00 300,000.00
    -123 0.00 -123.00
    123 00000.00e+00 12300.00e-02
    123.1 0.0000e-0 1.2310e2
    1.23E-3 0.000 0.001
    9.9 0 10
    0.9 0 1
    0.09 0.0 0.1
    0.0999 0.000 0.100
    0.00099 0 0
    0.00099 0.000 0.001
    0.000999 0.0000E 9.9900E-4
    0.0099 0.0 0.0

    O

    » Variable Usage
    %% if otherCanAddDiscussions %% Check if other registered users can add discussions to the current location.
    %% if otherCanAddFolders %% Check if other registered users can add folders to the current location.
    %% if otherCanAddLinks %% Check if other registered users can add links to the current location.
    %% if otherCanAddMessages %% Check if other registered users can add messages to the current location.

    P

    » Variable Usage
    %% pad column %% Insert padding in <pre> sections. This variable assumes that text is being laid out inside a <pre> section, so that blanks can be used to align columns. It inserts enough blanks so that the next character will be output at the specified column. Columns are numbered from 1 at the leftmost edge. For example,
    <pre>
    Location%% pad 30 %%
    Count
    %% setPath /Books %%
     %% pathTitle %%
     %% pad 30 %%
     %% pathDiscussionCount %%
    %% setPath /New Ideas %%
     %% pathTitle %%
     %% pad 30 %%
     %% pathDiscussionCount %%
    might display as
    Location                     Count
    Books                        23
    New Ideas                    35
    
    %% if pageIs Kind %% Kind of page being prepared.
    Kind
    ----------
    login
    password
    greeting
    loginToPost
    register
    registered
    
    view
    toolbar
    
    toplevel
    folder
    addFolder
    editFolder
    previewFolder
    editPreviewFolder
    checkDeleteFolder
    deletedFolder
    
    discussion
    addDiscussion
    editDiscussion
    previewDiscussion
    editPreviewDiscussion
    checkDeleteDiscussion
    deletedDiscussion
    discussionSummary
    spellCheckAddDiscussion
    spellCheckEditDiscussion
    
    addMessage
    messageError
    editMessage
    previewMessage
    editPreviewMessage
    checkDeleteMessage
    deletedMessage
    editHelp
    
    addChat
    editChat
    deleteChat
    chatRoom
    
    addLink
    editLink
    deletedLink
    
    editPreferences
    editedPreferences
    
    userInfo
    
    subscribed
    unsubscribed
    noSubscriptions
    noNewMesssages
    
    accessList
    groups
    
    search
    searchResults
    
    sysop
    userMacro
    fileToServe
    checkModerated
    emailValidate
    chat
    error
    %% parentTitle %%
    %% parentTitle level %%
    Title of parent, or title of parent from the top down. For example, if the current location is
    /Books/History/18th Century
    then
    %% parentTitle %%
    would be History (e.g the immediate parent);
    %% parentTitle 1 %%
    would be Books (e.g the 1st-level parent);
    %% parentTitle 2 %%
    would be History (e.g the 2nd-level parent).
    %% parentTitleUrl %%
    %% parentTitleUrl level %%
    Same as parentTitle, but the title is URL-quoted (e.g. blanks are %20, etc.)
    %% parentUrl %%
    %% parentUrl level %%
    URL to parent at specified level. For example, if the current location is
    /Books/History/18th Century
    then
    %% parentUrl %%
    would be something like http://yoursite/webx?14@@.efa453, a URL to /Books/History (e.g the immediate parent);
    %% parentUrl 1 %%
    would be a URL to /Books (e.g the 1st-level parent);
    %% parentUrl 2 %%
    would be a URL to /Books/History (e.g the 2nd-level parent).
    %% passwordNews %% Password news template, formatted.
    %% pathAccess
    ( separator ) %%
    Return a list of all user/group names that have entries in the access list for the current location, sorted by name.
    %% pathAccessIds %% Return a list of all user/group IDs that have entries in the access list for the current location, sorted by name.
    %% pathAddBtree
    ( "treename sortSpec" ) %%
    Add a new btree to the current location (folder or discussion only). The treename must be unique. This command will ignore a previously defined treename.
    The sortSpec is exactly the same spec that you can pass to pathSort, including URL quoting.
    %% pathAddEnclosure
    ( documentid ) %%
    Add a new enclosure to the current location (folder or discusion only).
    %% if pathAddDiscussions %%
    (also %% setPathAddDiscussions
    ( flag ) %%)
    Users may add discussions to the current location (with appropriate access)
    %% pathAddEnclosure
    ( documentId ) %%
    Add an enclosure to a location (duplicating one already attached somewhere else). documentId is the uniqueID of the document, for example from a pathEnclosures list.
    %% pathAddLinks
    ( flag ) %%
    (also %% setPathAddLinks
    ( flag ) %%)
    Control for whether links can be added to a folder or not. The flag can be 0 to not allow links to be added, or 1 to allow them.
    %% if pathAddSubfolders %%
    (also %% setPathAddSubfolders %%)
    Users may add folders to the current location (with appropriate access).
    %% if pathAddSubfoldersOnce %%
    (also %% setPathAddSubfoldersOnce %%)
    Users may add folders to the current location (with appropriate access), but these folders may only contain discussions.
    %% pathAppendTo %% Location that additional items should be appended to for a move-multiple command. Set by the pathMoveTo and pathMoveTreeTo commands. If the destination is a folder, and the source is a message that is upgraded to a discussion, then pathAppendTo is the resulting new discussion. Otherwise pathAppendTo is the same as the original destination.
    %% pathArchiveDays %%
    (also %% setPathArchiveDays
    ( days ) %%)
    For a folder, the number of days before a discussion expires.
    %% pathArchiveFolder %%
    (also %% setPathArchiveFolder
    (locationOrType) %%)
    If disposition for an elapsed discussion is to move to a folder, then this is the unique ID of the destination folder. The locationOrType value can also be "purge" or "delete".
    %% if pathArchiveType == "type" %% "type" may be "folder," "delete," or "purge". Disposition of an elapsed discussion: move to a folder, delete, or purge.
    %% pathBackground %%
    (also %% setPathBackground
    ( background ) %%)
    Background, unformatted, for the current location. (deprecated - see pathBodyTag )
    %% pathBanner %%
    (also %% setPathBanner
    ( banner ) %%)
    Banner, unformatted, for the current location.
    %% pathBody %%
    (also %% setPathBody
    ( body ) %%)
    Body text, unformatted, for the current location.
    %% pathBodyFormatted( n ) %% Body text, formatted, for the current location. The parameter is the number of sentences of the message to format, and defaults to the whole message. Sentences are delimited by period, exclamation points, or question marks.
    %% pathBodyRaw %% Fetch raw data from folder headings, discussions, and messages:
    Differs from pathBody, which returns the SGML-quoted body, and pathBodyFormatted, which returns the body after preparing it for output -- adding quick edit, html closure, self-reference fixups, and upgrading links to urls).
    %% pathBodyTag %%
    (also %% setPathBodyTag
    ( tag ) %%)

    Background, unformatted, for the current location. The following path variables are automatically tied into pathBodyTag:

    path.wrap_Background
    path.wrap_BgColor
    path.wrap_TextColor
    path.wrap_LinkColor
    path.wrap_ALinkColor
    path.wrap_VLinkcolor
    path.wrap_BgOther for other kw=value... items

    These settings are combined into the WCTL % % background % % setting, with values propagating down the hierarchy. setPathBodyTag will actually split the body tag value and store it into these various path variables.

    All of these path variables are just the value, except for path.wrap_BgOther, which is a series of keyword=value settings, added into the bodyTag exactly as is. For example:

    path.wrap_BgColor = "#000000"
    path.wrap_BgOther = "onload='...'"

    will result in a pathBodyTag of

    "BGCOLOR=#000000 onload='...'
    %% pathBtreeKey
    ( "treename" ) %%
    This convenience function shows what the internal sort keys look like. You need to know sort key format to select ranges of btree entries. This function returns the sort key for the current location, in a parent btree.
    %% pathBtreeSpec
    ( "treename" ) %%
    Return the sortSpec for a btree at the current location.
    %% pathChatCount %% Number of chat rooms in the current folder, or the empty string if the current location is not a folder.
    %% pathCreatedDate
    ( "format" ) %%
    (also %% setPathCreatedDate
    ( dateString ) %%)
    Creation date for the current location. A format is optional.
    %% setPathDate
    ( dateString ) %%
    Sets last modified date.
    %% pathDefaultContentType Returns the default content-type for the current location. This is determined by looking up the suffix of the pathName in Web Crossing's table that maps suffixes to content-type.
    %% pathDefaultRanking %% Returns the default ranking for a location. The default ranking is 12 bytes long, starting with 4 bytes of 0, followed by 8 bytes of date/time in an internal format. Using the default ranking will return the newest items first. Using the default ranking with the first 4 bytes replaced with other rankings will return items with the highest rankings first, and by date/time when the rankings are the same
    %% pathDelete %% Delete the current location without saving it to the deleted file.
    %% pathDepth %% If the current location is a message, then this is the nesting depth in the hierarchical threaded tree.
    A depth of 0 means that the message is at the top level: nested directly under the discussion topic.
    %% pathDestroy Destroy the current location and set the location to the original location.
    %% pathDiscussionCount %% Nested discussion count if the current location is a folder, otherwise empty.
    %% pathDocumentDataBinary %% Returns the data in an attachment. Data is returned in binary form with a mime header, followed by the data. To access the data portion only, you can use:
     
      % % set d pathDocumentDataBinary % % 
      % % set ix d.lookup( crlf & crlf ) % %
      % % set d d.remove( 0, ix+4 ) % % 
      
    %% pathDocumentDataQuoted %% Returns the data in an attachment. Data is returned in either quoted-printable or base64 form as appropriate with a mime header, followed by the data.
    %% pathDocumentIsImage %% Returns TRUE iff the current location is a document enclosure that is an image file.
    %% pathDocumentIsText %% Returns TRUE iff the current location is a document enclosure that is a text file.
    %% pathDocumentImgHeight %% Returns the height in pixels of a document or attachment that is an image, or the empty string for a non-image.
    %% pathDocumentImgWidth %% Returns the width in pixels of a document or attachment that is an image, or the empty string for a non-image.
    %% pathDocumentImgWidthHeight %% returns the string 'WIDTH="ww" HEIGHT="hh"' where ww is the width and hh the height in pixels of a document or attachment that is an image, or the empty string for a non-image.
    %% pathDocumentName %% If the current location is an enclosure document, then this returns the original name of the enclosure. If the item is not an enclosure, or if no name is available, then returns the empty string.
    %% pathDocumentSize %% Returns the size of the attachment and header with its default formatting.
    %% pathDocumentSizeBinary %% Returns the size of the attachment file in binary without any header.
    %% pathEmailFrom %%
    (also %% setPathEmailFrom
    ( address ) %%)
    From value for messages forwarded to the list, or blank to use the user's e-mail address.
    %% pathEmailMirror %%
    (also %% setPathEmailMirror %%)
    Mailbox from which to read e-mail list messages.
    %% pathEmailNotify %% Send emails to subscribed users, and post-through to any external email list .
    %% pathEmailPostsOk %%
    (also %% setPathEmailPostsOk
    ( flag ) %%)
    TRUE if messages posted by email are permitted.
    %% pathEmailPostThru %%
    (also %% setPathEmailPostThru
    ( flag ) %%)
    TRUE if messages posted to Web Crossing are forwarded to the e-mail list.
    %% pathEmailPW %% Password for pathEmailMirror mailbox.
    %% pathEmailReply %%
    (also %% setPathEmailReply
    ( address ) %%)
    Address to which to send messages posted directly to Web Crossing.
    %% pathEmailReplyTo %%
    (also %%setPathEmailReplyTo
    ( address ) %%)
    Reply-to value for messages forwarded to the list, or blank to use the user's e-mail address.
    %% pathEmailStripSig %% Signature to strip from tail of incoming messages.
    %% pathEnclosures %% Returns a blank-delimited list of enclosures at the current location. Each item in the list can be opened by using %% setPath( item ) %%.
    %% pathExists
    ( path ) %%
    Returns 1 if path exists, 0 if path does not exist.
    %% pathExport
    ( filename ) %%
    Export the current location to filename (which can be any expression). Will append to an existing file.
    %% pathExportTail
    ( filename ) %%
    Export export the tail of a discussion to filename (which can be any expression). Will append to an existing file. For this command, the current location must be the first message in the discussion to be exported. Only that message and following ones will be exported.
    %% pathFolderCount %% Nested folder count if the current location is a folder, otherwise empty.
    %% pathFolderItemCount %% Returns the total number of items in a folder.
    %% pathFooter %%
    (also %% setPathFooter
    ( footer ) %%)
    Footer, unformatted, for the current location.
    %% pathMessageId %%
    (also %% setPathMessageId %%)
    Open the specified message (will be either a discussion or a response in a discussion).
    If the specified ID does not exist, then the current location is empty.
    %% pathFromMessageId %%
    (also %% setPathFromMessageId %%)
    Open the specified message (will be either a discussion or a response in a discussion).
    If the specified ID does not exist, then the current location is empty.

    This allows you to check for a message by ID.
    NOTE: if the folder containing the discussion or message does not have a newsgroup name, then the ID cannot be opened in this way.

    %% pathHasAccessList Return 1 if the current location has an access list rather than inheriting its access list from its parent.
    %% pathHasBtree
    ( "treename" ) %%
    Return 1 if the current location has a btree with this name.
    %% if pathHasDiscussions %% Current location has nested discussions.
    %% if pathHasFolders %% Current location has nested folders.
    %% if pathHasItems %% Current location has nested items.
    %% if pathHasMessages %% Current location has nested messages.
    %% if pathHasNewMessages %% Current location has new messages for the current user.

    pathHasNewMessages checks to see if the current location or any nested items have not been read. For a folder, it checks to see if there are any new discussions or messages in the folder. For a discussion, it checks to see if the discussion has any new messages. For a message, it is the same as pathIsNew.

    To check to see whether a particular location only has been read, see pathIsNew.

    %% if pathHasOneDiscussion %% Current location has exactly one nested discussion.
    %% if pathHasOneFolder %% Current location has exactly one nested folder.
    %% if pathHasOneMessage %% Current location has exactly one message.
    %% if pathHasOneNewMessage %% Current location has exactly one new message for the current user.
    %% if pathHasTables %% True if the current location is a chat room/table in a room with multiple tables.
    %% pathHierLocation %% Return the location of the last path$var lookup, or the empty string if none. You can use this to change the current location, for example as % % setPath( pathHierLocation ) % %
    %% pathHitsDec %% Decrement the hits counter for the current location.
    %% pathHitsInc %% Increment the hits counter for the current location.
    %% pathHostCount%% Returns the number of host files in a folder
    %% pathHostDir%% Get the host directory mapping and excluded file/directory names for a folder. The format is a blank-delimited list where the first item is the host directory followed by an optional list of excluded names. The host directory is a series of URL-quoted names with / separators (e.g. the same format as an incoming URL). Each excluded name is URL-quoted
    (also %% setPathHostDir( dir ) %%)
    %% pathHostIds %% Evaluates to a list of host user IDs for the current location, separated by blanks
    %% pathHostName %% Evaluates to the host pathname of a file, which can be used in subsequent file read/write/etc directives. The pathHostName directive returns a pathname with forward-slash delimiters and url-quoted names. Note that pathHostName can also be used as a URL, it is always an absolute pathname.
    %% pathHosts( delim ) %% Evaluates to a list of host user names for the current location, separated by delim. For example,
    %% pathHosts( "<br>" ) %%
    %% pathHostSynch %% Resynch the current location to the host filesystem. NOTE: this is not done automatically by the setPathHostDir directive, it must be done either with this directive or manually through the sysop control panel.
    %% if pathHttpDownloads %%
    (also %% setPathHttpDownloads
    ( flag ) %%)
    Check to see if the current location supports enclosure downloads by regular users.
    %% pathHttpDownloadsLocal %% A flag (0 or 1) that indicates whether previously-uploaded Web-based attachments can be downloaded or not. (The sysop and hosts can always download.)
    %% if pathHttpUploads %%
    (also %% setPathHttpUploads
    ( flag ) %%)
    Check to see if the current location supports enclosure uploads by regular users.
    %% pathHttpUploadsLocal %% A flag (0 or 1) that indicates whether Web-based attachments can be uploaded or not. (The sysop and hosts can always upload.)
    %% pathIcon %% URL of icon for current location. pathIcon1 is the same as pathIcon, except that it never returns more than one threaded-nested-message icon
    %% pathIconFilename %% (also %% setPathIconFilename %% ) If set, returns filename of icon used by the built-in folder listing code. The logic is: (1) check pathIconFilename, if present then use it; (2) check for a nodeIcon method, if present then use it; (3) use the default icon logic.
    %% pathIconParent %% Same as pathIcon/pathIcon1 except they use the parent folder's icon instead of the current location's icon
    %% pathImport
    ( filename ) %%
    Import from filename into the current location (a folder). filename may be any expression.
    %% pathImportAsGuests
    ( filename ) %%
    Import from filename into the current location (a folder). filename may be any expression. Same as pathImport, but users in the import who do not already exist are treated as guests (e.g. they are not added as new registered users)
    %% pathInheritsByUserPreferences %% TRUE iff current location inherits its threading settings from its parent.
    %% pathInheritsEnclosures %%
    (also %% setPathInheritsEnclosures
    ( flag ) %%)
    TRUE iff current location inherits its enclosure settings from its parent.
    %% if pathIsAnonymous %%
    (%% setPathIsAnonymous
    ( flag ) %%)
    True if the current location is a chat room/table that allows anonymous users.
    %% if pathIsChat %% True if the current location is a chat room/table.
    %% if pathIsChild (loc) %% True if the current location is a child (at any level) of the specified location.
    %% pathIsCommon %% True if the current location has common (vs local) status for host files and folders.
    %% if pathIsDeleted %% Check whether a message has been deleted.
    %% pathIsHost %% Check whether the current location is a mirrored host file.
    %% pathIsListable %% Returns -1/0/1 for inherited/don't-list/list.
    %% pathIsLocal %% True if the current location has local (vs common) status for host files and folders.
    %% if pathIsNew %% Returns true if the current location is a folder, discussion or message, and this item has not yet been read by the user.

    You use setPath to set the current location to the the item to be checked. If the location is a discussion, then pathIsNew returns true only when the discussion has never been read at all. If the location is a message, then pathIsNew returns true if the highwater mark for that message indicates it has not been read. Note that threaded discussions have a separate highwater mark tracking each sub-thread. Linear conversations have a single highwater mark for the entire discussion.

    To check for any nested new messages, see pathHasNewMessages.

    %% if pathIsDiscussion %% Current location is a discussion.
    %% pathIsDocument %% Returns TRUE iff the current location is an enclosure document.
    %% if pathIsFolder %% Current location is a folder.
    %% if pathIsLink %% True if the current location is a link
    %% if pathIsMessage %% Current location is a message.
    %% if pathIsNone %% Not at a valid location
    %% if pathIsParent (loc) %% True if the current location is a parent (at any level) of the specified location.
    %% if pathIsPermanent %%
    (also %% setPathPermanent
    ( flag ) %%)
    Checks whether a discussion is permanent, i.e. never expires.
    %% if pathIsPlayLoopback %%
    (also %% setPathIsPlayLoopback
    ( flag ) %%)
    Same as playback loop mode for a chat room. The flag can be 0 (no loopback) or 1 (loopback).
    %% pathIsPlugin %% Checks whether an object is a plugin.
    %% if pathIsTop %% At top level.
    %% pathItemNumber %% The item number for a discussion or message. This number is assigned when the item is first created and never changes. You can use this number in a pathname URL to the item.
    %% pathItems %% Displays items in a folder or discussion in standard format. The display stops when the user's limits on message count or total size are reached.
    %% pathItemsAll %% Displays all items in a folder or discussion in standard format. Ignores user's limits on message count and total size.
    %% pathItemsAreAtEnd %% True if the list of messages goes through the last message.
    %% pathItemsInContext %% Displays items in a folder or discussion in standard format, and includes one or more previous messages to show context. The display stops when the user's limits on message count or total size are reached.
    %% pathItemsPrevious %% Displays items in a folder or discussion in standard format, showing previous items. The display stops when the user's limits on message count or total size are reached.
    %% pathItemsShowHidden %% List folder items including normally hidden (e.g. not listable) items.
    %% pathLinkCount %% Number of links in the current folder, or the empty string if the current location is not a folder.
    %% pathLinkToDiscussionCount %% The number of links to discussions in the current folder.
    %% pathLinkToFoldersCount %% The number of links to folders in the current folder.
    %% pathListItems %%
    (also %% setPathListItems
    ( flag ) %%)
    Folder setting to list items in that folder.
    %% pathMainRoom %%
    (also %% setPathMainRoom %%)
    Common room for a chat table.
    %% pathMarkAsRead %% Mark a location as having been read
    %% pathMarkAsReadAll %% Mark a location and all of its children as having been read
    %% pathMarkIndividual %%
    ( setting ) %%
    Mark individual messages for a user where setting is 0 or 1, and pathIsMarkedIndividual returns 0 or 1. These individual message marks are separate from the highwater-markmechanism. Individual-message marks are part of the export/import data associated with each user in a full-site export.
    %% pathMaxUsers %%
    (also %% setPathMaxUsers %%)
    Maximum users for a chat table. When this number is reached, an overflow table will be started automatically.
    %% pathMessage %%
    (also %% setPathMessage
    ( message ) %%)
    Message text (if a message item), unformatted.
    %% pathMessageCount %% Count of nested messages for current location and user. This count does not include any moved messages, or any deleted-and-not-showing messages for the current user.
    %% pathMessageTotal %% Total number of items in a discussion, including all deleted and moved messages
    %% pathMimeFrom %%
    %% setPathMimeFrom( value ) %%
    The "From" header for incoming MIME-formatted messages
    %% pathMimeOther %%
    %% pathMimeOther( value ) %%
    Other heading fields/values for incoming MIME-formatted messages. From/To are kept separately, all other header values are in other, including Reply-To. (pathMimeReplyTo is a convenience routing to extract the Reply-To value from the pathMimeOther values.)
    %% pathMimeReplyTo %% The "Reply-To" header for incoming MIME-formatted messages. This is a convenience routing to extract the Reply-To value from the pathMimeOther header values.
    %% pathMimeTo %%
    %% setPathMimeTo( value ) %%
    The "To" header for incoming MIME-formatted messages
    %% pathModeratedUserIds %% Evaluates to a list of moderated user IDs for the current location, separated by blanks.
    %% pathModeratedUsers( delim ) %% Evaluates to a list of moderated user names for the current location, separated by delim. For example,
    %% pathModeratedUsers( "<br>" ) %%
    %% pathModifiedDate
    ( "format" ) %%
    Last modified date for current location. A format is optional.
    %% pathMoveTo( destination ) %% Move a folder, chat room, link, node, discussion, or message to a new location Moving a message to a folder will start a new discussion. Moving a discussion to a discusssion or message will remove the discussion heading, make the first reply the new discussion heading, and insert the discussion heading as a reply to the destination.
    %% pathMoveTreeTo( destination ) %% Move a folder, chat room, link, node, discussion, or message to a new location. If the current location is a discussion, then the discussion and all nested messages are moved in all cases. If the current location is a message, then the message and all of its nested replies, to any level, are moved in all cases. Moving a message to a folder will start a new discussion. Moving a discussion to a discusssion or message will remove the discussion and insert it as a reply to the destination.
    %% pathName %% The name of a location.
    %% pathNameFullUri %% Deprecated.
    %% pathNameUriFull %% Returns the non-query URL plus http(s)://domain for the current location, such as "https://mydomain.com/system/test/index.html".
    %% pathNameUri %% Returns the non-query URL for the current location, such as "/system/test/index.html"
    %% pathNetHasObjectionable %% 1 if the current location has an objectionable word list or is checking for phone numbers in posts, 0 otherwise
    %% pathNetContentType %% Returns the net content-type for the current location. If the current location has an explicit content-type (e.g. pathContentType is not the empty string), that is returned. Otherwise the pathDefaultContentType is returned.
    %% pathNetLocal %% True if the current location has net local status for host files and folders.
    %% pathNetObjectionable %% Actual objectionable-word list used for the current location
    %% pathNetObjectionablePhone %% 1 if the current location is checking for phone numbers, otherwise 0
    %% pathNetMessageTitle %% TRUE iff net effect of all settings is to request a title for all messages.
    %% pathNetReplyTo %% TRUE iff net effect of all settings is to show a Reply button with each message.
    %% pathNetSummaryButton %% TRUE iff net effect of all settings is to show an Outline button next to discussions in their folder listing.
    %% pathNetTreeView %% TRUE iff net effect of path hierarchy settings (ignoring user settings) is to show as threaded messages.
    %% pathNetUrlHttpDomain %% Returns the net "http(s)://domain" for the current location.
    %% pathNewDiscussionCount %% Returns the number of new discussions in a folder (e.g. the discussions that have never been read at all by some user)
    %% pathNewIndividualCount %% Returns the number of new individually marked messages nested under a location, to any level. This counts messages that are not marked via pathMarkIndividual, and will count/ignore deleted messages according to the settings that control the display of deleted messages. pathNewIndividualCount includes both discussions and responses in its count.
    %% pathNewMessageCount %% Count of new messages for the current user in the current location.
    %% pathNewsGetFrom %%
    (also %% setPathNewsGetFrom
    ( ip:port ) %%)
    The external server for mirroring that we get new messages from. This value is a ip address and optional port, such as "206.52.123.1:119"
    %% pathNewsGetMode %%
    (also %% setPathNewsGetMode %%)
    The mode for getting messages from an external news server.
    This value can be "pull" or "pushed" to pull new messages from the external server, or to have new messages pushed from the external server to us.
    %% pathNewsGetUsername %%
    (also %% setPathNewsGetUsername
    ( loginName )%%)
    The login username for mirroring when pulling new messages.
    %% pathNewsGetPassword %%
    (also %% setPathNewsGetPassword
    ( loginPassword ) %%)
    The login password for mirroring when pulling new messages.
    %% pathNewsgroup %%
    (also %% setPathNewsgroup
    (name) %%)
    Newsgroup for current location.
    %% pathNewsMode
    ( mode ) %%
    (also %% setPathNewsMode
    ( mode ) %%)
    Control how we mirror a Web Crossing folder/newsgroup with external servers. This value can be "none," "site," or "custom," for no mirroring, use site defaults for mirroring, or use custom settings for this folder for mirroring.
    %% pathNewsSendPassword %%)
    (also %% setPathNewsSendPassword
    ( loginPassword ) %%)
    The login username for mirroring, when we send new messages.
    %% pathNewsSendTo
    ( ip:port ) %%)
    (also %% setPathNewsSendTo
    ( ip:port ) %%)
    This is the external server for mirroring, that we send new messages to. This value is a ip address and optional port, such as "206.52.123.1:119."
    %% pathNewsSendUsername %%
    (also %% pathNewsSendUsername
    ( loginName ) %%)
    Login username for mirroring when sending new messages.
    %% pathNntpPostsOk %%
    (also %% setPathNntpPostsOk
    ( flag ) %%)
    Allow external newsgroup clients to post messages without logging in, even though the access list on a newsgroup folder requires registered users only. This permits sites with large numbers of existing unauthenticated users to not require these users to login to post.
    %% pathNoAccessUserIds %% List of user IDs with no access to the current location, IDs are separated by blanks.
    %% pathNoAccessUsers( delim ) %% List of user names with no access to the current location, names are separated by delim.
    %% pathNodeCount %% Returns the number of nodes in a folder.
    %% if pathNoSubfolders %%
    (also %% setPathNoSubfolders %%)
    No subfolders may be added to the current location.
    %% pathObjectionable %%
    (also %% setPathObjectionable( list ) %%)
    Objectionable word list for a specific location in the pathname hierarchy
    %% pathParticipantIds %% Evaluates to a list of participant user IDs for the current location, separated by blanks.
    %% pathParticipants( delim ) %% Evaluates to a list of participant user names for the current location, separated by delim. For example,
    %% pathParticipants( "<br>" ) %%
    %% pathPlayFile %%
    (also %% setPathPlayFile
    ( name ) %%)
    Playback file for a chat table.
    %% pathPlayMillisecs %%
    (also %% pathPlayMillisecs
    ( msecs ) %%)
    Total playback time in milliseconds for a chat table.
    %% pathPlugTemplate %%
    (also %% setPathPlugTemplate
    ( templateEnvelopeName ) %%)
    If specified, the pathPlugTemplate for a location will be checked/used if a macro is not in the normal pathTemplate envelope. This is intended to allow plugin-style customization of new special objects that require their own set of macros, but want to use the plugin/wrapper macros for other things.
    %% pathPostsDec %% Decrement post counts for the current location.
    %% pathPostsInc %% Increment post counts for the current location.
    %% pathRanking %%
    (also %% setPathRanking
    ( ranking ) %%)
    Returns the ranking string for the current location. This string is used to sort items found by pathSearch, with the highest-ranked items returned first. The default ranking is by last-modified date/time, so that the newest items are returned first. Setting the ranking for a location to zero will stop returning the item from the search results, thus creating a way to suppress the searching of a location. Use:

    % % setPathRanking( "x".putchar(0,0) ) % %

    to stop searching an item.
    %% pathReadOnlyUserIds %% Evaluates to a list of read-only user IDs for the current location, separated by blanks.
    %% pathReadOnlyUsers( delim ) %% Evaluates to a list of read-only user names for the current location, separated by delim. For example,
    %% pathReadOnlyUsers( "<br>" ) %%
    %% pathRecordFile %%
    (also %% setPathRecordFile
    ( name ) %%)
    Recording filename for a chat table.
    %% pathRemoveBtree
    ( "treename" ) %%
    Remove an existing btree from the current location. If the tree does not exist then the command does nothing.
    %% pathRemoveEnclosure
    ( documentId ) %%
    Remove an enclosure from a location documentId is the uniqueID of the document, for example from a pathEnclosures list.
    %% setPathShowByUserPreferences
    ( flag ) %%
    Use this for threading.
    %% pathSearch
    ( spec ) %%
    Returns a list of locations matching a search specification. The whole site is searched. The spec is a blank-delimited list of keyword=value pairs. Values are URL quoted so that they do not contain any blanks. Returns items sorted by ranking, with the highest-ranked items first. The top 200 items, by ranking, are selected and returned. (You can use pathSort to sort these top results in some other way.)

    The specification can include the following:

  • keywords=list -- blank delimited list of search keywords (after URL dequoting)
  • date>datespec -- items must have dates > datespec
  • date>=datespec -- datespec is mm/dd/yy.hh:mm:ss
  • date=datespec
  • date<=datespec
  • date<datespec
  • skip=ss -- number of items to skip (default is 0)
  • count=cc -- number of items to display (default is 20)
  • deleted -- specifies that deleted messages are to be returned
  • in=location -- specifies that all returned messages are to be contained in location. location may be either a single location or a url-quoted/blank-delimited list of locations. For example,

    keywords=farm%20prices in=.ee345%20.ee4fde

    will look for messages containing both "farm" and "prices", contained in locations ".ee345" or in ".ee4fde".

  • granularity=d -- specifies that whole discussions are to be returned instead of individual messages. The normal logic is done, but multiple messages in a single discussion are returned as a single discussion entry.
  • maxResults=nn -- specifies the maximum number of search results to return. The default is 200. The highest priority (newest) items will be returned.
  • Only items the current user can access are returned.

    For example,

    %% set items pathSearch
     ( "keywords=testing%20software" ) %%
    will return up to 20 messages, discussions, or folders containing both the words testing and software.
    %% pathSelect
    ( "spec" ) %%
    Select a list of items in a folder or discussion. spec is an optional expression, and defaults to all items. It is a blank-delimited list of selection criteria:
  • type=fdlcmnph -- select type of items allowed, folder/discussion/link/chat/messages/nodes/plugins/host, such as type=f or type=fd. Note that the h option will return Web files whether or not the folder is marked as hidden or Web files are to be hidden
  • date>datespec, date>=datespec, date=datespec, date<=datespec, or date<datespec -- datespec is mm/dd/yy.hh:mm:ss. For example,
  • %% set myVariable "4/9/97.0:0" %%
    %% pathSelect ("date<" & myVariable ) %%
  • skip=ss -- number of items to skip, such as skip=10
  • count=cc -- number of items to check, such as count=20
  • treeorder -- return messages sorted in tree order instead of conversation order
  • new -- only select items that are unread by the current user
  • newMessages -- only select items that are unread, or contain unread messages for the current user (to any nesting depth)
  • notNew -- only select items that are already read by the current user
  • notNewMessages -- only select items that are not new, and do not contain unread messages for the current user (to any nesting depth)
  • <sort> pathSort_items... -- following the <sort> you can add any pathSort directives. Any selection will be done first, followed by the sort, then the count/skip specification will be used. A space is required on each side of the directive.
  • allAccess -- return items the user does not have read access. (Normally these are not returned.)
  • showHiddenFolders -- return hidden folders (normally these are not returned). Unless allAccess is specified, showHiddenFolders will still only show hidden folders if the current user is the sysop or a host for the current location. NOTE: if you want to sort a list that includes hidden folders, make sure you include "<select> showHiddenFolders" at the end of the sort specification, because it checks the validity of the sort list against the selection criteria.
  • You can specify a btree range, as btree.treename>key
    btree.treename>=key
    btree.treename=key
    btree.treename<=key
    btree.treename<key

    Key is URL-quoted. To select a range of items, use something like:
    btree.treename>=key1 btree.treename<=key2

    Note:

    Only the date "spec" currently works for btrees, since the btrees must be adjusted whenever node properties change. For example, if you are sorting on author, and the author of an item changes, then the btree has to change to reflect this.
    Only the btree auto-update for item dates has been implemented at this time.

    %% pathSetLocal (v) %% Set local vs common path status where v can be 1/0/-1 for local/common/default .
    %% PathShowAuthor
    ( flag ) %%
    (also %% setPathShowAuthor
    ( flag ) %%)
    The Flag is the location in the database that tells whether the author's name should be shown when that location is displayed.
    %% pathShowByUserPreferences %% (also %% setPathShowByUserPreferences %%) TRUE iff threading display is from user preferences.
    %% pathShowsLinkToParent %%
    (also %% setPathShowsLinkToParent
    ( flag ) %%)
    Tell whether the current location shows a link to parent items in threaded message format. This value can be set to 0 (no link), 1 (link), or -1 to inherit this setting from the parent location and/or the user's settings.
    %% setPathShowsLinkToParentLocal
    ( flag ) %%)
    Same as pathShowsLinkToParent, except this is the exact setting of the current location. I.e. it doesn't check the net setting if this value is in fact inherited from the parent location.
    %% pathShowsLinkToPrevious %%
    (also %% setPathShowsLinkToPrevious
    ( flag ) %%)
    Tell whether the current location shows a link to the previous item in threaded message format. This value can be set to 0 (no link), 1 (link), or -1 to inherit this setting from the parent location and/or the user's settings.
    %% pathShowsReplyTo %%
    (also %% setPathShowsReplyTo
    ( flag ) %%)
    Tells whether the current location shows a "Reply" button; always returns "1" if discussion is threaded. This value can be set to 0 (no Reply button), 1 (Reply button), or -1 to inherit this setting from the parent location.
    %% pathShowsSummaryButtonLocal %%
    (also %% setPathShowsSummaryButton
    ( flag ) %%)
    The flag controls whether the listing of a threaded discussion in a folder has a "summary icon" to show the discussion in outline format. The flag can be 0 for no summary icon, 1 for a summary icon, or -1 to inherit from the parent location.
    %% pathShowsThreaded %%
    (also %% pathShowsThreaded
    ( flag ) %%)
    Tell whether the current location shows discussions in threaded message format. Looks at both path settings and user preferences. This value can be set to 0 (not threaded), 1 (threaded), or -1 to inherit this setting from the parent location and/or the user's settings.
    %% pathShowsThreadedLocal
    ( flag ) %%)
    Same as pathShowsThreaded, except this is the exact setting of the current location. I.e. it doesn't check the net setting if this value is in fact inherited from the parent location.
    %% pathShowsTitle %%
    (also %% setPathShowsTitle
    ( flag ) %%)
    Tell whether the current location shows a title for each message. This value can be set to 0 (no title), 1 (title), or -1 to inherit this setting from the parent location.
    %% pathSubscribeOnly %%
    (also %% pathSubscribeOnly
    ( flag ) %%)
    Check whether subscriptions are for a given folder only, or automatically include all nested folders.
    %% pathSubscriptionList
    ( "med" ) %%
    )
    Returns a list of all subscribing users, with any subscription type. You can use pathSubscriptionList("m") for check-message subscriptions or, or "e" for email, or "d" for digests.
    %% list.pathSort
    ( "spec" ) %%
    Sort a list of location items. list is a blank-delimited list of unique pathname IDs, as returned from pathSelect. spec is a blank-delimited list of sort keys, from most to least significant:
  • type=fdlcmnh -- sort by item type, in the sequence specified, e.g. type=flcdmn sorts into folders, links, chats, discussions, messages, nodes, and host files
  • date=format -- by last-modified date, if format is omitted, then Y4M2D2H4I2S2 is used
  • created=format -- by creation date, if format is omitted, then Y4M2D2H4I2S2 is used
  • sortSeq -- by sortSeq value for each item
  • author.username -- by author last, first name field
  • author.userFirst -- by author first name field
  • author.userLast -- by author last name field
  • tagged -- if specified, the input list has a value following each location, which is preserved in the sorted output. So for example, ".ee123 xyz .ee456 abc".pathSort( "date tagged" ) might return ".ee456 abc .ee123 xyz". (Note that this allows the results from user.userSubscriptions to be sorted by various criteria and preserve the subscribed/unsubscribed settings in the list.)
  • title -- title
  • treeLevel -- Sort ascending, as the tree option.

  • treeLevel/d will sort in normal tree order, but with each level showing messages from newest to oldest.
    (In contrast, tree/d sorts by exactly reversing the normal tree order.)
  • parentTitle -- parent title
  • level -- by nesting depth in the discussion tree
  • messageNumber -- by message number
  • folderOrder -- for objects contained in a folder, sort into the same order used in the folder: all sub-folders first sorted by title, then all other object in the order they were added to the folder
  • path.userField -- by user-defined field
  • path.userField/t -- will treat as time/date info,
  • path.userField/n -- will treat as numeric info.
  • <select> pathSelect_items... -- following a <select> keyword, you can use any of the pathSelect specifications. All selection is done from the input list.
  • sortkeys -- if present, the sort key strings are URL-quoted and appended after each output location. Note that sort keys are only appended if a sort is actually done. NOP type pathSorts will just return the input list. The returned list is a series of

    item key item key...

    where key is the relevance string from the keywords, or the URL-quoted sort key returned by the sort macro. .

  • relevancy=list -- list of keywords (same as for pathSearch). This specifier sorts on the relevancy ratings for each location (basically the count of the number of words in the item). The sort is from low to high relevancy.
  • macro=name -- calls macro for each location to get the sort key.
  • reverse -- returns results in the reverse order of the normal sort.

  • Selection is done first, then the sort, finally any count/skip specifiers are used.

    Time/date formats may not contain blank characters.

    The sort is normally in ascending sequence (alphabetical or oldest to newest). You can add /d to any item to sort that key in reverse sequence. For example, Spec == "title date/d" will sort by title. If two items have the same title, then they are sorted with the most-recently-modified item first.

    You can use the /n, /t, and /d directives together. For example, "path.priority/n" will sort by a user-defined numeric priority field, from smallest to largest values. "path.priority/n/d" will sort by the same field, but from largest to smallest.

    You can specify a date format with path.userFields, such as path.userField/t=Y4M2D2.

    Descending sequence with a time/date format is specified after the format, as in date=Y4M2D2/d, or path.userField/t=Y4M2D2/d.

    %% pathStandardHeading %% Display standard heading for top-level, folder, or discussion.
    %% pathSortSeq %%
    %% setPathSortSeq( value ) %%
    Sort sequence in the item's parent folder. Higher numbers are sorted to the top.
    (For more information see Customizing Folders.)
    %% pathSource %% Returns the source of a discussion or message:
     http -- posted through a web browser
     stmp -- posted to an inbox from an incoming smtp email message
     pop3 -- from a mirrored email list, pulled from the list's pop3 mailbox
     imap -- posted to an imap folder via an imap client
     nntp -- posted via a news client
     local -- created by WCTL or JavaScript scripts
     direct -- created by a direct-access-protocol request
    
    %% setPathSource
    ( source ) %%)
    Set the source of a discussion or message to the specified string.
    %% pathTemplate %%
    (also %% setPathTemplate
    ( "template" ) %%)
    Template for location (i.e. folder template).
    %% pathTitle %%
    (also %% setPathTitle( "new title" ) %%)
    Title or name of current location. If the current location is a message, pathTitle returns title or name of the message's discussion.

    setPathTitle sets new title for current location. Setting a location returns true if the change was made, otherwise false. If the current location is a message, setPathTitle in opposition to pathTitle sets new title for the message, but not for the message's discussion.

    %% pathTitleRaw %% Title or name of current location without any quoting (pathTitle uses s.toSgmlNoEsc quoting, pathTitleUrl uses s.toUrl quoting).
    %% pathTitleUrl %% Title or name of current location, URL-quoted (e.g. blank is %20, etc.). If the current location is a message, pathTitleUrl returns title or name of the message's discussion, URL-quoted.
    %% pathTreeTitle %% Returns the title of a message (i.e. the "tree" title).
    (pathTitle returns the title of the message's discussion.)
    %% pathUrl %% URL to current location. Uses sysop setting to determine whether to return "normal" style URLs for Web files (e.g. /name/name... instead of /script?cmd@cert@location) for all locations except links. A certificate is still appended in the query string if necessary to keep the user logged in while processing a link.
    %% pathUrlCmd (command) %% Returns a URL for the current location with the specified command code or macro name.
    %% pathUrlCmdFull (command) %% Returns a full URL (e.g. with http(s)://domain/...) for the current location with the specified command code or macro name.
    %% pathUrlFull %% Returns a full URL (e.g. with http(s)://domain/...) to current location. Uses sysop setting to determine whether to return "normal" style URLs for Web files (e.g. /name/name... instead of /script?cmd@cert@location) for all locations except links. A certificate is still appended in the query string if necessary to keep the user logged in while processing a link.
    %% pathUrlHttpDomain %% Controls usage of http:// or https:// based on the site secure-forwarding setting.
    %% pathVirtualArea %% Get/set the flag that indicates that a location is a virtual area (e.g. that the backpath for nested items stops with this location).
    ( setPathVirtualArea(flag) sets the flag.)
    %% pathVirtualTopLevel %% Returns the location of the closest virtual folder to the current location (will be itself if the current location is a virtual folder)
    %% path$wrap_defaultFontFace %% Returns the local default font face.
    %% path$wrap_defaultFontSize %% Returns the local default font size.
    %% path$wrap_Images %% Returns the local images path setting; if set, supersedes siteImages. Can be modified so image settings can be changed on a folder-by-folder (or discussion-by-discussion) basis.
    %% path$wrap_Images %% Returns the local images path setting; if set, supersedes siteImages. Can be modified so image settings can be changed on a folder-by-folder (or discussion-by-discussion) basis.
    %% path$wrap_iconColumnWidth %% Returns the width of the icon column in a folder. If non-zero, wrap_iconColumnWidth is used by the built-in folder listing code to add a spacer following all icons. This value is cached, reset the webx.tpl file if the value changes.
    %% path$wrap_Icons %% Returns the local icon path setting; if set, supersedes siteIcons. Can be modified so icon settings can be changed on a folder-by-folder (or discussion-by-discussion) basis.
    %% path$wrap_Background %% Returns the local background setting; if set, supersedes siteBackground, background, and pathBackground (deprecated). Can be modified so individual settings can be changed on a folder-by-folder (or discussion-by-discussion) basis.
    %% pictSizeButton %% WIDTH and HEIGHT for button icon.
    %% pictSizeConversation %% WIDTH and HEIGHT for conversation icon.
    %% pictSizeDivider %% WIDTH and HEIGHT for pathname divider icon.
    %% pictSizeFolder %% WIDTH and HEIGHT for folder icon.
    %% pictSizeInlineButton %% WIDTH and HEIGHT for inline button icon.
    %% pictSizeLink %% WIDTH and HEIGHT for inline link icon.
    %% pictSizeOutline %% WIDTH and HEIGHT for outline button icon.
    %% pictSizePlugin %% WIDTH and HEIGHT for plugin icon.
    %% pictSizeSite %% WIDTH and HEIGHT for site icon.
    %% platform %% Site host-computer platform.
    %% pluginCreate( title ) %% Create a new plugin object in the current folder.
    %% id.userPostCount %% Return the number of posts tracked for a user. id is a hexadecimal unique user ID.
    %% prefsEmailError %% Error message for e-mail change or none. This variable is only valid for a user preferences page.
    %% prefsNewEmail %% New e-mail address. This variable is only valid for a user preferences page.
    %% prefsNewName %% New user name from preferences form. This variable is only valid for a user preferences page.
    %% if prefsPasswordError %% Password change error to report. This variable is only valid for a user preferences page.
    %% prefsPasswordMessage %% Message for password change (an error only if prefsPasswordError is set). This variable is only valid for a user preferences page.
    %% prefsRenameMessage %% Error message for rename or none. This variable is only valid for a user preferences page.
    %% prefsSubscrUpdated %% Message for subscription list update. This variable is only valid for a user preferences page.
    %% prefsSysopCertificate %% Sysop authorization certificate when the sysop is changing a user's preferences. This variable is only valid for a user preferences page.
    %% if preparedFor %% Default %% Prepared for... %% heading or none if turned off.
    %% privatePlayback filename %% Same as enterRoom, but creates a room for a private playback. This room is destroyed as soon as the user leaves it.
    %% programDesc %% A short description of the server program.
    %% string.putChar
    ( ix, char ) %%
    Put a character into a string and returns the new string. If the string is a variable, then the character is put into the variable, changing its value. ix is 0-origin. For example, "abc".putChar( 1, 'x' ) is "axc". With a variable,
    %% set testVar "abc" %%
     %% testVar.putChar( 1, 'x' ) %%
     -- now testVar is "axc"
    If ix is the length of the string, then the string is extended by one character. So "".putChar( 0, 13 ).putChar( 1, 10 ) starts with an empty string, extends it by one character to become a string with a single carriage-return, and then extends it again to add a linefeed. The result is the standard Internet carriage-return/linefeed line terminator.

    Q

    » Variable Usage
    %% "macroname".queue
    ( delayMsecs, param1, param2 ) %%

    %% "macroname".queue
    ( time, param1, param2 ) %%

    You can queue a macro for later execution (i.e. similar to chron on Unix). You can either specify a delay in milliseconds or an absolute date/time via a timeObject string. The default delay time is 0, and the default param1/param2 are the empty string.

    For example, %% "backgroupCheck".queue( 3600000 ) %% will run the "backgroupCheck" macro in one hour. (To have this macro run every hour, just have it requeue itself.)

    To run a macro at the next 3AM, you could use the following code:

     %% // calculate "t" to be the next 3am from now %%
     %% set now date( dateObject ) %%
     %% set t now.dateAddSeconds( 24*60*60 ) // 24 hours from now %%
     %% set t t.dateSetHours( 3 ) // Want next 3 am date/time %%
     %% set t t.dateSetMinutes( 0 ) %%
     %% set t t.dateSetSeconds( 0 ) %%
     %% if if t.dateLessThan( now ) %%
     %% set t t.dateAddSeconds( 24*60*60 ) // 24 hours from today's hour %%
     %% endif %%
     %% "myMacro".queue( t, param1, param2 ) %%
    When the queued macro runs, use %% qParam1 %% and %% qParam2 %% to reference the param1 and param2 parameters.
    %% queueClear( name ) %% Clears all pending queued macros with the specified name. If name is omitted, then all queued macros are cleared.
    %% string.quickEdit %% Process a string with the Web Crossing quick editor, usually applied to user posts. For example, "i in italic" is "<i>in italic</i>".

    If you use both quickEdit and htmlClosure, do the quickEdit first, as in myPost.quickEdit.htmlClosure.

    R

    » Variable Usage
    %% randomString %% An 11-character random string.
    %% registeredHeading %% Heading for Registration Completed page, formatted.
    %% registerError %% Error message during registration form layout.
    %% registerHeading %% Heading for New User Registration page, formatted.
    %% if registerIs %% Kind of registration page being prepared.
    Kind
    -------------
    normal
    failure
    noName
    duplicateName
    invalidName
    noEmail
    badEmail
    noPassword
    badPassword
    %% user.removeUserFromGroup
    ( group ) %%
    Remove a user from a group. For example, user.removeUserFromGroup( "abc" ) will remove the current user from the group abc.
    %% string.replace( from, to, startIx, length ) %% Replace a section of a string, where startIx defaults to 0, length defaults to the remainder of the string following startIx. For example,

    	"xyzy".replace( "y", "abc" ) return "xabczabc" 
    
    The from pattern is not case-sensitive.
    %% responsePost %% Standard form for posting a response.
    %% s.revertHtmlLinks %% Revert automatic conversion of pasted links back to the original link (it converts "<a href=xxx>yyy</a>" to "xxx").
    %% rollForward
    ( "variable" ) %%
    Enable roll-forward logging of "varname." This means that shut-down/restarts will preserve the value of this variable. varname can be "site.var," "path.var," or "user.var." (All variables are saved in the roll-forward log unless turned off by a prior noRollForward directive.)
    %% roomError %% Error message after entering a chat room.
    %% roomHandle %% Handle ID to send to Java client after entering a chat room.
    %% roomIp %% IP for Java client to call to enter the chat room.
    %% roomIsHost %% Test whether the current user is a host for HTML chat pages.
    %% roomPort %% Port for Java client to call to enter the chat room

    S

    Returns 1 if the new email address is set, else the empty string. < <
    » Variable Usage
    %% scriptError %% Error from last exce or cgi command. The empty string if no error.
    %% searchItems %% Total number of matching items found by the last pathSearch. For example, if the first 15 of 200 items were returned by pathSearch, then searchItems would be 200.
    %% secsFrom1970 %% Time in seconds since 1970, in GMT.
    %% selectUsers
    ( specification ) %%
    Return a list of users matching some selection criteria. The returned list is blank-delimited unique user IDs in hexadecimal.

    The specification is a blank-delimited list of fieldname=value pairs. The '=' delimiter can be '*' for a prefix match, e.g. userfirst*ti to match all first names starting with "ti." The values must be URL quoted so that they do not contain any blanks.

    Special fieldnames start with "user":

  • usermax, max matching items to return, defaults to 50 if not specified
  • userskip, number of matching items to skip
  • userFirst, user first name
  • userLast, user last name
  • userEmailname, user name in e-mail address
  • userDomain, domain in e-mail address
  • userName, user name (last, first)
  • userEmail, email address
  • userEmailCode, email code
  • userHomePage, home page
  • userFolderSortBy, folder items sort sequence
  • userRespNameSize, font size for names in responses
  • userRespInfoSize, font size for other info in responses
  • userRespBodySize, font size for body text in responses
  • userLogoutTime, logout time in seconds
  • userMaxData, max characters per response page
  • userMaxMessages, max messages per response page
  • user2ndLine, second line of user info
  • userAlias, email alias
  • userBio, user bio
  • userUrls, user URLs
  • All other fieldnames are user-defined fields, such as city=San%20Francisco or user.city=San%20Francisco (city and user.city are equivalent).

    %% selectRandomUser %% Return a randomly selected user unique ID.
    %% string.selfRef %% Insert correct certificate in all local URLs.
    %% if serveInfoPictures %% Site is serving user pictures in the personal information page only.
    %% if servePictures %% Site is serving user pictures everywhere.
    %% sessionIsDigest %% Returns TRUE IFF the current request is digest authenticated .
    %% sessionIsBasic %% Returns TRUE IFF the current request is basic authenticated .
    %% session.name %% Return the current value of a session variable, or the index of a saved container for use in subsequent scXxx calls.
    %% sessionWebAuthSlot %% Returns the slot number for an authenticated session.
    %% set session.name value %% Save a string or number into a session variable.
    %% ... session.name ... %% Return the current value of a session variable, or the index of a saved container for use in subsequent scXxx calls.
    Guest session values are preserved when the user logs in or registers.
    %% sessionWebAuthCert %% Returns the session certificate for an authenticated session.
    %% sessionWebAuthSlot %% Returns the slot number for an authenticated session.
    %% sessionWebAuthUserID %% Returns the user ID for an authenticated session.
    %% sessionZeroSeqNo %% Causes the current session to always use a zero sequence number. This can be used for robots to make sure they only make a single pass through the site.
    %% setAuthor
    ( id )%%
    Set the current author to a particular user, and clear the location. The user id is the hexadecimal unique ID of a user.
    %% set httpDataFromServer url.http
    ( timeout, header ) %%
    Issue an HTTP or HTTPS request and wait for the response,
    where "url"" is the full URL to GET, such as %% set webx "http://webcrossing.com/new302/compare.shtml".http %% or %% set webx "https://webcrossing.com/new302/compare.shtml".http %%.

    Returns the response to the HTTP request, or an error message starting with an '*'. The timeout is in seconds and defaults to 30 seconds. For example, %% set d "http://webcrossing.com/".http( 10 ) %% will fetch the top-level page from the Web Crossing site, with a timeout of 10 seconds. header is 1 to return the whole response including the header, or 0 to return just the body of the response. default for header is 0.

    %% set httpDataFromServer url.httpReq
    ( request, timeout==30, header ) %%
    where "url" is the address of the HTTP/HTTPS server, and "request" is a fully-formatted HTTP request including all CR/LF characters. The timeout is in seconds and defaults to 30 seconds. header is 1 to return the whole response including the header, or 0 to return just the body of the response. default for header is 0.

    Allows you to generate a POST or other requests. For example, %% "http://ipAddress.com/".httpReq( "GET /xxxx?abc HTTP/1.0" & CRLF & CRLF ) %%.

    The data is returned from the HTTP/HTTPS server, or an error message starting with a '*'.

    Error messages returned by url.http/url.httpReq include:

         * Http request timeout
    	-- Connection timeout
         * Can't create connection
    	-- Connection was refused or to many outstanding connections
         * Connection error:	xxx
    	-- Connection was dropped
         * Bad response
            -- The response doesn't contain html data
         * Server response code: xxx
    	-- URL error, e.g. "404 not found"
    
    %% setModuleName
    ( name )%%
    Set name of a customized module. If set, module name is displayed in control panel
    %% setModuleVersion
    ( string )%%
    Set version of a customized module. If set, module version is displayed in control panel
    %% setPath
    ( location ) %%
    Set current location. If no location is specified, then the location is reset to the location from the user's URL. location can be any expression.

    To set the location to the top-level folder, use %% setPath( "/" ) %%.

    %% setPathAuthor
    ( userID ) %%
    (also %% setPathAuthor
    ( userUniqueId ) %%)
    Sets the author of the current location.
    %% setPathContentType Sets the content-type for the current location.
    %% setPathFollowLink %% If the current location is a link, then reset the current location as if the user had followed that link. That is, the link will become part of the current path hierarchy.
    %% setPathId( id ) %% Change the unique ID of the current location. id can be either an integer unique ID, or a location string (such as ".a32e45").
    %% setPathListable( flag ) %% Set the "hidden" status of a folder. Flag values are -1 to inherit status, 0 for listable (not hidden), 1 for hidden.
    %% setPathname( name ) %% Set name of a location.
    %% setPathNoLink( location ) %% Set a location to a link instead of automatically following the link. For example, if ".aaaa" is a link to ".bbbb", then:

        setPath( ".aaaa" ) sets the current location to ".aaaa.bbbb"
        setPathNoLink( ".aaaa" ) sets the current location to ".aaaa"
    %% setPathToLink %% If the current location is a link, then reset the current location to be the location the link points to. This is as if the user had gone directly to the link destination without going through the link; the link will not be part of the current path hierarchy.
    %% setPathToGroup( groupname ) %% Sets the current location to a user group. This permits using the pathXXX commands to examine and modify the access list for a user group.
    %% setPathToParent %% Set the current location to its parent folder.
    If the current location is a message, changes the current location to be the parent location (message or discussion) of the current location. (See also setPathToTreeParent.)
    %% setPathToTreeParent %% If the current location is a message, change the current location to the parent item of this message (either the parent threaded message or the discussion itself). (See also setPathToParent.)
    %% setSiteFullBackground( bg ) %% Set the site's background formatting string.
    %% setSiteMaxEmailMessages(n) %% Set the number of email messages stored for a user (their inbox, both read and unread, including any nested folders). This is the default setting if a specific limit has not been set for a user.
    %% setSiteResponseTimeFormat( format ) %% Set the site's time formatting for messages including any time zone information.
    %% setSiteTimeFormat( format ) %% Set the site's default time formatting including any time zone information.
    %% user.setUser2ndLine
    ( text ) %%
    Set new 2nd-line text for a user. For example, user.setUser2ndLine( "Hi there" ) will set the 2nd-line for the current user to "Hi there."
    %% user.setUserAlias
    ( text ) %%
    Set new email alias for a user. For example, user.setUserAlias( "Bill Smith" ).
    %% user.setUserBio
    ( text ) %%
    Set new biographical text for a user. For example, user.setUserBio( "Hi there" ) will set the biographical text for the current user to "Hi there."
    %% u.setUserBouncedEmail
    ( flag ) %%
    Set the flag for checking if a user has bounced e-mail. For example, u.setUserBouncedEmail( 1 ) makes the user's e-mail bounced.
    %% u.setUserChatPreference
    ( chatType ) %%
    Set the type of chat service used in a chat room for a user. For example, u.setUserChatPreference( "JavaApplet" ) will set the type of chat service for the current user to "JavaApplet".
    %% user.setUserCheckChangePassword
    ( flag )
    %%
    Set the flag for checking if a user has to change password the next time he or she logs in. For example, user.setUserCheckChangePassword( 1 ) will turn the flag on, and the user will have to change password the next time he or she logs in.
    %% u.setUserCheckRemoteAddr
    ( value ) %%
    Set a user's flag for checking the remote IP address as part of authenticating an incoming certificate.
    %% user.setUserDigestTimes
    ( timeList ) %%
    Sets a new list of e-mail digest mailing times for a user. For example, user.setDigestTimes( "10200 31200" ) will set the digest mailing times for the current user to Sunday, 2:00 am and Tuesday 12:00 pm.
    %% user.setUserEmail
    ( text ) %%
    Set new e-mail address for a user. For example, user.setUserEmail( "x@y.z" ) will set the e-mail address for the current user to "x@y.x."
    %% user.setUserEmailAliases
    ( text ) %%
    Set new e-mail aliases for a user. For example, user.setUserEmailAliases( "x@y.z" ) will set the e-mail alias for the current user to "x@y.x."

    If text is duplicate alias, or already in use for someone else, then new e-mail alias is not set for the user.

    Sysop can allow users to set their own e-mail aliases. If the users are not allowed to set their own e-mail aliases, then only the sysop or superhosts can set e-mail aliases for users.

    %% user.setUserFolderSortBy
    ( option ) %%
    Set new folder sort sequence for a user. For example, user.setUserFolderSortBy( "oldestCreated" ) will set the folder sort sequence for the current user to "oldestCreated."
    You can set option to be "oldestCreated," "newestModified," "default," "newestCreated," or "alphabetically."
    %% user.setUserFullEmail
    ( flag ) %%
    Set the flag for sending URL notification or full messages in email for user's e-mail subscriptions. For example, user.setUserFullEmail( 1 ) will set the flag to send full messages by e-mail for the current user.
    %% user.setUserHomePage
    ( text ) %%
    Set new home page address for a user. For example, user.setUserHomePage( "http://www.webcrossing.com/" ) will set the home page address for the current user to "http://www.webcrossing.com/."
    %% user.setUserImap ( value ) %% Set value where v can be 0, 1 or "default" to turn IMAP services off, on or reset-to-default
    %% user.setUserImapIsSpecific
    ( flag ) %%
    Set the flag for checking whether the default site settings are used, or whether the user property
    ( userImapSpecific ) is used to determine if a user has an IMAP access to his or her e-mail account. For example, user.setUserImapIsSpecific( 1 ) will set the flag for using the user property ( userImapSpecific ) to determine whether the IMAP e-mail service is enabled for the user.
    %% user.setUserImapSpecific
    ( flag ) %%
    Set the flag for checking if the IMAP e-mail service is enabled for a user. For example, user.setUserImapSpecific( 1 ) will turn the user property ( userImapSpecific ) on in the user preferences to enable the IMAP e-mail service for the user.
    %% user.setUserIsProvisional
    ( flag ) %%
    Set new provisional status for a user. For example, user.setUserIsProvisional( 0 ) will make the current user not provisional. Also see siteProvisionalIsReadOnly and siteProvisionalIsModerated.
    %% user.setUserLogoutTime
    ( minutes ) %%
    Set new logout time in minutes for a user. For example, user.setUserLogoutTime( 30 ) will set automatic logout time to 30 minutes.
    %% user.setUserMaxData
    ( bytes ) %%
    Set new maximum data length for a discussion listing in bytes for a user. For example, user.setUserMaxData( 10000 ) will set the page limit to 10,000 bytes for a discussion listing.
    %% user.setUserMaxEmailMessages
    ( count ) %%
    Set new maximum number of e-mail messages allowed in the user's inbox. For example, user.setUserMaxEmailMessages ( 10 ) will set the maximum number of messages per user's e-mail box to 10 messages.
    %% user.setUserMaxMessages
    ( count ) %%
    Set new maximum number of messages for a discussion listing in bytes for a user. For example, user.setUserMaxMessages( 15 ) will set the maximum message count to 15 per piece of discussion listing.
    %% user.setUserName
    ( newName ) %%
    Set user's name. For example, user.setUserName( "Bob Smith" ) will set the current user's name to "Bob Smith." The function returns TRUE if the name change was performed, or 0 if the new name is already in use.
    %% user.setUserPassword
    ( newPassword ) %%
    Set user's password. For example, user.setUserPassword( "abc" ) will set the current user's password to "abc." The function returns TRUE if the password change was performed, or 0 if the change could not be made. Note: this function does not check the security of the supplied password. Do not set the sysop password to "sysop," as this will temporarily disable Web Crossing.
    %% user.setUserPickedEmailBox
    ( flag ) %%
    Set the flag for checking if a user has chosen whether to receive e-mail to a local e-mail address or to have it forwarded to an external e-mail address. For example, user.setUserPickedEmailBox( 1 ) will turn the flag on for the user to have chosen whether to receive e-mail locally or to the external mailbox.
    %% user.setUserPicture
    ( pictureData ) %%
    Set a user's picture. pictureData is a string containing the binary image. This must be a valid jpeg or gif image, or the empty string.
    %% user.setUserPictBorder
    ( flag ) %%
    Set the flag for showing a border around user pictures. For example, user.setUserPictBorder( 0 ) will turn off the border around user pictures.
    %% user.setUserPop3 ( value ) %% Set value where v can be 0, 1 or "default" to turn POP3 services off, on or reset-to-default
    %% user.setUserPop3IsSpecific
    ( flag ) %%
    Set the flag for checking whether the default site settings are used, or whether the user property
    ( userPop3Specific ) is used to determine if a user has a POP3 e-mail account. For example, user.setUserPop3IsSpecific( 1 ) will set the flag for using the user property ( userPop3Specific ) to determine whether the user has the POP3 account.
    %% user.setUserPop3Specific
    ( flag ) %%
    Set the flag for checking if the POP3 e-mail service is enabled for a user. For example, user.setUserPop3Specific( 1 ) will turn the user property ( userPop3Specific ) on in the user preferences to enable the POP3 e-mail service for the user.
    %% user.setUserRespBodySize
    ( fontSize ) %%
    Set the font size for message body text. FontSize can be 1 through 6. For example, user.setUserRespBodySize( 5 ) will set the font size for message body text to 5.
    %% user.setUserRespInfoSize
    ( fontSize ) %%
    Set the font size for message information text. FontSize can be 1 through 6. For example, user.setUserRespInfoSize( 5 ) will set the font size for message information text to 5.
    %% user.setUserRespNameSize
    ( fontSize ) %%
    Set the font size for message author text. FontSize can be 1 through 6. For example, user.setUserRespNameSize( 5 ) will set the font size for message author text to 5.
    %% user.setUserShowPictures
    ( flag ) %%
    Set the flag for showing user pictures. For example, user.setUserShowPictures( 0 ) will turn off user pictures.
    %% user.setUserShowPrepared
    ( flag ) %%
    Set the flag for showing "prepared for" at the top of each page. For example, user.setUserShowPrepared( 0 ) will turn off the "prepared for" text.
    %% user.setUserSpellCheckIgnores
    ( wordList ) %%
    Set a new list of personal spelling words for a user. For example, user.setUserSpellCheckIgnores( "JavaScript superhosts" ). You can set multiple entries, one per line (use crlf between lines).
    %% user.setUserUrls
    ( urlList ) %%
    Set the list of favorite URLs for a user. For example, user.setUserUrls( "http://www.webcrossing.com/ Web Crossing" ). You can set multiple entries, one per line (use crlf between lines).
    %% user.setUserUseCookies
    ( flag ) %%
    Set the flag for using cookies. For example, user.setUserUseCookies( 0 ) will turn off cookies.
    %% user.userUseEmoticons %%
    (also %% user.setUserUseEmoticons (flag) %% )
    Get/set a user's emoticons preference. Default is to use them.
    %% user.setUserWebEmail ( value ) %% Set value where v can be 0, 1 or "default" to turn web email services off, on or reset-to-default
    %% user.setUserWebEmailIsSpecific
    ( flag ) %%
    Set the flag for checking whether the default site settings are used, or whether the user property
    ( userWebEmailSpecific ) is used to determine if a user has a Web e-mail account. For example, user.setUserWebEmailIsSpecific( 1 ) will set the flag for using the user property ( userWebEmailSpecific ) to determine whether the user has the Web e-mail account.
    %% user.setUserWebEmailSpecific
    ( flag ) %%
    Set the flag for checking if the Web e-mail service is enabled for a user. For example, user.setUserWebEmailSpecific( 1 ) will turn the user property ( userWebEmailSpecific ) on in the user preferences to enable the Web e-mail service for the user.
    %% if showPreparedFor %% Show %% Prepared for... %% line for current user.
    %% siteAllowsHttpBasic %% TRUE iff site is using HTTP basic authentication.
    %% siteBuildDate %% Returns builds date of binaries of current instance.
    %% if siteCanAutoRegister %% Users may auto-register.
    %% if siteCanSearch %% Search button is enabled in nested folders and discussions.
    %% siteCertExpires %% Returns number of days to expire, -1 if no limit, 0 if expired.
    %% siteCertIsOld %% Returns 1 if the certificate is for an old version, else 0.
    %% siteCertIsSeats %% Returns 1 if the certificate is seat-based.
    %% siteCertLicense %% Returns license (Platinum, 5T, 5S, etc).
    %% siteCertLimitItems %% Returns item limits, LE 0 for no limit.
    %% siteCertLimitSeats %% Returns seat limits, LE 0 for no limit.
    %% siteCertLimitPages %% Returns page limits, LE 0 for no limit.
    %% siteCharSet %% ( also %% setSiteCharset( string ) %%) Returns the site character set.
    %% siteChatSeats %% Returns number of chat seats, LE 0 for no limit.
    %% siteFullBackground %% Returns site's background string. This is the same value as bodyTag for the top-level folder
    %% siteHasEmailServices %% TRUE iff site has e-mail services (i.e. DNS server address is available).
    %% siteHasNews %% TRUE iff news service is enabled for the site.
    %% siteHasPasswordForm %% TRUE iff site has a 2-stage login using a separate password form.
    %% siteHasWebEmail %% TRUE iff site has e-mail boxes (i.e. Web-based email is available).
    %% button.siteIconsImg( langDir, alt, attrs, spacerToWidth ) %% Returns a full image <img...> tag for a file from the site icons directory.
    %% button.siteIconsUrl( langDir ) %% Returns the URL of a file from the site icons directory.
    %% button.siteIconsWidth( langDir ) %% Returns the width in pixels of a file from the site icons directory, or 0 if the size is not available.
    %% button.siteIconsHeight( langDir ) %%Returns the height in pixels of a file from the site icons directory, or 0 if the size is not available.
    %% button.siteIconsInput( langDir, alt, attrs ) %% Returns a full <input type="image"...> tag for a file from the site icons directory
    %% button.siteImagesImg( langDir, alt, attrs, spacerToWidth ) %% Returns a full image <img...> tag for a file from the site images directory.
    %% button.siteImagesUrl( langDir ) %% Returns the URL of a file from the site images directory.
    %% button.siteImagesWidth( langDir ) %% Returns the width in pixels of a file from the site images directory, or 0 if the size is not available.
    %% button.siteImagesHeight( langDir ) %%Returns the height in pixels of a file from the site images directory, or 0 if the size is not available.
    %% button.siteImagesInput( langDir, alt, attrs ) %% Returns a full <input type="image"...> tag for a file from the site images directory
    %% siteIsSlave %% TRUE iff site is mirror in a source/mirror cluster.
    %% siteLogEmailFilename %% Returns the value of the "Log Email" filename from the sysop control panel.
    %% siteLogPort %% Returns the current port being logged, 0 for all, -port for all except port, or a specific port number
    %% siteMaxItemsPerPage %% Returns the number of items displayed per page in a folder or threaded-discussion summary.
    %% siteMaxMessages %% Returns the number of messages displayed in a discussion page.
    %% siteName %%
    %% setSiteName( name ) %%
    Site name/title.
    %% if siteProvisionalIsModerated %% true if provisional users have moderated access
    %% if siteProvisionalIsReadOnly %% true if provisional users have read-only access
    %% siteOldDbVersion %% Return the previous database internal version number
    %% if siteOneSearch %% Search the Net via Forum One.
    %% if siteCanSearchTop %% Top-level search button is enabled.
    %% if siteCreateDiscussChoice %% TRUE iff the sysop has enabled users to choose the type of discussion at the time they create it.
    %% site.cssRev %% Counter, incremented on template cache resets, picture/font form changes, and banner/header/footer form changes.
    %% siteMaxDiscussHeading %% Returns the maximum number of characters allowed for discussion headings.
    %% siteMaxEmailMessages %% The number of email messages stored for a user (their inbox, both read and unread, including any nested folders). This is the default setting if a specific limit has not been set for a user.
    %% siteMaxFolderHeading %% Returns the maximum number of characters allowed for folder headings.
    %% siteMaxMessage %% Returns the maximum number of characters allowed in a message.
    %% siteMaxTitle %% Returns the maximum number of characters allowed in a folder or discussion title.
    %% setSite86edEmail( list ) %% Set the list of email addresses that are not allowed for registered users at this site.
    %% setSiteCertificate( certificate ) %% Install a new certificate for the server
    %% setSiteCalendar( path ) %% Set path to site calendar directory
    %% siteDbVersion %% Return the current database internal version number
    %% setSiteDocs( path ) %% Set path to site documentation files directory
    %% setSiteEmail( new address ) %% Set site email address.
    %% setSiteHelp ( path ) %% Set path to site help files directory
    %% setSiteHttpAllowDeny ( list ) %% Set the allow/deny list for HTTP access
    %% setSiteIcons( path ) %% Set path to site icons directory
    %% setSiteImages( path ) %% Set path to site images directory
    %% setSiteLogoutTime( minutes ) %% Set the default logout time
    %% setSiteMisc( path ) %% Set path to site miscellaneous files directory
    %% setSiteWebMap( table ) %% Set the current web service mapping and redirection table.
    %% showsiteBuildDateInt %% Returns the current build date as yyyymmdd. For example, a build done on Apr 6, 2003 would return 20030406. This makes it easy for templates to check for server functionality that requires a build as of some specific date.
    %% siteDbId %% Returns the unique database ID for this site. This ID is used in locally-generated message IDs for NNTP requests.
    %% siteDiscussionShowAuthor %% TRUE iff the author of a discussion is shown in the discussion's heading.
    %% siteDiscussionShowSysop %% TRUE iff the sysop is author of a discussion and is shown in the discussion's heading.
    %% siteDocs %%/syshelp.htm Sysop-documentation-directory URL string from sysop general settings.
    %% siteEmail %% Site email address (same as sysopEmail).
    %% siteEmailDomains %% Returns the list of local email domains.
    %% if siteEmailValidate %% Site is validating user e-mail as part of the registration process.
    %% siteEmailValidateTemplate %%
    %% setSiteEmailValidateTemplate( template ) %%
    Get/set the email validation template
    %% siteEmoticons %%
    %% setSiteEmoticons( directory ) %%
    Get/set the URL of the directory for emoticons.
    %% siteEmoticonsDefinition %%
    %% setSiteEmoticonsDefinition( definition ) %%
    Get/set the site emoticons mapping .
    %% siteFolderShowAuthor %% TRUE iff the author of a folder is shown in the folder's heading.
    %% siteFolderShowSysop %% TRUE iff the sysop is shown in folder headings when this user is the author.
    %% siteHasFtp
    (also setSiteHasFtp ) %%
    TRUE if the site is configured to enable FTP service.
    %% siteHasWebEmail
    (also setSiteHasWebEmail ) %%
    TRUE if the site is configured to enable Web email.
    %% siteHelp %%/picthelp.htm End-user help-directory URL string from sysop general settings.
    %% siteHost %% Domain name of the Web server used to access Web Crossing.
    %% siteHostAccessEdit %% TRUE iff hosts can edit their access lists.
    %% siteHostDirectoryDelim %% Returns the directory delimiter for the current host (/ for Unix, \ for Windows, : for Mac).
    %% siteHostFull %% Full access/domain/portomain name of the Web server used to access Web Crossing. For example, this might evaluate to "http://mydomain.com:8000", or to "https://mydomain.com", etc.
    %% siteHtmlActive %%
    (also %% setSiteHtmlActive
    ( flag ) %%)
    Get/set whether or not the site is serving HTTP (direct web service or DWS).
    %% siteHtmlCompressionActive %%
    (also %% setsiteHtmlCompressionActive
    ( flag ) %%)
    Get/set the HTTP compression setting.
    %% siteHtmlRemove %% List of html tags removed for user posts for this site.
    %% siteHttpAllowDeny %% Returns the allow/deny list for HTTP access
    %% siteHttpDataFiles %%
    (also %% setSiteHttpDataFiles
    ( directory ) %%)
    Get/set the directory for serving static html files.
    %% siteHttpDownloads %% Returns TRUE iff the site allows Web-based (HTTP) downloads.
    %% siteHttpUploads %% Returns TRUE iff the site allows Web-based (HTTP) uploads.
    %% siteIcons %% Icons-directory URL string from sysop general settings.
    %% siteImages %% Buttons-directory URL (used to be all images) string from sysop general settings.
    %% siteImap
    (also setSitesiteImap) %%
    TRUE if the site is configured to enable IMAP.
    %% siteImapAllowDeny %%
    (also %% setSiteImapAllowDeny
    ( list ) %%)
    Get/set the site IMAP allow/deny list.
    %% siteIndexSearchStatus %% Returns status of search engine, such as "indexing."
    %% siteIp %% Returns site IP address.
    %% if siteIsSecure %% Site is running through a secure server, so use https:// instead of http:// in forwarded URLs.
    %% siteLicensee %% Site licensee name.
    %% siteLogoutTime %% Returns default automatic logout time in minutes.
    %% siteIcons %% Icons-directory URL string from sysop general settings.
    %% siteMisc %% Miscellaneous-files-directory URL string from sysop general settings.
    %% siteMySubscribers %% TRUE iff a site allows users to subscribe other users to their discussions
    %% siteNntpAllowDeny %%
    (also %% setSiteNntpAllowDeny
    ( list ) %%)
    Get/set the NNTP allow/deny list.
    %% siteRelayAfterLogin %%
    (also %% setSiteRelayAfterLogin
    ( flag ) %%)
    Get/set the number of minutes where a login is considered recent.
    %% siteRelayAllowDeny %%
    (also %% setSiteRelayAllowDeny
    ( list ) %%)
    Get/set the site SMTP relay allow/deny list.
    %% sitePop3
    (also setSitePop3AllowDeny) %%
    TRUE if the site is configured to enable POP3.
    %% sitePathLimit %%
    (also %% setSitePathLimit
    ( limit ) %%)
    Get/set the maximum length of a pathname before switching to query-style urls. .
    %% sitePop3AllowDeny %%
    (also %% setSitePop3AllowDeny
    ( list ) %%)
    Get/set the site POP3 allow/deny list.
    %% siteResponseTimeFormat%% Returns site's time formatting for messages including any time zone information.
    %% siteSearchIsReady %% TRUE iff a pathSearch command can be processed.
    %% siteScriptName %%
    (also %% siteScriptName ( value )
    Get/set the script name.
    %% siteServerName %%
    (also %% setSiteServerName ( value )
    Get/set the server name.
    %% siteSmtp
    (also setSiteHasSmtp ) %%
    TRUE if the site is configured to enable SMTP service.
    %% siteSmtpForwarding
    (also setSiteHasSmtpForwarding ) %%
    TRUE if the site is configured to enable SMTP forwarding service.
    %% siteSmtpAllowDeny %%
    (also %% setSiteSmtpAllowDeny
    ( list ) %%)
    Get/set the SMTP allow/deny list.
    %% siteSysopIsTemplate %% TRUE iff the site is configured so that sysop posts are evaluated as WCTL macros.
    %% siteSysopUseQuickEdit %% TRUE if the site uses the quick-editor for host/sysop posts.
    %% siteStripsHtml %% TRUE if when html is stripped from all non-sysop/non-host posts, else returns FALSE.
    %% siteTemplateDir %%
    %% setSiteTemplateDir %%
    Get/set the site's template subdirectory path.
    %% siteTemplateErrors %% Return the error messages for the current templates.
    %% siteTemplateStatus %% Return the return the template status.
    %% siteTimeFormat %% Site time format.
    %% siteTimeZoneSuffix %% Site time zone suffix, derived from the current siteTimeFormat.
    %% siteTitle %%
    %% setSiteTitle( "title" ) %%
    Site title.
    %% siteToolbarAcross %% Number of buttons across for old-style toolbar.
    %% siteUrl %% URL to top-level site page.
    %% if siteUseCookies %% TRUE if the site is configured to use cookies.
    %% siteUseDiscussions
    (also setSiteUseDiscussions) %%
    TRUE if the site is configured to enable discussions.
    %% siteUseEmailScript %% TRUE iff site uses a script to get a user's e-mail address.
    %% siteUseEmoticons %% TRUE if the site is configured to use emoticons.
    %% siteUserRegisters %% TRUE iff site allows users to register other users.
    %% siteUsersSetAliases %% TRUE iff site allows users to set their own email aliases.
    %% if siteUseQuickEdit %% TRUE if the site is configured to use the quick-editor for sysop/host HTTP posts.
    %% siteUseTemplates %% Return 1/0 when the site's templates are on/off .
    %% siteUseWctlUsers %%
    (also %% setSiteUseWctlUsers
    ( f ) %%)
    Get/set whether the wctlUsers group is used to control access to templates.
    %% siteUseWebAuthenticate %% Returns 1 IFF the site uses either HTTP basic or HTTP digest authentication, or both. Otherwise, returns 0. CGI implementation always returns 0.
    %% siteUseWebBasic
    (also setSiteUseWebBasic) %%
    Get/set the site setting to use HTTP Basic authentication. CGI implementation always returns 0
    %% siteUseWebDigest
    (also setSiteUseWebDigest) %%
    Get/set the site setting to use HTTP Digest authentication. CGI implementation always returns 0
    %% siteUseWebSecureSessions
    (also setSiteUseWebSecureSessions) %%
    Get/set the site setting to use SSL for registered user sessions.
    %% siteWebFileLimit %%
    (also %% setSiteWebFileLimit
    ( limit ) %%)
    Get/set the maximum length of a webfile pathname before switching to query-style urls. Default is 70 characters.
    %% siteWebMap %% Returns the current web service mapping and redirection table.
    %% siteWrapperInside %% Returns 1/0 for inside/other.
    %% siteWrapperMode %%
    %% siteSetWrapperMode( v ) %%
    Returns -1/0/1 for outside/none/inside. If the site wrapper is on, then superBanner/superFooter are automatically inserted in all pages. If this is set to outside, it means the order is superBanner/banner...footer/superFooter. If this is set to inside, the order is banner/superBanner...superFooter/footer.
    %% siteWrapperOutside %% Returns 1/0 for outside/other.
    %% siteUserDefaultReplyTo %% TRUE iff site default is for a user to see a Reply button with each message.
    %% siteUserDefaultThreading %% TRUE iff site default is for a user to view as threaded messages.
    %% siteVersion %% Returns version number of current instance.
    %% statusExtras %% The output of this macro is appended to the html section of the returned value from the 199@@ command. The macro should return a series of HTML-formatted lines with
    breaks between each line.
    %% statusExtrasXml %% The output of this macro is appended to the XML section of the returned value from the 199@@ command. The macro should return XML-formatted text.
    %% string.spellCheckSetup
    ( count ) %%
    Sets up a spell-checking dialog for a string, with up to count words having correction pull-down menus.
    %% string.split
    ( delim ) %%
    Split the first token off a string. delim defaults to a blank (' '). For example, "abc def".split is "abc"; "abc def".split( 'e' ) is "abc d."
    If split is applied to a variable, the token and delimiter are removed from the variable. For example,
    %% string.splitCount
    ( delim ) %%
    Count the number of tokens in a string splitting on delim. delim defaults to a blank (' '). For example, "abc def".splitCount is 2.
    %% string.splitEmail %% Split the first email address off a string.
    If splitEmail is applied to a variable, the token and delimiter are removed from the variable. For example,
    %% set myVar "Joe Smith, abc@xyz" %%
    %% set token myVar.splitEmail %%
    -- now myVar is "abc@xyz" and token is "joes@abc.com"
    %% string.splitList %% Split the first token off a string, where tokens are delimited by white-space, LF/CR, commas, and semicolons.
    If splitList is applied to a variable, the token and delimiter are removed from the variable. For example,
    %% set myVar "abc, def" %%
    %% set token myVar.splitList %%
    -- now myVar is "def" and token is "abc"
    %% string.substring
    ( ix, count ) %%
    Get a substring of a string. ix is 0-origin. count is not required, if omitted defaults to the whole string string. For example, "abc".substring( 1, 2 ) is "bc"; "abcdefg".substring( 2 ) is "cdefg".
    %% synch
    ( "varname" ) %%
    Enable master/slave synchronization of "varname." This means that each master/slave server process will have the same value for this variable. varname can be "site.var," "path.var," or "user.var." (All variables are synched unless disabled by a prior noSynch directive.)
    %% sysopAction
    ( request ) %%
    Process a Web Crossing request as the sysop. For example, sysopAction( "abc@@.aedd34!user=xxx&info=yyy" ) would run the command/macro "abc" with the location ".aedd34", with form input fields user=xxx and info=yyy. Note that the input fields, if any, must be URL-quoted values. For example, the value "abc def&hij" would be URL-quoted to "abc%20def%26hij" for use in a sysopAction URL.

    Also see takeAction.

    %% sysopEmail %% Sysop e-mail address.

    T

    » Variable Usage
    %% string.tail
    ( delim ) %%
    Split the last token off a string. delim defaults to a blank (' '). For example, "abc def".tail is "def"; "abc def".tail( 'd' ) is "ef."
    If tail is applied to a variable, the token and delimiter are removed from the variable. For example,
    %% set myVar "abc def ghi" %%
    %% set token myVar.tail %%
    -- now myVar is "abc def" and token is "ghi."
    %% takeAction
    ( request ) %%
    Process a Web Crossing request as the current user. For example, takeAction( "abc@@.aedd34!user=xxx&info=yyy" ) would run the command/macro "abc" with the location ".aedd34", with form input fields user=xxx and info=yyy. Note that the input fields, if any, must be URL-quoted values. For example, the value "abc def&hij" would be URL-quoted to "abc%20def%26hij" for use in a takeAction URL.

    Also see sysopAction.

    %% time format %% Current time, with an optional format.
    %% string.textToHtml %% Convert hard line-breaks to <br> and blank lines to <p>.
    %% string.toBase64 %% Convert a string to base-64. (Base-64 is a MIME encoding format.)
    %% string.toJIS %% Convert to 7-bit Japanese characters.
    %% string.toJisIfSiteIsJapanese %% Convert to 7-bit Japanese characters if the site default charset is Japanese. Otherwise just return the same string.
    %% string.toShiftJIS %% Convert to 8-bit Japanese characters.
    %% string.toLower %% Convert to lower case. This function may be applied to either a string or an integer character. For example, "AbC".toLower is "abc"; 'A'.toLower is 'a'.
    %% toQuotedPrintable %% Convert a string to quoted-printable. (Quoted-printable is a MIME encoding format.)
    %% toolbar %% Default toolbar.
    %% toolbarAfter %% HTML to insert after toolbar.
    %% toolbarBefore %% HTML to insert before toolbar.
    %% toolbarBetween %% HTML to insert between toolbar rows.
    %% string.toSGML %% Convert to SGML quoted format. For example, "<b>".toSGML is "&lt;b&gt;".
    %% string.toSgmlNoEscs %% Convert to SGML quoted format but leave any SGML escaped characters in the original string. For example, "&xxx".toSgml returns "&amp;xxx" , but "&xxx".toSgmlNoEscs returns "&xxx". This allows titles, for example, to keep special characters.
    %% string.toUpper %% Convert to upper case. This function may be applied to either a string or an integer character. For example, "AbC".toUpper is "ABC"; 'a'.toUpper is 'A'.
    %% string.toURL %% Convert to URL quoted format. For example, "The path".toURL is "The%20path".
    %% string.toXML %% Convert to XML quoted format. Unlike string.toXMLData, escapes control and other special characters but does not escape newlines. Recommended for text strings.
    %% string.toXMLData %% Converts to XML quoted format, escaping all control and other special characters including newlines. Recommended for raw data strings.
    %% string.trim %% Remove leading and trailing white space. For example, " abc ".trim is "abc".

    U

    » Variable Usage
    %% unknownUserHelp %% Standard help text for an unknown user.
    %% urlBase %% %% /...webx? %% portion of a Web Crossing URL.
    %% urlBaseSlash %% The URL pathname for the root WebX folder.
    %% urlBaseSlashFull %% Same as % % pathNetUrlHttpDomain & urlBaseSlash % %
    %% use macroname %% Call a macro
    %% useParent macroname %% Call a parent folder's macro. The response works up the hierarchy tree, so the nested useParent calls will continue until all of the macros in the current hierarchy have been called. The current location is used for the first useParent, but is not changed/used for subsequent nested calls -- instead, the current parent is saved and used to find the next higher one, until the top-level macro with that name (if any) is called.
    %% u.userPathAccess %% Return "host," "participant," "readOnly," "moderated," or "none."
    %% u.setUserPathAccess
    ( access ) %%
    Set access for a user u This may be "default" access to remove the user from the explicit access list pathClearAccess to clear the access list
    For u.userPathAccess and u.setUserPathAccess, you can use the built-in variables:
    userOthers -- access for other registered users
    userGuests -- access for guest users
    %% if useChatService %% This site has chat services enabled.
    %% user %%
    %% id.user %%
    User unique ID in hexadecimal. Used in user.function expressions.
    %% user2ndLine %%
    %% id.user2ndline %%
    Second line of information. id is a hexadecimal unique user ID.
    %% u.userAddSubscriptions
    ( subscriptionTypes ) %%
    Subscribes a user to the current location (folder or discussion) by the specified subscription types (i.e. allowing the user to receive new messages by web, by e-mail, and to receive digests of new messages by e-mail).

    subscriptionTypes is a string containing the literals that define the subscription type:
    "m" - allows the user to receive new messages by web;
    "e" - allows the user to receive new messages by e-mail;
    "d" - allows the user to receive digests of new messages by e-mail.

    If subscriptionTypes argument is not provided or argument is an empty string, the default subscription type "m" is used.

    %% userAlias %%
    %% id.userAlias %%
    User email alias. id is a hexadecimal unique user ID.
    %% userAgent %% Client browser "userAgent" string.
    %% id.userAwayHours %% Number of hours user has been away (e.g. the number of hours between the current login and the prior login). id is a hexadecimal unique user ID.
    %% userBio %%
    %% id.userBio %%
    User biographical information. id is a hexadecimal unique user ID.
    %% userBouncedEmail %%
    %% id.userBouncedEmail %%
    User has bounced e-mail (i.e. no messages will be sent to the user, until his/her next login and check/confirm his/her e-mail address). id is a hexadecimal unique user ID.
    %% if userCanAddDiscussions %%
    %% if id.userCanAddDiscussions %%
    User can add discussions to current location. id is a hexadecimal unique user ID.
    %% if userCanAddFolders %%
    %% if id.userCanAddFolders %%
    User can add folders to current location. id is a hexadecimal unique user ID.
    %% if userCanAddLinks %%
    %% if id.userCanAddLinks %%
    User can add links to current location. id is a hexadecimal unique user ID.
    %% if userCanAddMessages %%
    %% if id.userCanAddMessages %%
    User can add messages to current location. id is a hexadecimal unique user ID.
    %% if userCanDelete %%
    %% if id.userCanDelete %%
    User can delete the current location. id is a hexadecimal unique user ID.
    %% if userCanEdit %%
    %% if id.userCanEdit %%
    User can edit to current location. id is a hexadecimal unique user ID.
    %% if id.userCanView %% User can view the current location. id is a hexadecimal unique user ID.
    %% u.userChatPreference %% Type of chat service used in a chat room for a user. This can be "JavaApplet" or "HTML".
    %% userCheckChangePassword %% Returns TRUE if the user has to change password the next time he or she logs in.
    %% u.userCheckPassword
    ( password ) %%
    Check a user's password. Returns TRUE iff the password is correct.
    %% user.userCheckRemoteAddr %% Flag for checking remote IP address for a user's certificate on each URL.
    %% u.userClearSubscriptions %% Clear's a user's subscription list.
    %% u.userCountNewEmail %% Number of new (unread) email messages for a user
    %% userCreate
    ( name ) %%
    Create a new user. Returns the user ID if successful, or the empty string if not.
    %% siteUserDefaultSummaryButton %% TRUE iff site default is for a user to see an Outline button next to discussions in their folder listing.
    %% u.userDestroy %% Destroy a user.
    %% u.userDate( format ) %% Date/time a user was created. u is a hexadecimal unique user ID.

    format is a string containing a list of time/date specifiers, mixed with literal characters. For example, "M2/D2/Y4.H4:I2:S2", "Www, M D2, Y4, H4:I2:S2", etc.
    format is optional. If the format is omitted, the default date/time format defined in the sysop control panel is used.

    %% u.userDefaultDomain %% Default domain name of the server used to provide e-mail boxes for the registered Web Crossing users. u is a hexadecimal unique user ID.
    %% u.userDigestTimes %% List of e-mail digest mailing times for a user. u is a hexadecimal unique user ID.
    %% userEmail %%
    %% id.userEmail %%
    E-mail address. id is a hexadecimal unique user ID.
    %% userEmailAliases %%
    %% id.userEmailAliases %%
    User's e-mail aliases (i.e. multiple different e-mail addresses for the same user), or "" if the user doesn't have e-mail aliases set in his or her preferences. id is a hexadecimal unique user ID.

    Sysop can allow users to set their own e-mail aliases. If the users are not allowed to set their own e-mail aliases, then only the sysop or superhosts can set e-mail aliases for users.

    %% userEmailCode %%
    %% id.userEmailCode %%
    User's e-mail code assigned for automatic e-mail validation. id is a hexadecimal unique user ID.
    %% userField field %% Obsolete, use user.varName. Additional custom fields added to user's information record. For example, you could add phone number, address, customer number, etc. field is the name of the additional field.

    In the input registration or user preferences form, use an input name of "user.XXXX," where "XXXX" is the field name you will use with this variable.

    (See the example section on adding your own fields.)

    %% if userFolderSortBysequence %%
    %% id.userFolderSortBy %%
    The sort-sequence used to list folders for this user.
    Sequence
    -------------
    oldestCreated
    newestModified
    default
    newestCreated
    alphabetically
    id is a hexadecimal unique user ID.
    %% u.userForwardTo %%
    %% u.setUserForwardTo( address )%%
    Forwarding address for incoming email. If set, all email sent to this user will be forwarded as specified.
    %% u.userFtpHome %%
    %% u.setUserFtpHome( home )%%
    Get/set a user's home FTP directory.
    %% u.userFullEmail %% Flag for sending URL notification or full messages in email for user's e-mail subscriptions.
    %% u.userGroups %% List of user group unique IDs the user belongs to, or "" if the user doesn't belong to any user group. u is a hexadecimal unique user ID.
    %% userHasCookie %% TRUE iff the current user was validated by a webxUser cookie.
    %% if u.userHasImap %% TRUE iff the user has an IMAP access to his or her e-mail account (i.e. the IMAP e-mail service is enabled for the user, and the user is provided with personal e-mail box).
    %% if u.userHasNoAccess %% User has no access to the current location. u is a hexadecimal unique user ID.
    %% if userHasPicture %%
    %% if id.userHasPicture %%
    User has picture. id is a hexadecimal unique user ID.
    %% if u.userHasPop3 %% TRUE iff the user has a POP3 e-mail account (i.e. the POP3 e-mail service is enabled for the user, and the user is provided with personal e-mail box).
    %% if userHasRespBodySize %% Check whether the user has specified a font size for the body of a message.
    %% if userHasRespInfoSize %% Check whether the user has specified a font size for the secondary information in messages.
    %% if userHasRespNameSize %% Check whether the user has specified a font size for the user name in message.
    %% if u.userHasNewEmail %% Check whether a user has any new (unread) email messages.
    %% if id.userHasSubscriptions %% Check whether the user has any subscription list.
    %% if u.userHasWebEmail %% TRUE iff the user has a Web e-mail account (i.e. the Web e-mail service is enabled for the user, and the user is provided with personal e-mail box).
    %% userHomePage %%
    %% id.userHomePage %%
    Home page URL. id is a hexadecimal unique user ID.
    %% userImapIsSpecific %%
    %% u.userImapIsSpecific %%
    Check whether the default site settings are used, or whether the user property ( userImapSpecific ) is used to determine if a user has the IMAP access to his or her e-mail account. u is a unique user ID.
    %% userImapSpecific %%
    %% u.userImapSpecific %%
    TRUE if the user preference is to have the IMAP e-mail service enabled for a user. u is a unique user ID.
    %% u.userImportMailSpool( data ) %% Import Unix mail spool data as email messages for a user. See the webxextn.tpl importMailSpoolProcess macro for an example of how this is used.
    %% if u.userInboxIsFull %% Check whether a number of messages in the user's Inbox is greater or equal to the limit set in the user preferences or in the sysop control panel.
    %% userIsCgiUser %%
    also %% u.userIsCgiUser %%
    Returns 1 if the user is sysop/superhost or is a member of the cgiUser group
    %% u.userIsDeleted %% Returns 1 if the user user is deleted, but is still in the database because he/she is attached to one or more posts, 0 if the user is not deleted and is a real user, or the empty string if "u" is not a user.
    %% if userIsGuest %%
    %% if id.userIsGuest %%
    Guest user (i.e. the user has posted as a guest). (Also see userIsUnknown.) Internally, a "guest" user is one who has logged in as a guest to post some item. Prior to becoming a guest, a user is "unknown". id is a hexadecimal unique user ID.
    %% if userIsHost %%
    %% if id.userIsHost %%
    Host user (for the current location). id is a hexadecimal unique user ID.
    %% if userIsHostOrSysop %%
    (also user.UserIsHostOrSysop)
    Sysop or host user (for the current location).
    %% userIsHttpBasic %% TRUE iff the current user was authenticated through HTTP Basic.
    %% user.userIsMember
    ( group ) %%
    Check for membership in a group. user is the unique ID of a user; group can be any string expression. The result of this expression is the empty string if there is no group with the specified name. Otherwise, the result is 1 or 0.

    For example,

    user.userIsMember( "hosts" )
    will return 1 when the current user is a member of the hosts group.
    %% user.userIsMemberAny
    ( groupName ) %%
    Check for membership in a group and also all nested groups, to any level .
    %% id.userIsModerated %% Check whether a user is moderated at the current location. id is the unique ID of a user.
    %% if id.userIsParticipant %% Check whether a user is a participant at the current location. id is the unique ID of a user.
    %% if userIsProvisional %%
    %% if id.userIsProvisional %%
    Provisional user. id is a hexadecimal unique user ID.
    %% id.userIsReadOnly %% Check whether a user is read-only at the current location. id is the unique ID of a user.
    %% if userIsRegistered %%
    %% if id.userIsRegistered %%
    Registered user. id is a hexadecimal unique user ID.
    %% if userIsSubscribed %%
    %% if id.userIsSubscribed %%
    User is subscribed to the current location. id is a hexadecimal unique user ID.
    %% if userIsSubscribedDigest %%
    %% if id.userIsSubscribedDigest %%
    User is subscribed to the current location by the Email Digest subscription method (i.e. the user gets an email digest of new messages, sent to the user on a regular basis). id is a hexadecimal unique user ID.
    %% if userIsSubscribedEmail %%
    %% if id.userIsSubscribedEmail %%
    User is subscribed to the current location by the Email subscription method (i.e. the user gets an email message every time a new message is posted). id is a hexadecimal unique user ID.
    %% if userIsSubscribedMsgs %%
    %% if id.userIsSubscribedMsgs %%
    User is subscribed to the current location by the Check Messages subscription method (i.e. the user sees new messages when he clicks on Check Messages, and sees new messages in his Message Center page). id is a hexadecimal unique user ID.
    %% if userIsSuperhost %%
    %% if id.userIsSuperhost %%
    Superhost user (treated as sysop except for site service IPs, ports, etc. settings)
    %% if userIsSysop %%
    %% if id.userIsSysop %%
    Sysop user. id is a hexadecimal unique user ID.
    %% if userIsUnknown %%
    %% if id.userIsUnknown %%
    User has neither logged in nor posted as a guest. id is a hexadecimal unique user ID.
    %% userIsWctlUser %%
    also %% u.userIsWctlUser %%
    Returns 1 if the user is sysop/superhost or is a member of the wctlUsers group
    %% if id.userLastLogin
    ( date ) %%
    Checks last login prior to date. id is a hexadecimal unique user ID.
    %% id.userLastLoginValue( format ) %% Returns prior login date/time before the last (or current) login for a user ID, or "" if the user has not been logged in Web Crossing yet. id is a hexadecimal unique user ID.

    format is a string containing a list of date/time specifiers, mixed with literal characters. format is optional. If it is omitted, the default date/time format defined in the sysop control panel is used.

    %% userLogoutTime %%
    %% userLogoutTime %%
    User logout time in minutes. id is a hexadecimal unique user ID.
    %% userLastExport
    ( name ) %%
    Returns the name of the last file exported by user if successful, or the empty string if not.
    %% userLookup
    ( name ) %%
    Lookup a user by name. Returns the user ID if successful, or the empty string if not.
    %% u.userMailbox %% Local email address for a user (versus userEmail, which is the external email address).
    %% user.userMarkCurrent %% Mark a user's subscription list as current.
    %% userMaxData %%
    %% id.userMaxData %%
    Maximum number of data bytes in a list of messages. id is a hexadecimal unique user ID.
    %% userMaxEmailMessages %%
    %% id.userMaxEmailMessages %%
    Maximum number of e-mail messages allowed in the user's inbox. id is a hexadecimal unique user ID.

    If the maximum number of e-mail messages is not specified for the user, the site defaults set in the sysop control panel is used.

    %% userMaxMessages %%
    %% id.userMaxMessages %%
    Maximum number of messages in a list of messages. id is a hexadecimal unique user ID.
    %% username %%
    %% id.username %%
    Name. id is a hexadecimal unique user ID.
    %% u.userName %% Return user's name, or group's name for use with groupCount or groupItem, etc. ("u" can be a group's user-handle-ID.)
    %% set id string.usernameLogin( password ) %% "string" is a user's name to attempt to log in. This function returns the userId if a valid login, or else returns the empty string. This function will use the normal authentication logic; for example, if authentication is via a Radius server, then this function will call the Radius server for the authentication.
    %% u.userNetEmail%% Return the email address for sending email to the user, after taking into account local mailboxes, forwarding, etc. This is the empty string if email delivery is not available at this point in time.
    %% u.userNewMessages
    ( max==-1, skip==0, location==toplevel ) %%
    Returns a blank-delimited list of locations that have new messages for a user. maxMessages is optional and defaults to all messages. skip is optional and defaults to 0. userNewMessages gives preference to the current location, so use %% setPath("/") %% first to get a list in the normal site-wide order.
    %% u.userNextDigest( format ) %%

    Returns a scheduled date/time when the next digest of messages will be sent for a user by e-mail, if there is any message that is waiting to be sent for the user. u is a hexadecimal unique user ID.

    format is a string containing a list of date/time specifiers, mixed with literal characters, e.g.: "M2/D2/Y4.H4:I2:S2", "Www, M D2, Y4, H4:I2:S2", etc. format is optional.

    If the format is omitted, the date is formatted as a dateObject.

    %% u.userNextDigestCount %% Returns a number of messages that are waiting to be sent for a user as a digest by e-mail. u is a hexadecimal unique user ID.
    %% u.userNextDigestList %% Returns a list of messages queued for e-mail digest as message location unique IDs. u is a hexadecimal unique user ID.
    %% u.userOutsideEmail %% Outside e-mail address for a user (i.e. the user's contact e-mail address). If not set, or the user
    has forwarding e-mail address set, the function returns user's forward e-mail address to.
    %% userPickedEmailBox %%
    %% u.userPickedEmailBox %%
    TRUE if the user has chosen whether to receive e-mail to a local e-mail address ( userMailbox ) or to have it forwarded to an external e-mail address ( userEmail ). u is a unique user ID.
    %% if userPictBorder %%
    %% if id.userPictBorder %%
    Show picture borders for this user. id is a hexadecimal unique user ID.
    %% userPicture %%
    %% id.userPicture %%
    URL to user's picture.
    %% userPop3IsSpecific %%
    %% u.userPop3IsSpecific %%
    Check whether the default site settings are used, or whether the user property ( userPop3Specific ) is used to determine if a user has the POP3 e-mail account. u is a unique user ID.
    %% userPop3Specific %%
    %% u.userPop3Specific %%
    TRUE if the user preference is to have the POP3 e-mail service enabled for a user. u is a unique user ID.
    %% u.userPasswordMD5%% Return MD5 hash of the user's original password
    %% u.userPostCount %% Number of posts tracked for this user.
    %% u.userPosts( count ) %% Return a list of most recent posts by a user, if "track user posts" is enabled. count is optional and defaults to the 5 most recent messages.
    %% userRegisteredTd %% Return the date when a user registered. Also setUserRegisteredTd( dateObj ).
    %% u.userRemoveSubscriptions
    ( subscriptionTypes ) %%
    Cancels a user's subscription methods (i.e. allowing the user to receive new messages by web, by e-mail, and to receive digests of new messages by e-mail) to the current location (folder or discussion).

    subscriptionTypes is a string containing the literals that define the subscription type:
    "m" - allows the user to receive new messages by web;
    "e" - allows the user to receive new messages by e-mail;
    "d" - allows the user to receive digests of new messages by e-mail.

    If subscriptionTypes argument is not provided or argument is an empty string, the default subscription type "m" is used.

    %% u.userReplyTo %% TRUE if user preference is to show a Reply button with each message.
    %% userRespBodySize %%
    %% id.userRespBodySize %%
    The font size for message bodies (0 if not specified by the user).
    %% userRespInfoSize %%
    %% id.userRespInfoSize %%
    The font size for secondary information in a message (0 if not specified by the user). id is a hexadecimal unique user ID.
    %% userRespNameSize %%
    %% id.userRespNameSize %%
    The font size for user names in a message (0 if not specified by the user). id is a hexadecimal unique user ID.
    %% usersCount %% Number of registered users.
    %% if userShowPictures %%
    %% id.userShowPictures %%
    Include user pictures with messages. id is a hexadecimal unique user ID.
    %% if userShowPrepared %%
    %% if id.userShowPrepared %%
    Show the "prepared for..." line at the top of each page. id is a hexadecimal unique user ID.
    %% userList.userSort( spec ) %% Sort a list of userIDs. spec is a blank-delimited string (use quotes) containing a list of sort rules. Each item can be :

    username -- sort by "last, first" username;
    first -- sort by first name;
    last -- sort by last (or only) name;
    user.field -- sort by custom field;

    As with pathSort, /t, /n, and /d can be used as modifiers

    %% u.userSpellCheckIgnores %% Returns a list of personal spelling words for a user. u is a user's unique ID.
    %%u.userSubscribeCleanup%% Clean up the user's subscription lists (basically to remove redundant items). Use this command after making changes to a user's subscriptions. (This command is executed internally before showing user preferences, etc. But if you get a list of subscribed items after making changes in WCTL, this routine has to be called explicitly.)
    %% if id.userSubscribe %% Subscribe a user to the current location. id is a hexadecimal unique user ID.
    %% if id.userSubscribeDigest %% Subscribe a user to the current location (folder or discussion) and allow him to receive digests of new messages by e-mail. id is a hexadecimal unique user ID.
    %% if id.userSubscribeEmail %% Subscribe a user to the current location (folder or discussion) and allow him to receive new messages by e-mail. id is a hexadecimal unique user ID.
    %% if id.userSubscribeMsgs %% Subscribe a user to the current location (folder or discussion) and allow him to find new messages by logging in to the site and clicking on Check Messages, or through the Message Center page. id is a hexadecimal unique user ID.
    %% id.userSubscriptions( "med" ) %% Returns a list of pathnames and flags for a user's current subscription list. Optional parameters specify the kinds of subscriptions to return. Default is "m" for messages only, "e" is for full email, "d" is for digests. Any combination of "med" can be specified. For example,
    user.subscriptions
    might return ".eef45a 1 .eef231 0 .eea123 1", where two folders or discussions are subscribed to, and one item is specifically not subscribed to. (See the subscriptions template in standard.tpl for an example of using this to display a user's subscription list.) id is a hexadecimal unique user ID.
    %% userSubscriptionList %%
    %% id.userSubscriptionList %%
    User subscription list, as displayed in the user preferences page. id is a hexadecimal unique user ID.
    %% u.userSummaryButton %% TRUE if user preference is to see an Outline button next to discussions in their folder listing.
    %% id.userThisLogin( format ) %% Returns the last (current) login date/time for a user ID, or "" if the user has not been logged in Web Crossing yet. id is a hexadecimal unique user ID.

    format is a string containing a list of date/time specifiers, mixed with literal characters. format is optional. If it is omitted, the default date/time format defined in the sysop control panel is used.

    %% id.userThisLoginValue( format ) %% Returns the last (current) login date/time for a user ID, or "" if the user has not been logged in Web Crossing yet. id is a hexadecimal unique user ID.

    format is a string containing a list of date/time specifiers, mixed with literal characters. format is optional. If it is omitted, the default date/time format defined in the sysop control panel is used.

    %% u.userThreading %% TRUE if user preference is to view as threaded messages.
    %% u.userThreadingBySite %% TRUE if user uses site settings for threading.
    %% userUniqueId %%
    %% id.userUniqueId %%
    User's unique ID. id is a hexadecimal unique user ID.
    %% id.userUnsubscribe %% Cancel a user's subcription to the current location. id is a hexadecimal unique user ID.
    %% id.userUnsubscribeDigest %% Cancel a user's subscription method to the current location (folder or discussion) allowing the user to receive digests of new messages by e-mail. id is a hexadecimal unique user ID.
    %% id.userUnsubscribeEmail %% Cancel a user's subscription method to the current location (folder or discussion) allowing the user to receive new messages by e-mail. id is a hexadecimal unique user ID.
    %% id.userUnsubscribeMsgs %% Cancel a user's subscription method to the current location (folder or discussion) by logging in to the site and clicking on Check Messages, or through the Message Center page. id is a hexadecimal unique user ID.
    %% userUrls %%
    %% id.userUrls %%
    User URL list, formatted. id is a hexadecimal unique user ID.
    %% userUrlsRaw %%
    %% id.userUrlRaw %%
    User URL list, unformatted. id is a hexadecimal unique user ID.
    %% if userUseCookies %%
    %% if id.userUseCookies %%
    User has cookies enabled. id is a hexadecimal unique user ID.
    %% userWebEmailIsSpecific %%
    %% u.userWebEmailIsSpecific %%
    Check whether the default site settings are used, or whether the user property (userWebEmailSpecific) is used to determine if a user has a Web e-mail account. u is a unique user ID.
    %% userWebEmailSpecific %%
    %% u.userWebEmailSpecific %%
    TRUE if the user preference is to have the Web e-mail service enabled for a user. u is a unique user ID.

    V

    » Variable Usage
    %% if st.validEmail %% Checks for a valid email address string. Returns 1 for a valid string, otherwise returns 0.
    %% version %% Web Crossing version string.

    W

    » Variable Usage
    %% if waitingForSynch %% This server is a slave waiting to synch to the master.
    %% string.wrap( columns ) %% Wrap text to a specified column width. string.wrap(0) can be used to just convert to CRLF linebreaks.

    X

    » Variable Usage
    %% setXmlIndex %% (and
    %% string.xmlParse %%)
    Return TRUE iff the input string was not empty.

    Pops the parsed data from the head of the input string if the string is a variable.

    The "xmlIndex" value is the first character to parse on input to xmlParse, and is updated by the parse to index the first character following the parsed section.

    Sets the following functions so that they return information about the parse:

      xmlElement : 	the tag element, or the empty string
                   	if the string did not start with an
                   	XML element.
      xmlAttribute( name ) : the value of the attribute
                   	with the specified name
      xmlData    : 	the data following the XML element
      xmlStart   : 	true (1) if the element was a start
      xmlStop    : 	true (1) if the element was a stop.
      xmlIndex   : 	index of next character in string, 
    		used to start the parse and updated 
    		by the parse operation
     
    For example, "abc</xxx name='def'>ghi<yyy>".xmlParse would be result in
      xmlElement :	""
      xmlAttribute( anything ) : ""
      xmlData    :	"abc"
      xmlStart   :	0
      xmlStop    :	0
      
    And, "</xxx name='def'>ghi<yyy>".xmlParse would result in
      xmlElement	        : "xxx"
      xmlAttribute( name )	: "def"
      xmlAttribute( other ) : ""
      xmlData 		: "ghi"
      xmlStart		: 1
      xmlStop    	        : 1
      
    All this means that you can write a loop to parse XML data:
      %% set xml .... %%
      %% while xml.xmlParse %%
        %% if xmlStart %%
          %% if xmlElement == "xxx" %%
            ...
      %% endwhile %%
      
    %% xmlParseClose %% Add text to the current xmlData string until the closing element matching xmlElement is found. This allows you to collect terminal data that may contain other <..> elements.

    Y

    » Variable Usage
    %% yield %% Interrupts the current request.
    Web Crossing normally executes one complete request at a time.
    yield interrupts the current request to allow other requests to be processed before resumeing the current request.
    Consider adding yield directives to requests that will take a long time to execute, to allow other requests to run.

    » Time and date formats

    A time and date format is a list of time/date specifiers, mixed with literal characters, as follows:
      Y2  2 character year
      Y4  4 character year
      
      M1  1 or 2 digit month
      M2  2 digit month
      MMM 3 character month, all caps
      Mmm 3 character month, leading cap
      M   full month name, leading cap
      
      D1  1 or 2 digit day of month
      D2  2 digit day of month
      D3  1st, 2nd, 3rd, 4th...
      
      WWW 3 character day of week, all caps
      Www 3 character day of week, leading cap
      W   full day of week, leading cap
      
      H1  1 or 2 digit hour, 12 hour clock
      H2  2 digit hour, 12 hour clock
      H3  1 or 2 digit hour, 24 hour clock
      H4  2 digit hour, 24 hour clock
      
      I1  1 or 2 digit minutes
      I2  2 digit minutes
      
      S1  1 or 2 digit seconds
      S2  2 digit seconds
      
      L1  1, 2, or 3 digit milliseconds
      L3  3 digit milliseconds
      
      A   AM/PM, upper case
      a   am/pm, lower case
      
      N   output a "-" if the date/time is negative
    
      toutc	delta from local time to GMT/UTC, as +HHMM or -HHMM
      
      $c  escape to embed "c" into the output string
    

    For example,

    Format Sample output.
    W, D2-Mmm-Y2 H4:I2:S2 Monday, 05-Mar-96 09:52:13
    M D1, Y4 Jan 4, 1996
    H2:I2a 03:30pm
    The default time/date format is defined in the sysop control panel. It is initially M1/D1/Y2 H1:I2a followed by any time zone.


    Copyright © 1996-2003 by Web Crossing, Inc., San Francisco, California.