]> git.sesse.net Git - ccbs/blobdiff - html/ccbs.pm
Add gettext support to the template frontend!
[ccbs] / html / ccbs.pm
index 915e9507f1ffa99f24924c8020db2a496eb589b2..c1406ce1b259e15e6ddc85a1ef1df3f207b7f1b4 100755 (executable)
@@ -3,13 +3,26 @@ use Template;
 use CGI;
 use DBI;
 use HTML::Entities;
+use Time::HiRes;
+use Locale::gettext;
+use POSIX;
 use strict;
 use warnings;
+require '../intl/Sesse::GettextizeTemplates.pm';
+
+our $start_time;
+
+BEGIN {
+       $start_time = [Time::HiRes::gettimeofday()];
+}
 
 our $ccbs_dbdebug = 0;
+
+# Set this flag to disable any admin tasks -- it's quite crude, but hey :-)
+our $ccbs_noadmin = 0;
        
 sub print_header {
-       print CGI::header(-type=>'application/xhtml+xml; charset=utf-8');
+       print CGI::header(-type=>'text/html; charset=utf-8');
 }
 sub print_see_other {
        my $location = shift;
@@ -22,7 +35,7 @@ sub print_see_other {
 sub db_connect {
        $ccbs_dbdebug = defined(shift) ? 1 : 0;
 
-       my $dbh = DBI->connect("dbi:Pg:dbname=ccbs;host=sql.samfundet.no", "ccbs", "GeT|>>B_")
+       my $dbh = DBI->connect("dbi:Pg:dbname=ccbs;host=www.positivegaming.com", "ccbs", "GeT|>>B_")
                or die "Couldn't connect to database";
        $dbh->{RaiseError} = 1;
        return $dbh;
@@ -60,12 +73,19 @@ sub process_template {
        my ($page, $title, $vars) = @_;
        $vars->{'page'} = $page;
        $vars->{'title'} = $title;
+       $vars->{'public'} = $ccbs_noadmin;
+       $vars->{'timetogenerate'} = sprintf "%.3f", Time::HiRes::tv_interval($start_time);
+       
+       POSIX::setlocale( &POSIX::LC_MESSAGES , "en_DK.UTF-8");
+       Locale::gettext::bindtextdomain("ccbs", "po");
+       Locale::gettext::textdomain("ccbs");
        
        my $config = {
                INCLUDE_PATH => 'templates/',
                INTERPOLATE  => 1,
                POST_CHOMP   => 1,
                EVAL_PERL    => 1,
+               FACTORY      => 'Sesse::GettextizeTemplates'
        };
        my $template = Template->new($config);
 
@@ -85,6 +105,9 @@ sub user_error {
 
        exit;
 }
+sub admin_only {
+       user_error("Beklager, databasen står i no-admin-mode.") if ($ccbs_noadmin);
+}
 
 $SIG{__DIE__} = sub {
        # Gosh! Net::Resolver::DNS is brain-damaged.