Through a combination of database tables and collmgr field configuration, dynamic browsing is available through the DLXS middleware. When the proper CGI-based URL is received, the middleware checks for certain metadata in the database tables, packages some of it in XML, uses some of it, as is in its stored format of XML, and lets XSLT format the results. At run time, no XPAT queries are needed, only MySQL queries are run against the item browse tables in the dlxs database.
After the tables are prepared, that is, populated with item metadata through the $DLXSROOT/bin/browse/updatebrowsedb.pl script (aka "database populator"), configuration for the behavior of dynamic browsing is accomplished by modifying certain collmgr fields.
Provisions will soon be made for creating static HTML browse pages with the database populator script.
There are three tables in the dlxs database that are specifically used for dynamic browsing in the middleware:
The ItemColl table holds, for each item/document and collection combination, one row containing the following columns:
The ItemBrowse table holds, for each item/document's browseable field (e.g., author, title, etc.):
The ItemBrowseCounts table holds, for each collection, a list of rows containing:
The main fields in the collmgr that need to be set properly are:
See Configure the collmgr fields below for more information.
Start collmgr and change the following fields:
browse.htmlthat page will be served but only if browsefields is empty. Fallback is applied to select the correct
browse.htmlfile for collection-specific customization. This supports static browse pages. If
browse.htmlis not present a dynamic browse page will be served based on data from the browse database. When a dynamic browse page is served the browsenav field value is consulted and must be defined.
browseupdatemodule: specifies the name of the browse update Perl module that will be used by the updatebrowsedb.pl script to populate the database. This value is analogous to the appmodule and subclassmodule fields. This field supersedes a Perl configuration hash used in release 12.
The module files are located in DLXSROOT/bin/browse. If a dynamic browse page is to be served this field must have a value. Specialized behavior can be obtained by subclassing the browse update modules. The currently available browse update module values are as follows:
To initially populate or to update the item browse tables, simply run the database populator. To do so, enter:
$DLXSROOT/bin/browse/updatebrowsedb.pl class=AAA c=BBB host=CCC
where AAA is either "text" or "image" and where BBB is the collection id of the collection you want to create browsing for and CCC is the name of the host on which resides the XPAT index for the collection. You may want to point the script at new or test data on a machine that is different from your production machine. If that is the case, you may also want to change the devhost field for the collection in collmgr and test the collection in development mode (with the DLPS_DEV environment variable set).
Running this program will populate or update the rows necessary in each of the three ItemBrowse related tables. These tables will be queried when the user requests browsing from the middleware.