]> git.sesse.net Git - wloh/blob - include/common.pm
Pick old results from fotballresultater_2123.
[wloh] / include / common.pm
1 use strict;
2 use warnings;
3 use POSIX;
4 use XML::Template;
5
6 package wloh_common;
7
8 sub get_max_season {
9         my ($dbh, $locale) = @_;
10         my $ref = $dbh->selectrow_hashref('SELECT MAX(sesong) AS max_sesong FROM fotballserier se JOIN fotballspraak sp ON se.spraak=sp.id WHERE kultur=?',
11                 undef, $locale);
12         return $ref->{'max_sesong'};
13 }
14
15 sub get_last_sync {
16         my $dbh = shift;
17         my $ref = $dbh->selectrow_hashref('SELECT EXTRACT(EPOCH FROM last_sync) AS last_sync FROM last_sync');
18         if (!defined($ref)) {
19                 return "(ukjent)";
20         } else {
21                 return POSIX::strftime("%Y-%m-%d %H:%M %Z", localtime($ref->{'last_sync'}));
22         }
23 }
24
25 sub output_last_sync {
26         my $dbh = shift;
27         my $ts = get_last_sync($dbh);
28         print "    <p class=\"lastsync\">Databasen ble sist synkronisert $ts.</p>\n";
29 }
30
31 sub get_locale {
32         my $cgi = shift;
33         my $url = $cgi->url(-absolute => 1);
34         $url =~ m#^/([a-z][a-z]-[A-Z][A-Z])/# or die "Invalid locale!";
35         return $1;
36 }
37
38 sub get_auxillary_parameters {
39         my ($dbh, $locale) = @_;
40
41         my $q = $dbh->prepare('SELECT * FROM aux_params WHERE kultur=?');
42         $q->execute($locale);
43
44         my $aux_parms = {};
45         while (my $ref = $q->fetchrow_hashref) {
46                 $aux_parms->{$ref->{'id'}} = $ref->{'value'};
47         }
48         return $aux_parms;
49 }
50
51 sub get_navbar {
52         my ($cgi, $dbh, $locale) = @_;
53         my $url = $cgi->url(-relative => 1);
54
55         print "<p style=\"font-size: smaller;\">";
56
57         my $q = $dbh->prepare('SELECT spraak, kultur FROM fotballspraak WHERE nyestesesong <> -1 ORDER BY id');
58         $q->execute;
59
60         my @languages = ();
61
62         my $first = 1;
63         while (my $ref = $q->fetchrow_hashref) {
64                 my %lang = ();
65                 if ($first) {
66                         $lang{'separator'} = '';
67                 }
68                 $first = 0;
69
70                 if ($ref->{'kultur'} eq $locale) {
71                         $lang{'lang-with-link'} = '';
72                         $lang{'lang-no-link'} = $ref->{'spraak'};
73                 } else {
74                         $lang{'a'} = $ref->{'spraak'};
75                         $lang{'a/href'} = sprintf "/%s/%s", $ref->{'kultur'}, $url;
76                         $lang{'lang-no-link'} = '';
77                 }
78                 push @languages, \%lang;
79         }
80
81         return \@languages;
82 }
83
84 sub print_navbar {
85         my ($cgi, $dbh, $locale) = @_;
86         my $url = $cgi->url(-relative => 1);
87
88         print "<p style=\"font-size: smaller;\">";
89
90         my $q = $dbh->prepare('SELECT spraak, kultur FROM fotballspraak WHERE nyestesesong <> -1 ORDER BY id');
91         $q->execute;
92
93         my $first = 1;
94         while (my $ref = $q->fetchrow_hashref) {
95                 if (!$first) {
96                         print " :: ";
97                 }
98                 $first = 0;
99
100                 if ($ref->{'kultur'} eq $locale) {
101                         printf "%s ", $ref->{'spraak'};
102                 } else {
103                         printf "<a href=\"/%s/%s\">%s</a> ", $ref->{'kultur'}, $url, $ref->{'spraak'};
104                 }
105         }
106         print "</p>\n";
107 }
108
109 sub process_template {
110         my ($filename, $parms) = @_;
111
112         my $doc = XML::Template::process_file('../templates/' . $filename, $parms);
113         print $doc->toString;
114 }
115
116 1;