Listing 5.
SiteDefs.pm for moviedb (excerpt)
Lincoln D. Stein

"Web Databases the Genome Project Way"
The Perl Journal, Spring 1999
 
package SiteDefs;

# ... deleted stuff ...

my %movie_displays;

# %DATABASES maps database names to host/port pairs.
%DATABASES = (
  # .... deleted stuff ....
  'moviedb'    => {
    host       => 'localhost',
    port       => 200008,
    stylesheet => '/stylesheets/moviedb.css',
    searches   => [qw(search grep query)],
    url_mapper => \&movie_mapper,
    displays   => \%movie_displays,
    title      => '<center><span class="banner">
              Moviedb Test Database</span></center>',
  },
);

######################################################
# These are displays for the test 
#"movie" database 
######################################################

# Mapping objects to displays for the movies

sub movie_mapper {
    my ($display, $name, $class) = @_;
    my $n = escape($name);
    return ('person' => "name=$n") 
	           if $class eq 'Person'; 
			   return ('movie' => "name=$n") 
			   if $class eq 'Movie';

    # fall through
    return basic_mapper($display, $name, $class);
}

%movie_displays =
  (
    # In the movie database, there are special pages
    # for people and movies.
    Person     => [
		    {'url' => 'person',
		     'label' => 'Biography',
		     'icon' => '/icons/quill.gif'},
		  ],
    Movie      => [
		    {'url' => 'movie',
		     'label' => 'Movie Report',
		     'icon' => '/icons/movie.gif'},
		  ],
  );
# ... deleted stuff ...

1;