|
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;
|