X-Git-Url: https://git.sesse.net/?p=pr0n;a=blobdiff_plain;f=perl%2FSesse%2Fpr0n%2FTemplates.pm;h=ecac13f623d3c6e29e5bd59fc3a8e086c129de61;hp=422748640f3682bf8f2931b78f368deead793e84;hb=a7e30af46533d16a9ccb47b6d19c38c62d2006e4;hpb=2d6536cab108c937e2af49f7dcf15f2230f44d1a diff --git a/perl/Sesse/pr0n/Templates.pm b/perl/Sesse/pr0n/Templates.pm index 4227486..ecac13f 100644 --- a/perl/Sesse/pr0n/Templates.pm +++ b/perl/Sesse/pr0n/Templates.pm @@ -14,12 +14,11 @@ BEGIN { %EXPORT_TAGS = qw(); @EXPORT_OK = qw(); } -our %dirs; +our %dirs = (); sub update_dirs { my $r = shift; - my $base = $r->dir_config('TemplateBase'); - %dirs = (); + my $base = $Sesse::pr0n::Config::template_base; for my $dir (<$base/*>) { next unless -d $dir; @@ -33,11 +32,11 @@ sub update_dirs { sub r_to_dir { my $r = shift; - if (!defined(%dirs)) { + if (scalar(keys %dirs) == 0) { update_dirs($r); } - my $site = $r->get_server_name(); + my $site = Sesse::pr0n::Common::get_server_name($r); if (defined($dirs{$site})) { return $site; } else { @@ -56,8 +55,9 @@ sub fetch_template { my $newcache = {}; - my $base = $r->dir_config('TemplateBase'); - open TEMPLATE, "<$base/$dir/$template" + my $base = $Sesse::pr0n::Config::template_base; + open TEMPLATE, "<:utf8", "$base/$dir/$template" + or ($dir ne 'default' and open TEMPLATE, "<$base/default/$template") or Sesse::pr0n::Common::error($r, "Couldn't open $dir/$template: $!"); local $/; @@ -70,7 +70,7 @@ sub fetch_template { return $newcache->{'contents'}; } -sub print_template { +sub process_template { my ($r, $template, $args) = @_; my $text = fetch_template($r, $template); @@ -80,7 +80,12 @@ sub print_template { $text =~ s/$key/$value/g; } - $r->print($text); + return $text; +} + +sub print_template { + my ($r, $io, $template, $args) = @_; + $io->print(Encode::encode_utf8(process_template($r, $template, $args))); } 1;