captive: Allow PDF export of coupons

Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
This commit is contained in:
Michael Tremer
2017-10-16 16:36:24 +02:00
parent ebfb899693
commit a54350cdb9
11 changed files with 251 additions and 2 deletions

View File

@@ -613,6 +613,7 @@ WARNING: translation string unused: web proxy configuration
WARNING: translation string unused: week-graph
WARNING: translation string unused: weekly firewallhits
WARNING: translation string unused: wildcards
WARNING: translation string unused: wlanap access point
WARNING: translation string unused: wlanap wlan services
WARNING: translation string unused: xtaccess all error
WARNING: translation string unused: xtaccess bad transfert
@@ -621,6 +622,7 @@ WARNING: translation string unused: yearly firewallhits
WARNING: untranslated string: 24 hours
WARNING: untranslated string: Captive ACTIVATE
WARNING: untranslated string: Captive GAIN ACCESS
WARNING: untranslated string: Captive WiFi coupon
WARNING: untranslated string: Captive activated
WARNING: untranslated string: Captive active on
WARNING: untranslated string: Captive agree tac
@@ -632,6 +634,7 @@ WARNING: untranslated string: Captive clients
WARNING: untranslated string: Captive config
WARNING: untranslated string: Captive coupon
WARNING: untranslated string: Captive expiry time
WARNING: untranslated string: Captive export coupons
WARNING: untranslated string: Captive generate coupon
WARNING: untranslated string: Captive issued coupons
WARNING: untranslated string: Captive logo uploaded
@@ -640,11 +643,14 @@ WARNING: untranslated string: Captive menu
WARNING: untranslated string: Captive noexpiretime
WARNING: untranslated string: Captive nolimit
WARNING: untranslated string: Captive please accept the terms and conditions
WARNING: untranslated string: Captive portal
WARNING: untranslated string: Captive portal coupons
WARNING: untranslated string: Captive terms
WARNING: untranslated string: Captive terms short
WARNING: untranslated string: Captive title
WARNING: untranslated string: Captive upload logo
WARNING: untranslated string: Captive upload logo recommendations
WARNING: untranslated string: Captive valid for
WARNING: untranslated string: Captive vouchervalid
WARNING: untranslated string: Captive wrong ext
WARNING: untranslated string: ConnSched dial
@@ -1243,4 +1249,6 @@ WARNING: untranslated string: wlan client wpa mode ccmp ccmp
WARNING: untranslated string: wlan client wpa mode ccmp tkip
WARNING: untranslated string: wlan client wpa mode tkip tkip
WARNING: untranslated string: wlan clients
WARNING: untranslated string: wlanap
WARNING: untranslated string: wlanap configuration
WARNING: untranslated string: wlanap country

View File

@@ -631,6 +631,7 @@ WARNING: translation string unused: yearly firewallhits
WARNING: untranslated string: 24 hours
WARNING: untranslated string: Captive ACTIVATE
WARNING: untranslated string: Captive GAIN ACCESS
WARNING: untranslated string: Captive WiFi coupon
WARNING: untranslated string: Captive activated
WARNING: untranslated string: Captive active on
WARNING: untranslated string: Captive agree tac
@@ -642,6 +643,7 @@ WARNING: untranslated string: Captive clients
WARNING: untranslated string: Captive config
WARNING: untranslated string: Captive coupon
WARNING: untranslated string: Captive expiry time
WARNING: untranslated string: Captive export coupons
WARNING: untranslated string: Captive generate coupon
WARNING: untranslated string: Captive issued coupons
WARNING: untranslated string: Captive logo uploaded
@@ -650,11 +652,14 @@ WARNING: untranslated string: Captive menu
WARNING: untranslated string: Captive noexpiretime
WARNING: untranslated string: Captive nolimit
WARNING: untranslated string: Captive please accept the terms and conditions
WARNING: untranslated string: Captive portal
WARNING: untranslated string: Captive portal coupons
WARNING: untranslated string: Captive terms
WARNING: untranslated string: Captive terms short
WARNING: untranslated string: Captive title
WARNING: untranslated string: Captive upload logo
WARNING: untranslated string: Captive upload logo recommendations
WARNING: untranslated string: Captive valid for
WARNING: untranslated string: Captive vouchervalid
WARNING: untranslated string: Captive wrong ext
WARNING: untranslated string: ConnSched dial
@@ -1260,8 +1265,9 @@ WARNING: untranslated string: wlan client wpa mode ccmp ccmp
WARNING: untranslated string: wlan client wpa mode ccmp tkip
WARNING: untranslated string: wlan client wpa mode tkip tkip
WARNING: untranslated string: wlan clients
WARNING: untranslated string: wlanap access point
WARNING: untranslated string: wlanap
WARNING: untranslated string: wlanap channel
WARNING: untranslated string: wlanap configuration
WARNING: untranslated string: wlanap country
WARNING: untranslated string: wlanap debugging
WARNING: untranslated string: wlanap del interface

View File

@@ -690,6 +690,7 @@ WARNING: translation string unused: web proxy configuration
WARNING: translation string unused: week-graph
WARNING: translation string unused: weekly firewallhits
WARNING: translation string unused: wildcards
WARNING: translation string unused: wlanap access point
WARNING: translation string unused: wlanap wlan services
WARNING: translation string unused: xtaccess all error
WARNING: translation string unused: xtaccess bad transfert
@@ -698,6 +699,7 @@ WARNING: translation string unused: yearly firewallhits
WARNING: untranslated string: 24 hours
WARNING: untranslated string: Captive ACTIVATE
WARNING: untranslated string: Captive GAIN ACCESS
WARNING: untranslated string: Captive WiFi coupon
WARNING: untranslated string: Captive activated
WARNING: untranslated string: Captive active on
WARNING: untranslated string: Captive agree tac
@@ -709,6 +711,7 @@ WARNING: untranslated string: Captive clients
WARNING: untranslated string: Captive config
WARNING: untranslated string: Captive coupon
WARNING: untranslated string: Captive expiry time
WARNING: untranslated string: Captive export coupons
WARNING: untranslated string: Captive generate coupon
WARNING: untranslated string: Captive issued coupons
WARNING: untranslated string: Captive logo uploaded
@@ -717,11 +720,14 @@ WARNING: untranslated string: Captive menu
WARNING: untranslated string: Captive noexpiretime
WARNING: untranslated string: Captive nolimit
WARNING: untranslated string: Captive please accept the terms and conditions
WARNING: untranslated string: Captive portal
WARNING: untranslated string: Captive portal coupons
WARNING: untranslated string: Captive terms
WARNING: untranslated string: Captive terms short
WARNING: untranslated string: Captive title
WARNING: untranslated string: Captive upload logo
WARNING: untranslated string: Captive upload logo recommendations
WARNING: untranslated string: Captive valid for
WARNING: untranslated string: Captive vouchervalid
WARNING: untranslated string: Captive wrong ext
WARNING: untranslated string: MTU settings
@@ -887,3 +893,5 @@ WARNING: untranslated string: wlan client method
WARNING: untranslated string: wlan client password
WARNING: untranslated string: wlan client tls cipher
WARNING: untranslated string: wlan client tls version
WARNING: untranslated string: wlanap
WARNING: untranslated string: wlanap configuration

View File

@@ -686,6 +686,7 @@ WARNING: translation string unused: web proxy configuration
WARNING: translation string unused: week-graph
WARNING: translation string unused: weekly firewallhits
WARNING: translation string unused: wildcards
WARNING: translation string unused: wlanap access point
WARNING: translation string unused: wlanap wlan services
WARNING: translation string unused: xtaccess all error
WARNING: translation string unused: xtaccess bad transfert
@@ -694,6 +695,7 @@ WARNING: translation string unused: yearly firewallhits
WARNING: untranslated string: 24 hours
WARNING: untranslated string: Captive ACTIVATE
WARNING: untranslated string: Captive GAIN ACCESS
WARNING: untranslated string: Captive WiFi coupon
WARNING: untranslated string: Captive activated
WARNING: untranslated string: Captive active on
WARNING: untranslated string: Captive agree tac
@@ -705,6 +707,7 @@ WARNING: untranslated string: Captive clients
WARNING: untranslated string: Captive config
WARNING: untranslated string: Captive coupon
WARNING: untranslated string: Captive expiry time
WARNING: untranslated string: Captive export coupons
WARNING: untranslated string: Captive generate coupon
WARNING: untranslated string: Captive issued coupons
WARNING: untranslated string: Captive logo uploaded
@@ -713,11 +716,14 @@ WARNING: untranslated string: Captive menu
WARNING: untranslated string: Captive noexpiretime
WARNING: untranslated string: Captive nolimit
WARNING: untranslated string: Captive please accept the terms and conditions
WARNING: untranslated string: Captive portal
WARNING: untranslated string: Captive portal coupons
WARNING: untranslated string: Captive terms
WARNING: untranslated string: Captive terms short
WARNING: untranslated string: Captive title
WARNING: untranslated string: Captive upload logo
WARNING: untranslated string: Captive upload logo recommendations
WARNING: untranslated string: Captive valid for
WARNING: untranslated string: Captive vouchervalid
WARNING: untranslated string: Captive wrong ext
WARNING: untranslated string: MTU settings
@@ -935,3 +941,5 @@ WARNING: untranslated string: wlan client method
WARNING: untranslated string: wlan client password
WARNING: untranslated string: wlan client tls cipher
WARNING: untranslated string: wlan client tls version
WARNING: untranslated string: wlanap
WARNING: untranslated string: wlanap configuration

View File

@@ -613,6 +613,7 @@ WARNING: translation string unused: web proxy configuration
WARNING: translation string unused: week-graph
WARNING: translation string unused: weekly firewallhits
WARNING: translation string unused: wildcards
WARNING: translation string unused: wlanap access point
WARNING: translation string unused: wlanap wlan services
WARNING: translation string unused: xtaccess all error
WARNING: translation string unused: xtaccess bad transfert
@@ -621,6 +622,7 @@ WARNING: translation string unused: yearly firewallhits
WARNING: untranslated string: 24 hours
WARNING: untranslated string: Captive ACTIVATE
WARNING: untranslated string: Captive GAIN ACCESS
WARNING: untranslated string: Captive WiFi coupon
WARNING: untranslated string: Captive activated
WARNING: untranslated string: Captive active on
WARNING: untranslated string: Captive agree tac
@@ -632,6 +634,7 @@ WARNING: untranslated string: Captive clients
WARNING: untranslated string: Captive config
WARNING: untranslated string: Captive coupon
WARNING: untranslated string: Captive expiry time
WARNING: untranslated string: Captive export coupons
WARNING: untranslated string: Captive generate coupon
WARNING: untranslated string: Captive issued coupons
WARNING: untranslated string: Captive logo uploaded
@@ -640,11 +643,14 @@ WARNING: untranslated string: Captive menu
WARNING: untranslated string: Captive noexpiretime
WARNING: untranslated string: Captive nolimit
WARNING: untranslated string: Captive please accept the terms and conditions
WARNING: untranslated string: Captive portal
WARNING: untranslated string: Captive portal coupons
WARNING: untranslated string: Captive terms
WARNING: untranslated string: Captive terms short
WARNING: untranslated string: Captive title
WARNING: untranslated string: Captive upload logo
WARNING: untranslated string: Captive upload logo recommendations
WARNING: untranslated string: Captive valid for
WARNING: untranslated string: Captive vouchervalid
WARNING: untranslated string: Captive wrong ext
WARNING: untranslated string: ConnSched dial
@@ -1243,4 +1249,6 @@ WARNING: untranslated string: wlan client wpa mode ccmp ccmp
WARNING: untranslated string: wlan client wpa mode ccmp tkip
WARNING: untranslated string: wlan client wpa mode tkip tkip
WARNING: untranslated string: wlan clients
WARNING: untranslated string: wlanap
WARNING: untranslated string: wlanap configuration
WARNING: untranslated string: wlanap country

View File

@@ -615,6 +615,7 @@ WARNING: translation string unused: warn when traffic reaches
WARNING: translation string unused: web proxy configuration
WARNING: translation string unused: weekly firewallhits
WARNING: translation string unused: wildcards
WARNING: translation string unused: wlanap access point
WARNING: translation string unused: wlanap wlan services
WARNING: translation string unused: xtaccess all error
WARNING: translation string unused: xtaccess bad transfert
@@ -623,6 +624,7 @@ WARNING: untranslated string: 24 hours
WARNING: untranslated string: Add a route
WARNING: untranslated string: Captive ACTIVATE
WARNING: untranslated string: Captive GAIN ACCESS
WARNING: untranslated string: Captive WiFi coupon
WARNING: untranslated string: Captive activated
WARNING: untranslated string: Captive active on
WARNING: untranslated string: Captive agree tac
@@ -634,6 +636,7 @@ WARNING: untranslated string: Captive clients
WARNING: untranslated string: Captive config
WARNING: untranslated string: Captive coupon
WARNING: untranslated string: Captive expiry time
WARNING: untranslated string: Captive export coupons
WARNING: untranslated string: Captive generate coupon
WARNING: untranslated string: Captive issued coupons
WARNING: untranslated string: Captive logo uploaded
@@ -642,11 +645,14 @@ WARNING: untranslated string: Captive menu
WARNING: untranslated string: Captive noexpiretime
WARNING: untranslated string: Captive nolimit
WARNING: untranslated string: Captive please accept the terms and conditions
WARNING: untranslated string: Captive portal
WARNING: untranslated string: Captive portal coupons
WARNING: untranslated string: Captive terms
WARNING: untranslated string: Captive terms short
WARNING: untranslated string: Captive title
WARNING: untranslated string: Captive upload logo
WARNING: untranslated string: Captive upload logo recommendations
WARNING: untranslated string: Captive valid for
WARNING: untranslated string: Captive vouchervalid
WARNING: untranslated string: Captive wrong ext
WARNING: untranslated string: ConnSched dial
@@ -1238,4 +1244,6 @@ WARNING: untranslated string: wlan client wpa mode ccmp ccmp
WARNING: untranslated string: wlan client wpa mode ccmp tkip
WARNING: untranslated string: wlan client wpa mode tkip tkip
WARNING: untranslated string: wlan clients
WARNING: untranslated string: wlanap
WARNING: untranslated string: wlanap configuration
WARNING: untranslated string: wlanap country

View File

@@ -698,6 +698,7 @@ WARNING: translation string unused: web proxy configuration
WARNING: translation string unused: week-graph
WARNING: translation string unused: weekly firewallhits
WARNING: translation string unused: wildcards
WARNING: translation string unused: wlanap access point
WARNING: translation string unused: wlanap wlan services
WARNING: translation string unused: xtaccess all error
WARNING: translation string unused: xtaccess bad transfert
@@ -706,6 +707,7 @@ WARNING: translation string unused: yearly firewallhits
WARNING: untranslated string: 24 hours
WARNING: untranslated string: Captive ACTIVATE
WARNING: untranslated string: Captive GAIN ACCESS
WARNING: untranslated string: Captive WiFi coupon
WARNING: untranslated string: Captive activated
WARNING: untranslated string: Captive active on
WARNING: untranslated string: Captive agree tac
@@ -717,6 +719,7 @@ WARNING: untranslated string: Captive clients
WARNING: untranslated string: Captive config
WARNING: untranslated string: Captive coupon
WARNING: untranslated string: Captive expiry time
WARNING: untranslated string: Captive export coupons
WARNING: untranslated string: Captive generate coupon
WARNING: untranslated string: Captive issued coupons
WARNING: untranslated string: Captive logo uploaded
@@ -725,11 +728,14 @@ WARNING: untranslated string: Captive menu
WARNING: untranslated string: Captive noexpiretime
WARNING: untranslated string: Captive nolimit
WARNING: untranslated string: Captive please accept the terms and conditions
WARNING: untranslated string: Captive portal
WARNING: untranslated string: Captive portal coupons
WARNING: untranslated string: Captive terms
WARNING: untranslated string: Captive terms short
WARNING: untranslated string: Captive title
WARNING: untranslated string: Captive upload logo
WARNING: untranslated string: Captive upload logo recommendations
WARNING: untranslated string: Captive valid for
WARNING: untranslated string: Captive vouchervalid
WARNING: untranslated string: Captive wrong ext
WARNING: untranslated string: Scan for Songs
@@ -818,3 +824,5 @@ WARNING: untranslated string: wlan client method
WARNING: untranslated string: wlan client password
WARNING: untranslated string: wlan client tls cipher
WARNING: untranslated string: wlan client tls version
WARNING: untranslated string: wlanap
WARNING: untranslated string: wlanap configuration

View File

@@ -56,6 +56,7 @@
< Captive err doublevoucher
< Captive expire
< Captive expiry time
< Captive export coupons
< Captive GAIN ACCESS
< Captive generate coupon
< Captive genvoucher
@@ -73,16 +74,20 @@
< Captive nolimit
< Captive nr
< Captive please accept the terms and conditions
< Captive portal
< Captive portal coupons
< Captive terms
< Captive terms short
< Captive time
< Captive title
< Captive upload logo
< Captive upload logo recommendations
< Captive valid for
< Captive voactive
< Captive voucher
< Captive vouchervalid
< Captive vout
< Captive WiFi coupon
< Captive wrong ext
< ccd add
< ccd choose net
@@ -632,8 +637,9 @@
< vpn statistic rw
< vpn weak
< wireless network
< wlanap access point
< wlanap
< wlanap channel
< wlanap configuration
< wlanap country
< wlanap debugging
< wlanap del interface
@@ -747,6 +753,7 @@
< Captive err doublevoucher
< Captive expire
< Captive expiry time
< Captive export coupons
< Captive GAIN ACCESS
< Captive generate coupon
< Captive genvoucher
@@ -764,16 +771,20 @@
< Captive nolimit
< Captive nr
< Captive please accept the terms and conditions
< Captive portal
< Captive portal coupons
< Captive terms
< Captive terms short
< Captive time
< Captive title
< Captive upload logo
< Captive upload logo recommendations
< Captive valid for
< Captive voactive
< Captive voucher
< Captive vouchervalid
< Captive vout
< Captive WiFi coupon
< Captive wrong ext
< ccd add
< ccd choose net
@@ -1325,6 +1336,8 @@
< vpn statistic rw
< vpn weak
< wireless network
< wlanap
< wlanap configuration
< wlanap country
< wlan client
< wlan client advanced settings
@@ -1419,6 +1432,7 @@
< Captive err doublevoucher
< Captive expire
< Captive expiry time
< Captive export coupons
< Captive GAIN ACCESS
< Captive generate coupon
< Captive genvoucher
@@ -1436,16 +1450,20 @@
< Captive nolimit
< Captive nr
< Captive please accept the terms and conditions
< Captive portal
< Captive portal coupons
< Captive terms
< Captive terms short
< Captive time
< Captive title
< Captive upload logo
< Captive upload logo recommendations
< Captive valid for
< Captive voactive
< Captive voucher
< Captive vouchervalid
< Captive vout
< Captive WiFi coupon
< Captive wrong ext
< ccd add
< ccd choose net
@@ -1983,6 +2001,8 @@
< vpn statistic rw
< vpn weak
< wireless network
< wlanap
< wlanap configuration
< wlanap country
< wlan client
< wlan client advanced settings
@@ -2078,6 +2098,7 @@
< Captive err doublevoucher
< Captive expire
< Captive expiry time
< Captive export coupons
< Captive GAIN ACCESS
< Captive generate coupon
< Captive genvoucher
@@ -2095,16 +2116,20 @@
< Captive nolimit
< Captive nr
< Captive please accept the terms and conditions
< Captive portal
< Captive portal coupons
< Captive terms
< Captive terms short
< Captive time
< Captive title
< Captive upload logo
< Captive upload logo recommendations
< Captive valid for
< Captive voactive
< Captive voucher
< Captive vouchervalid
< Captive vout
< Captive WiFi coupon
< Captive wrong ext
< ccd add
< ccd choose net
@@ -2647,6 +2672,8 @@
< vpn weak
< week-graph
< wireless network
< wlanap
< wlanap configuration
< wlanap country
< wlan client
< wlan client advanced settings

View File

@@ -20,8 +20,11 @@
###############################################################################
#use strict;
use Encode;
use HTML::Entities();
use File::Basename;
use PDF::API2;
use constant mm => 25.4 / 72;
# enable only the following on debugging purpose
#use warnings;
@@ -57,6 +60,20 @@ unless (-e $settingsfile) { system("touch $settingsfile"); }
&General::readhash("$settingsfile", \%settings) if(-f $settingsfile);
&General::readhash("${General::swroot}/ethernet/settings", \%netsettings);
if ($cgiparams{'ACTION'} eq "export-coupons") {
my $pdf = &generate_pdf();
print "Content-Type: application/pdf\n";
print "Content-Disposition: attachment; filename=captive-portal-coupons.pdf\n";
print "\n"; # end headers
# Send PDF
print $pdf;
exit(0);
}
&Header::showhttpheaders();
if ($cgiparams{'ACTION'} eq $Lang::tr{'save'}) {
@@ -572,6 +589,16 @@ END
print "</table>";
# Download PDF
print <<END;
<div align="right">
<form method="POST">
<input type="hidden" name="ACTION" value="export-coupons">
<input type="submit" value="$Lang::tr{'Captive export coupons'}">
</form>
</div>
END
&Header::closebox();
}
@@ -660,5 +687,136 @@ sub validremark
return 1;
}
sub generate_pdf() {
my $pdf = PDF::API2->new();
my ($sec, $min, $hour, $mday, $mon, $year, $wday, $yday, $isdst) = gmtime(time);
my $timestamp = sprintf("D:%04d%02d%02d%02d%02d%02d+00;00", $year+1900, $mon+1, $mday, $hour, $min, $sec);
$pdf->info(
"Creator" => $Lang::tr{'Captive portal'},
"Title" => $Lang::tr{'Captive portal coupons'},
"CreationDate" => $timestamp,
"ModDate" => $timestamp,
);
# Set page size
$pdf->mediabox("A4");
$pdf->trimbox(28/mm, 27/mm, 182/mm, 270/mm);
# Set font
my $font = $pdf->ttfont("/usr/share/fonts/Ubuntu-R.ttf");
my $page_h_margin = 27/mm;
my $page_v_margin = 28/mm;
my $height = 68/mm;
my $width = 91/mm;
my $margin = 2/mm;
# Tux Image
my $tux_image = $pdf->image_png("/srv/web/ipfire/html/captive/assets/ipfire.png");
my $logo_height = 12/mm;
my $logo_width = 12/mm;
my @coupons = ();
my %coupon_expiry_times = ();
# Read coupons
&General::readhasharray($coupons, \%couponhash) if (-e $coupons);
foreach my $key (keys %couponhash) {
$coupon_expiry_times{$couponhash{$key}[1]} = $couponhash{$key}[2];
push @coupons, $couponhash{$key}[1];
}
while (@coupons) {
# Make a new page
my $page = $pdf->page();
# Graphics
$gfx = $page->gfx();
# Headline font
my $f_headline = $page->text();
$f_headline->font($font, 20);
# Subheadline font
my $f_subheadline = $page->text();
$f_subheadline->font($font, 14);
# Coupon font
my $f_coupon = $page->text();
$f_coupon->font($font, 36);
# Lifetime
my $f_lifetime = $page->text();
$f_lifetime->font($font, 14);
# Watermark font
my $f_watermark = $page->text();
$f_watermark->fillcolor("#666666");
$f_watermark->font($font, 10);
my $i = 0;
while (@coupons && $i < 8) {
my $coupon = shift @coupons;
# Box corners
my $x = ($page_v_margin / 2) + (($i % 2) ? $width : 0);
my $y = ($page_h_margin / 2) + (int($i / 2) * $height);
# Weidth and height of the box
my $w = $width - $margin;
my $h = $height - $margin;
# Center
my $cx = $x + ($w / 2);
my $cy = $y + ($h / 2);
# Draw border box
$gfx->strokecolor("#333333");
$gfx->linedash(1/mm, 1/mm);
$gfx->rect($x, $y, $w, $h);
$gfx->stroke();
$gfx->endpath();
# Headline
$f_headline->translate($cx, ($y + $h - $cy) / 1.7 + $cy);
$f_subheadline->translate($cx, ($y + $h - $cy) / 2.4 + $cy);
if ($settings{'TITLE'}) {
$f_headline->text_center($settings{'TITLE'});
$f_subheadline->text_center(decode("utf8", $Lang::tr{'Captive WiFi coupon'}));
} else {
$f_headline->text_center(decode("utf8", $Lang::tr{'Captive WiFi coupon'}));
}
# Coupon
$f_coupon->translate($cx, $cy);
$f_coupon->text_center(decode("utf8", $coupon));
# Show lifetime
my $expiry_time = $coupon_expiry_times{$coupon};
$f_lifetime->translate($cx, $cy - ($y + $h - $cy) / 4);
if ($expiry_time > 0) {
my $lifetime = &General::format_time($expiry_time);
$f_lifetime->text_center(decode("utf8", $Lang::tr{'Captive valid for'} . " " . $lifetime));
} else {
$f_lifetime->text_center(decode("utf8", $Lang::tr{'Captive nolimit'}));
}
# Add watermark
$gfx->image($tux_image, $x + $w - $logo_width - $margin, $y + $margin, $logo_width, $logo_height);
$f_watermark->translate($x + $w - ($margin * 2) - $logo_width, $y + ($logo_height / 2));
$f_watermark->text_right("Powered by IPFire");
$i++;
}
}
# Write out the PDF document
return $pdf->stringify();
}
&Header::closebigbox();
&Header::closepage();

View File

@@ -12,6 +12,7 @@
'Captive 1week' => '1 Woche',
'Captive ACTIVATE' => 'AKTIVIEREN',
'Captive GAIN ACCESS' => 'ZUGANG',
'Captive WiFi coupon' => 'WLAN-Coupon',
'Captive activate' => 'Aktivieren',
'Captive activated' => 'Aktiviert',
'Captive active on' => 'Aktiviert auf',
@@ -28,6 +29,7 @@
'Captive err doublevoucher' => 'Ein Gutschein mit diesem Code ist bereits im Umlauf',
'Captive expire' => 'Ablauf',
'Captive expiry time' => 'Ablaufzeit',
'Captive export coupons' => 'Coupons exportieren',
'Captive generate coupon' => 'Coupon generieren',
'Captive genvoucher' => 'Gutschein generieren',
'Captive invalid logosize' => 'Die hochgeladene Datei entspricht nicht der vorgegeben Auflösung von mindestens 1280x400 und maximal 1920x800 Pixeln',
@@ -44,12 +46,15 @@
'Captive nolimit' => 'Unbegrenzt',
'Captive nr' => 'Nummer',
'Captive please accept the terms and conditions' => 'Bitte akzeptieren Sie die Bedingungen',
'Captive portal' => 'IPFire Captive-Portal',
'Captive portal coupons' => 'Captive-Portal-Coupons',
'Captive terms' => 'Bedingungen',
'Captive terms short' => 'Bedingungen',
'Captive time' => 'Erlaubter Nutzungszeitraum nach Aktivierung (Stunden)',
'Captive title' => 'Titel der Anmeldeseite',
'Captive upload logo' => 'Logo hochladen',
'Captive upload logo recommendations' => '(PNG oder JPEG, 1280x720 Pixel empfohlen)',
'Captive valid for' => 'Gültig für',
'Captive voactive' => 'Aktive Gutscheine',
'Captive voucher' => 'Gutschein',
'Captive vouchervalid' => 'Erlaubter Zeitraum für Gutschein',

View File

@@ -13,6 +13,7 @@
'Captive 1week' => '1 week',
'Captive ACTIVATE' => 'ACTIVATE',
'Captive GAIN ACCESS' => 'GAIN ACCESS',
'Captive WiFi coupon' => 'WiFi Coupon',
'Captive activate' => 'Activate',
'Captive activated' => 'Activated',
'Captive active on' => 'Activated on',
@@ -28,6 +29,7 @@
'Captive err doublevoucher' => 'A voucher with this code already exists',
'Captive expire' => 'Expire',
'Captive expiry time' => 'Expiry Time',
'Captive export coupons' => 'Export Coupons',
'Captive generate coupon' => 'Generate Coupon',
'Captive heading terms' => 'Terms &amp; Conditions',
'Captive heading voucher' => 'Voucher or Access Code',
@@ -45,12 +47,15 @@
'Captive nr' => 'Number',
'Captive please accept the terms and conditions' => 'Please accept the terms &amp; conditions',
'Captive please enter a coupon code' => 'Please enter a coupon code',
'Captive portal' => 'IPFire Captive Portal',
'Captive portal coupons' => 'Captive Portal Coupons',
'Captive terms' => 'Terms &amp; Conditions',
'Captive terms short' => 'T&Cs',
'Captive time' => 'Access time post activation (hours)',
'Captive title' => 'Title of Login Page',
'Captive upload logo' => 'Upload Logo',
'Captive upload logo recommendations' => '(PNG or JPEG, recommended 1280x720 pixels)',
'Captive valid for' => 'Valid for',
'Captive voactive' => 'Active Vouchers',
'Captive voucher' => 'Voucher',
'Captive vouchervalid' => 'Allowed time for this voucher',