X-Git-Url: https://git.sesse.net/?a=blobdiff_plain;f=html%2Fccbs.pm;h=1807e0953de82cfdbb066373c8c4af7ed4ba58a4;hb=a317762dab2b775334cc85a43b6fe2e3c2097eab;hp=6dd7b1325421bee056436a69b018483de9f5a0d8;hpb=3bfa49f3081e4e2b278093a57382f773f5a5230f;p=ccbs diff --git a/html/ccbs.pm b/html/ccbs.pm index 6dd7b13..1807e09 100755 --- a/html/ccbs.pm +++ b/html/ccbs.pm @@ -1,6 +1,7 @@ package ccbs; use Template; use CGI; +use CGI::Cookie; use DBI; use HTML::Entities; use Time::HiRes; @@ -10,22 +11,28 @@ use strict; use warnings; require '../intl/Sesse::GettextizeTemplates.pm'; +require '../config.pm'; +-r '../config.local.pm' and require '../config.local.pm'; + +# Check for language settings +my %cookies = fetch CGI::Cookie; +my $lang = defined($cookies{'language'}) ? $cookies{'language'}->value : undef; +if (defined($lang) && ($lang eq 'nb_NO' || $lang eq 'nn_NO' || $lang eq 'en_US')) { + POSIX::setlocale( &POSIX::LC_CTYPE , $lang . ".UTF-8" ); + POSIX::setlocale( &POSIX::LC_MESSAGES , $lang . ".UTF-8" ); +} else { + POSIX::setlocale( &POSIX::LC_CTYPE , $ccbs::config::lang ); + POSIX::setlocale( &POSIX::LC_MESSAGES , $ccbs::config::lang ); +} +Locale::gettext::bindtextdomain("ccbs", "po"); +Locale::gettext::textdomain("ccbs"); + our $start_time; BEGIN { $start_time = [Time::HiRes::gettimeofday()]; - - POSIX::setlocale( &POSIX::LC_CTYPE , "nb_NO.UTF-8" ); - POSIX::setlocale( &POSIX::LC_MESSAGES , "nb_NO.UTF-8" ); - Locale::gettext::bindtextdomain("ccbs", "po"); - Locale::gettext::textdomain("ccbs"); } -our $ccbs_dbdebug = 0; - -# Set this flag to disable any admin tasks -- it's quite crude, but hey :-) -our $ccbs_noadmin = 0; - # Hack to get the non-templatized gettext stuff working *_ = sub { return Locale::gettext::gettext(@_); @@ -38,14 +45,12 @@ sub print_see_other { my $location = shift; print CGI::header(-status=>'303 See other', - -location=>'http://ccbs.sesse.net/' . $location, + -location=>$ccbs::config::webroot . $location, -type=>'text/html; charset=utf-8'); } sub db_connect { - $ccbs_dbdebug = defined(shift) ? 1 : 0; - - my $dbh = DBI->connect("dbi:Pg:dbname=ccbs;host=www.positivegaming.com", "ccbs", "GeT|>>B_") + my $dbh = DBI->connect("dbi:Pg:dbname=$ccbs::config::dbname;host=$ccbs::config::dbhost", $ccbs::config::dbuser, $ccbs::config::dbpass) or die "Couldn't connect to database"; $dbh->{RaiseError} = 1; return $dbh; @@ -58,14 +63,14 @@ sub db_fetch_all { $q->execute(@parms) or die "Could not execute query: " . $dbh->errstr; - if ($ccbs_dbdebug) { + if ($config::ccbs::dbdebug) { warn $sql; warn "params=" . join(', ', @parms); } my @ret = (); while (my $ref = $q->fetchrow_hashref()) { - if ($ccbs_dbdebug) { + if ($config::ccbs::dbdebug) { my $dbstr = ""; for my $k (sort keys %$ref) { $dbstr .= " " . $k . "=" . $ref->{$k}; @@ -83,7 +88,7 @@ sub process_template { my ($page, $title, $vars) = @_; $vars->{'page'} = $page; $vars->{'title'} = $title; - $vars->{'public'} = $ccbs_noadmin; + $vars->{'public'} = $ccbs::config::noadmin; $vars->{'timetogenerate'} = sprintf "%.3f", Time::HiRes::tv_interval($start_time); my $config = { @@ -96,7 +101,7 @@ sub process_template { my $template = Template->new($config); my $output = ''; - $template->process('main.tmpl', $vars, \$output) + $template->process($ccbs::config::main_template, $vars, \$output) or die $template->error(); print $output; @@ -112,7 +117,7 @@ sub user_error { exit; } sub admin_only { - user_error(_("Sorry, the database is in no-admin-mode.")) if ($ccbs_noadmin); + user_error(_("Sorry, the database is in no-admin-mode.")) if ($config::ccbs::noadmin); } $SIG{__DIE__} = sub {