[ Visit Tim Yao's web page ]

The Box Web Page System

About the Box System Changelog Frequently Asked Questions Related Links What is required? How to set it up?
About the Box System
The Box Web Page System (bwps) is a web content management system created, designed and implemented by Tim Yao to facilitate the easy creation and maintenance of web pages by separating the page content from the page layout and from the mapping between the two. The bwps offers several features:
  • configuration files are in XML
  • content can be edited per logical box that is linked into the main page via SSI
  • the primary page doesn't have to be regenerated via perl unless the layout changes (e.g., add/delete boxes or move them around)
There are, of course, some limitations:
  • changes to the *.xml configuration files are not published until the web page is regenerated
  • the Last updated tag currently reflects the last time that the page layout was updated and not when the page content was updated. It is possible to quickly implement a work-around to this limitation; but it would require the use of a cron job.
Frequently Asked Questions
Q: Is there a simpler system?
A: Yes. Before the BWPS was created, there was a different system, a simple box.pl script that created an HTML file from an index.box file that mixed box definitions in with enclosing layout tables..

Q: Uh, it looks like not all of the defined fields are being used...
A: Yes, that is true. Not all are being used. Some are defined now for future use.

Q: Can I use this resource outside of Lucent?
A: Yes. It is copyleft under the GNU General Public License (GPL). See the external website.

Q: Why isn't my counter working? A: You will need to install Multicount or some similar counter locally and modify Box.pm.
[10/24/02] Fixed reference to ~lsstest; made it a relative link to white.gif
[10/21/02] Expanded the featureset to allow multiple <boxes> </boxes> tag sets, alternate counter string assignments and a link to the new BWPS website.
[Nov 2001] Creation of the Box Web Page System
What is required?
To use bwps, you must have
  • a reasonably up-to-date Perl
  • a webserver that supports server side includes (SSI)
  • an ASCII text editor with which to edit the configuration files.
How to set it up?
  1. download the bwps code (zip)
  2. Unpack the archive within the web page directory where you wish to build your page. Alternately, you could install and use Box.pm and the *.pl perl scripts in some directory outside of your web directory and just place the generated *.shtml (e.g., index.shtml) file and the content directory (index/*) in the web directory.
  3. Edit the *.pl perl scripts and ensure that the perl interpreter specified (/opt/exp/perl/bin/perl or /usr/local/bin/perl) is correct for your webserver system.
  4. Edit the boxdb.xml file and define your boxes. I often do this by copying and pasting boxes and then modifying the pasted content; if you do this, make sure you update the box title. Anything can go into the <content></content> field but it is usually most effective to use a SSI to call in a file. I suggest using a directory to organize these: e.g., index/*.
  5. Use the init_index.pl script to create the empty index/* files based on your boxdb.xml definitions. Note that links in the index/* files should be written, if relative links, relative to the web directory and not relative to index. E.g., if I have a link to a word.doc file that I've placed in the web directory, I would write it as
    <a href="word.doc"> </a>
    and not:
    <a href="index/word.doc"> </a>
  6. Edit the index_template.xml file (can be renamed) that defines the layout. You can have one or more <boxes> </boxes> sections defined. The <boxid/> tags must only use boxid's that are defined in the boxdb.xml file specified in <boxsource>boxdb.xml</boxsource> in the index_template.xml file.
  7. If you want an internal page navigation bar at the top and/or bottom of your page, you will need to modify index_template.xml to SSI include one:
    <!-- include virtual="index/map.html"-->
    You can use the create_map.pl script to generate this map file with: ./create_map.pl > index/map.html
  8. Execute: ./regen.pl > index.shtml to create the HTML file.
  9. Let me know if you are using this system, what features you'd like to see added and if I can list your link here.
Related Links

See the freshmeat list of other web content management systems.
Here is an article about web content management systems

There have been since Oct 21, 2002 .

Last updated Friday, 25-Oct-2002 20:48:33 PDT
Return to the top of the page
Contact Tim Yao with suggestions on enhancing this web page.

This page generated with the Box Web Page System