X-Git-Url: http://wagnertech.de/git?a=blobdiff_plain;f=SL%2FForm.pm;h=1c03e107ffa8f629ad223c599510c26e3608dcb1;hb=0f2d4920a798878ab2ff60ba11b190854c23c5fb;hp=90f412018895a6931a8815d2de8db440debf45e5;hpb=637325bb8d8050099eaaeb06c2a50e49ccbc29a7;p=kivitendo-erp.git diff --git a/SL/Form.pm b/SL/Form.pm index 90f412018..1c03e107f 100644 --- a/SL/Form.pm +++ b/SL/Form.pm @@ -142,8 +142,7 @@ sub new { $self->{action} = lc $self->{action}; $self->{action} =~ s/( |-|,|#)/_/g; - $self->{version} = "2.2.0"; - $self->{dbversion} = "2.2.0"; + $self->{version} = "2.3.0"; $main::lxdebug->leave_sub(); @@ -198,7 +197,7 @@ sub quote { my ($self, $str) = @_; if ($str && !ref($str)) { - $str =~ s/"/"/g; + $str =~ s/\"/"/g; } $str; @@ -209,7 +208,7 @@ sub unquote { my ($self, $str) = @_; if ($str && !ref($str)) { - $str =~ s/"/"/g; + $str =~ s/"/\"/g; } $str; @@ -416,15 +415,33 @@ sub parse_html_template { $main::lxdebug->enter_sub(); my ($self, $file, $additional_params) = @_; + my $language; - if (-f "templates/webpages/${file}_" . $main::myconfig{"countrycode"} . - ".html") { - $file = "templates/webpages/${file}_" . $main::myconfig{"countrycode"} . - ".html"; + if (!defined($main::myconfig) || !defined($main::myconfig{"countrycode"})) { + $language = $main::language; + } else { + $language = $main::myconfig{"countrycode"}; + } + + if (-f "templates/webpages/${file}_${language}.html") { + if ((-f ".developer") && + (-f "templates/webpages/${file}_master.html") && + ((stat("templates/webpages/${file}_master.html"))[9] > + (stat("templates/webpages/${file}_${language}.html"))[9])) { + my $info = "Developper information: templates/webpages/${file}_master.html is newer than the localized version.\n" . + "Please re-run 'locales.pl' in 'locale/${language}'."; + print(qq|
$info
|); + die($info); + } + + $file = "templates/webpages/${file}_${language}.html"; } elsif (-f "templates/webpages/${file}.html") { $file = "templates/webpages/${file}.html"; } else { - $self->error("Web page template '${file}' not found."); + my $info = "Web page template '${file}' not found.\n" . + "Please re-run 'locales.pl' in 'locale/${language}'."; + print(qq|
$info
|); + die($info); } my $template = HTML::Template->new("filename" => $file, @@ -675,7 +692,7 @@ sub parse_amount { } if ($myconfig->{numberformat} eq "1'000.00") { - $amount =~ s/'//g; + $amount =~ s/\'//g; } $amount =~ s/,//g; @@ -766,7 +783,16 @@ sub parse_template { $par = ""; $var = $_; - + + # Switch <%analyse%> for template checking + # If <%analyse%> is set in the template, you'll find the + # parsed output in the user Directory for analysing + # Latex errors + # <%analyse%> is a switch (allways off, on if set), not a Variable + # Set $form->{analysing}="" for system state: never analyse. + # Set $form->{analysing}="1" for system state: ever analyse. + $self->{analysing} = "1" if (/<%analyse%>/ && !defined $self->{analysing}); + $two_passes = 1 if (/\\pageref/); # { Moritz Bunkus @@ -913,12 +939,12 @@ sub parse_template { # check for <%include filename%> if (/\s*<%include /) { - # get the filename + # get the directory/filename chomp $var; $var =~ s/\s*<%include (.+?)%>/$1/; - # mangle filename - $var =~ s/(\/|\.\.)//g; + # mangle filename on basedir + $var =~ s/^(\/|\.\.)//g; # prevent the infinite loop! next if ($self->{"$var"}); @@ -1091,12 +1117,14 @@ sub cleanup { close(FH); } - if ($self->{tmpfile}) { + if ($self->{analysing} eq "") { + if ($self->{tmpfile}) { - # strip extension - $self->{tmpfile} =~ s/\.\w+$//g; - my $tmpfile = $self->{tmpfile}; - unlink(<$tmpfile.*>); + # strip extension + $self->{tmpfile} =~ s/\.\w+$//g; + my $tmpfile = $self->{tmpfile}; + unlink(<$tmpfile.*>); + } } chdir("$self->{cwd}"); @@ -1141,7 +1169,7 @@ sub format_string { '&', quotemeta('\n'), ' ', '"', '\$', '%', '_', '#', quotemeta('^'), - '{', '}', '<', '>', '£', "\r" + '{', '}', '<', '>', '£', "\r", '²' ] }, 'html' => { @@ -1167,6 +1195,7 @@ sub format_string { ' ' => '\newline ', '£' => '\pounds ', + '²' => '$^2$', "\r" => "" });