X-Git-Url: http://wagnertech.de/git?a=blobdiff_plain;f=SL%2FHelper%2FCreatePDF.pm;h=d85ad7d8afaca10b60932de4a0e50e4f6b279135;hb=da300db2eb33f9aa35bef69784b9d9d3ee0c92c8;hp=6308e3608b88c858787f32640cdd69b068fbf5a9;hpb=3afb1ffc83dc9c27be13e9c8ade6c69f9ae6043f;p=kivitendo-erp.git diff --git a/SL/Helper/CreatePDF.pm b/SL/Helper/CreatePDF.pm index 6308e3608..d85ad7d8a 100644 --- a/SL/Helper/CreatePDF.pm +++ b/SL/Helper/CreatePDF.pm @@ -6,6 +6,7 @@ use Carp; use Cwd; use English qw(-no_match_vars); use File::Slurp (); +use File::Spec (); use File::Temp (); use List::MoreUtils qw(uniq); use List::Util qw(first); @@ -47,12 +48,13 @@ sub create_parsed_file { $form->{templates} = $::instance_conf->get_templates; $form->{IN} = $params{template}; $form->{tmpdir} = $form->{cwd} . '/' . $userspath; + my $tmpdir = $form->{tmpdir}; my ($suffix) = $params{template} =~ m{\.(.+)}; my ($temp_fh, $tmpfile) = File::Temp::tempfile( 'kivitendo-printXXXXXX', SUFFIX => ".${suffix}", - DIR => $userspath, + DIR => $form->{tmpdir}, UNLINK => ($::lx_office_conf{debug} && $::lx_office_conf{debug}->{keep_temp_files})? 0 : 1, ); @@ -63,7 +65,8 @@ sub create_parsed_file { source => $form->{IN}, form => $form, myconfig => \%::myconfig, - userspath => $userspath, + userspath => $tmpdir, + variable_content_types => $params{variable_content_types}, ); my $result = $parser->parse($temp_fh); @@ -76,16 +79,22 @@ sub create_parsed_file { die $parser->get_error; } + # SL::Template:** modify $form->{tmpfile} by removing its + # $form->{userspath} prefix. They also store the final file's actual + # file name in $form->{tmpfile} – but it is now relative to + # $form->{userspath}. Other modules return the full file name… + my ($volume, $directory, $file_name) = File::Spec->splitpath($form->{tmpfile}); + my $full_file_name = File::Spec->catfile($tmpdir, $file_name); if (($params{return} || 'content') eq 'file_name') { - my $new_name = $userspath . '/keep-' . $tmpfile; - rename $tmpfile, $new_name; + my $new_name = File::Spec->catfile($tmpdir, 'keep-' . $form->{tmpfile}); + rename $full_file_name, $new_name; $form->cleanup; return $new_name; } - my $content = File::Slurp::read_file($tmpfile); + my $content = File::Slurp::read_file($full_file_name); $form->cleanup;