]> git.sesse.net Git - wloh/blobdiff - include/common.pm
Convert rating.pl to XML::Template. It is dog-slow, but much cleaner.
[wloh] / include / common.pm
similarity index 56%
rename from common.pm
rename to include/common.pm
index 60cc243d608e275714f60edb17c65eef1e1b5dda..6ad6ae403e04d70459994625a98e8db2ab100719 100644 (file)
--- a/common.pm
@@ -1,6 +1,7 @@
 use strict;
 use warnings;
 use POSIX;
+use XML::Template;
 
 package wloh_common;
 
@@ -11,17 +12,22 @@ sub get_max_season {
        return $ref->{'max_sesong'};
 }
 
-sub output_last_sync {
+sub get_last_sync {
        my $dbh = shift;
        my $ref = $dbh->selectrow_hashref('SELECT EXTRACT(EPOCH FROM last_sync) AS last_sync FROM last_sync');
        if (!defined($ref)) {
-               print "    <p class=\"lastsync\">Databasen ble sist synkronisert (ukjent).</p>\n";
+               return "(ukjent)";
        } else {
-               my $ts = POSIX::strftime("%Y-%m-%d %H:%M %Z", localtime($ref->{'last_sync'}));
-               print "    <p class=\"lastsync\">Databasen ble sist synkronisert $ts.</p>\n";
+               return POSIX::strftime("%Y-%m-%d %H:%M %Z", localtime($ref->{'last_sync'}));
        }
 }
 
+sub output_last_sync {
+       my $dbh = shift;
+       my $ts = get_last_sync($dbh);
+       print "    <p class=\"lastsync\">Databasen ble sist synkronisert $ts.</p>\n";
+}
+
 sub get_locale {
        my $cgi = shift;
        my $url = $cgi->url(-absolute => 1);
@@ -42,6 +48,39 @@ sub get_auxillary_parameters {
        return $aux_parms;
 }
 
+sub get_navbar {
+       my ($cgi, $dbh, $locale) = @_;
+       my $url = $cgi->url(-relative => 1);
+
+       print "<p style=\"font-size: smaller;\">";
+
+       my $q = $dbh->prepare('SELECT spraak, kultur FROM fotballspraak WHERE nyestesesong <> -1 ORDER BY id');
+       $q->execute;
+
+       my @languages = ();
+
+       my $first = 1;
+       while (my $ref = $q->fetchrow_hashref) {
+               my %lang = ();
+               if ($first) {
+                       $lang{'separator'} = '';
+               }
+               $first = 0;
+
+               if ($ref->{'kultur'} eq $locale) {
+                       $lang{'lang-with-link'} = '';
+                       $lang{'lang-no-link'} = $ref->{'spraak'};
+               } else {
+                       $lang{'a'} = $ref->{'spraak'};
+                       $lang{'a/href'} = sprintf "/%s/%s", $ref->{'kultur'}, $url;
+                       $lang{'lang-no-link'} = '';
+               }
+               push @languages, \%lang;
+       }
+
+       return \@languages;
+}
+
 sub print_navbar {
        my ($cgi, $dbh, $locale) = @_;
        my $url = $cgi->url(-relative => 1);
@@ -67,4 +106,11 @@ sub print_navbar {
        print "</p>\n";
 }
 
+sub process_template {
+       my ($filename, $parms) = @_;
+
+       my $doc = XML::Template::process_file('../templates/' . $filename, $parms);
+       print $doc->toString;
+}
+
 1;