introduction | configuration | databases | expressions | sessions | templates | variables |
queries | email | data
entry | passwords | examples
| license & registration
baserunner is a server-side (CGI) template processing engine that generates dynamic web content from data stored in dbf format databases. You can run baserunner on either a Windows- or a Linux-hosted web server. The core of the program is the baserunner template markup language that uses familiar syntax very similar to HTML to access your data and control the web pages it generates for your users. baserunner uses xBase-style expressions to display and query your data and to create conditionally displayed elements. baserunner supports FoxPro format tables, memos, and indexes and supports relations among those tables. Another version of baserunner supports dBaseIV format tables for those users who must use that format.
baserunner is written in C++. The database engine underlying baserunner is CodeBase 6.4 from Sequiter Software, Inc. copyright (c) 1992-1998. baserunner makes extensive use of the C++ Standard Template Library. The STL used by baserunner for both the Windows and Linux versions is The Dinkum C++ Library 3.08 copyright (c) 1992-2000 by P.J. Plauger.
As distributed, the baserunner executable for Windows is named baserunner.exe; for Linux, baserunner.cgi.
baserunner script development is best done using a local web server (i.e., one accessible at 127.0.0.1 or localhost). Most Linux distributions install the Apache web server by default. Windows systems may use Microsoft's IIS or PWS locally or a third party server such as Xitami. If you are unsure whether you have a local server available, open your browser and type "127.0.0.1" in the address box. If you are on a network, you should consult your network administrator about available development servers. baserunner scripts are portable between Windows and Linux hosted systems. One caveat: Linux file systems are case-sensitive (if you have a template named MyTemplate.btml, referencing it on a Linux box as _mytemplate won't work). The easiest way to deal with this is simply to make a point of always using lower case file names.
Like all CGI programs, baserunner processes input from the user through standard HTML forms and links. baserunner uses several conventions.
When starting a script, the name of the template used as the script's entry point is passed to baserunner in the PATH_INFO section of the link as a variable name (the template file name prefixed with an underscore). The PATH_INFO section of a URL follows the name of the CGI program, separated by a "/", i.e. /cgi-bin/baserunner.exe/PATH_INFO. For instance, to start the example application you would link to /cgi-bin/baserunner.exe/_movie. There are some servers that have trouble correctly processing the PATH_INFO sever variable. In those cases, baserunner may use a secondary method of passing baserunner the name the entry point template through the QUERY_STRING in a special variable named "_!entrypoint"; for instance, /cgi-bin/baserunner.exe?_!entrypoint=_movie.
Each time a user starts a baserunner script, baserunner creates a session database for that user that stores the variable information the program uses to process each template. This allows variables to maintain a persistent values from one "page" of the script to another. Variables may contain text, numeric, or logical values.
baserunner session variables have names the begin with an underscore (e.g. "_myvariable"). Protected variable names begin with a "_!" prefix (e.g. "_!myvariable"). Such protected variables may not be changed by the user directly through a form input for instance. Variables that refer directly to a field in a table used in data entry and query forms, omit the "_" prefix.
Within a template, specially formatted elements (by default, delimited with curly braces, {. . .}) are replaced by the values of baserunner variables or by data contained in the current database. Data elements are processed in three types of blocks: <browse>, <list>, and <seek>. Using <browse>, baserunner displays the data from one or more currently available records and allows the user to navigate through the available records. Using <list>, baserunner displays some or all the currently available records. And using <seek>, baserunner displays all records matching the current "seek" criteria. <browse> only works with the main database currently in use by baserunner. <list> and <seek> may use the main database or use any other database to generate output.
Data and any part of the template may be conditionally displayed using a conditional <if> block. The condition tested by an <if> tag may either be a logical variable or a logical expression based on data in the current record.
Normal HTML forms and links within a template permit user interaction with the script. Forms may be used to set values for variables, to provide database navigation, to provide for data entry and editing, or to create database queries.
This documentation provides detailed information about all the elements that make up a baserunner script. Studying this along with the examples provided with baserunner should give you a good starting point for creating and running your own scripts.
| Page Link | Contents |
|---|---|
| baserunner configuration | This is the page where you should start. baserunner needs to create a small table that will contain information about where the elements of your scripts will be located on your server and your baserunner administrative password. The configuration routine will create this information and allow you to begin using baserunner on your system. |
| xBase format databases and indexes | This page provides information about xBase format databases (tables, relations, and indexes) that baserunner uses. It also provides information about the _basemaker script that permits you to create and modify these tables and indexes as well as information about importing data to your tables. |
| baserunner variables and actions | This page provides a reference to the variables and actions baserunner uses. |
| baserunner template markup language | This page provides a reference to the template syntax baserunner uses to process templates and create web pages for your users. The syntax baserunner uses in templates is similar to standard HTML syntax. |
| xBase expressions | This page provides a reference to the xBase expression syntax available with baserunner. baserunner recognizes a fairly large subset of standard xBase expressions and provides several extended syntax elements for use in your templates. |
| User sessions | This page provides information about how baserunner handles user session information. |
| Querying the database | This page provides information about the methods available for setting up queries with your data. |
| Data entry and editing | This page provides information about the methods used to enter and edit data through a baserunner script. |
| Email functions | This page provides information about using baserunner's internal email functions |
| Password functions | This page provides information about baserunner's internal password control features. |
| baserunner examples | This page provides information about the example scripts included with baserunner. The information includes the structures of each table used by the example scripts and annotated copies of the templates that make up those scripts. |
| License and registration information | baserunner's license is pretty simple--don't use baserunner for anything illegal--don't use baserunner for anything even remotely connected with SPAM--don't sue me--and remember that I own the copyright on baserunner. baserunner remains free for personal use. baserunner may be licensed for other uses at several levels, including a new "baserunner developer's license." for a small fee. |
![]()
Copyright © 1998-2002 baserunner Software (Mark Glover)