Maypole - problems with BeerDB

Posted on Sun Feb 27 00:15:06 2005 by zby
problems with BeerDB
I'm just starting with Maypole (installed version 2.09) and I encountered following problems with the BeerDB example:
1) There is no
BeerDB->config->template_root("/usr/local/lib/site_perl/templates");
line in the example BeerDB installed in the ex directory.
2) The CGI version still gets
'<base href="http://localhost/beerdb/"/>'
line in the produced HTML iven when I added
BeerDB->config->uri_base("http://localhost/cgi-bin/search/beer.pl");

3) I get "Undefined subroutine &BeerDB::handler called.\n" when I run the example in mod_perl

I attache the BeerDB after my changes (mod_perl version)

=========================================================
package BeerDB; use Maypole::Application; use Class::DBI::Loader::Relationship; sub debug { $ENV{BEERDB_DEBUG} } # This is the sample application. Change this to the path to your # database. (or use mysql or something) use constant DBI_DRIVER => 'SQLite'; use constant DATASOURCE => '/usr/local/lib/site_perl/beerdb.db'; BEGIN { my $dbi_driver = DBI_DRIVER; if ($dbi_driver =~ /^SQLite/) { die sprintf "SQLite datasource '%s' not found, correct the path or " . "recreate the database by running Makefile.PL", DATASOURCE unless -e DATASOURCE; eval "require DBD::SQLite"; if ($@) { eval "require DBD::SQLite2" and $dbi_driver = 'SQLite2'; } } BeerDB->setup(join ':', "dbi", $dbi_driver, DATASOURCE); } # Give it a name. BeerDB->config->application_name('The Beer Database'); BeerDB->config->template_root("/usr/local/lib/site_perl/templates"); # Change this to the root of the web space. #BeerDB->config->uri_base("http://localhost/cgi-bin/search/beer.pl"); BeerDB->config->uri_base("http://localhost/beerdb/"); #BeerDB->config->uri_base("http://neo.trinity-house.org.uk/beerdb/"); BeerDB->config->rows_per_page(10); # Handpumps should not show up. BeerDB->config->display_tables([qw[beer brewery pub style]]); BeerDB::Brewery->untaint_columns( printable => [qw/name notes url/] ); BeerDB::Style->untaint_columns( printable => [qw/name notes/] ); BeerDB::Beer->untaint_columns( printable => [qw/abv name price notes url/], integer => [qw/style brewery score/], date =>[ qw/date/], ); BeerDB->config->{loader}->relationship($_) for ( "a brewery produces beers", "a style defines beers", "a pub has beers on handpumps"); # For testing classmetadata sub BeerDB::Beer::classdata :Exported {}; sub BeerDB::Beer::list_columns { return qw/score name price style brewery url/}; 1;
Direct Responses: 158 | Write a response