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
There are, of course, some limitations:
- 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)
- 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.
Fixed reference to ~lsstest; made it a relative link to white.gif
Expanded the featureset to allow multiple <boxes> </boxes> tag
sets, alternate counter string assignments and a link to the new BWPS website.
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?
- download the bwps code (zip)
- 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.
- 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.
- 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.,
- 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>
<a href="index/word.doc"> </a>
- 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.
- 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
- Execute: ./regen.pl > index.shtml to create the HTML file.
- 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.