RSS Applet Configurator (3/4) - exploring XML | WebReference

RSS Applet Configurator (3/4) - exploring XML

RSS Applet Configurator

The Configurator Script

Let's dissect the Perl script and see how it works:

require CGI;
my $query = new CGI;
The first line tells the CGI runtime in the Web server where to find the perl interpreter. CGI is a package that encapsulates the parameter passing so that the variable query will contain a hashtable of all the query parameters, keyed by parameter name.
my @colourParams = ( 'box_foreground', 'box_background', 
		     'title_foreground', 'title_backgound',
		     'title_foreground_mouseover', 'title_background_mouseover',
		     'item_foreground', 'item_backgound',
		     'item_foreground_mouseover', 'item_background_mouseover',
my @fontParams = ( 'title', 'item' );
print "Content-Type: text/html\n\n";
Next we define the applet's color and font parameters and write an HTTP header explaining that HTML will be coming your browser's way.
if ($query->param('preview') eq '') {
else {
The preview parameter determines whether we send the configuration page, or display the resulting preview.
sub PrintConfigPage {
sub PrintPreviewPage {
Both pages contain header and footer parts, so we factored that out.
sub PrintHeader {
  print <<EOF;
<HTML><HEAD><TITLE>RSSViewerApplet Configurator</TITLE>
<SCRIPT type="text/javascript"><!--
  var field;
  function setFormField(f) {
    field = f;
  function changeBG(what) {
    document.forms[0].output.value = what;
    field.value = what;
// -->
sub PrintFooter {
  print <<EOF;
The header contains JavaScript code to move the chosen color from the color table to the selected applet property. The footer just closes the HTML page.
sub PrintConfig {
  open(FH, "colorchooser.html");
  @colorchooser = <FH>;
This poor man's version of including code retrieves the color chooser part of this page, some fairly repetitive HTML with some onclick() JavaScript for setting the respective RGB value in the text field.
  print <<EOF;
<INPUT type="hidden" name="preview">
<H2>RSS source</H2>
<SELECT name="src">
<OPTION value="http://$ENV{SERVER_NAME}/xml/index.rss">
XML column at WebReference</OPTION>
<OPTION value="http://$ENV{SERVER_NAME}/webreference.rdf">
WebReference News</OPTION>
<OPTION value="http://$ENV{SERVER_NAME}/js/tips/channels/last1512.rdf">
JavaScript Tip of the Day</OPTION>
Here we populate the drop-down list with the currently available news feeds.

More script.

Produced by Michael Claßen

Created: Jan 27, 2000
Revised: Jan 27, 2000