return 0;
}
-sub _get_loop_variable_value {
- my $self = shift;
- my $var = shift;
- my @indices = @_;
+sub _get_loop_variable {
+ my $self = shift;
+ my $var = shift;
+ my $get_array = shift;
+ my @indices = @_;
- my $form = $self->{form};
- my $value = $self->{form}->{$var};
+ my $form = $self->{form};
+ my $value;
+
+ if (($get_array || @indices) && (ref $form->{TEMPLATE_ARRAYS} eq 'HASH') && (ref $form->{TEMPLATE_ARRAYS}->{$var} eq 'ARRAY')) {
+ $value = $form->{TEMPLATE_ARRAYS}->{$var};
+ } else {
+ $value = $form->{$var};
+ }
for (my $i = 0; $i < scalar(@indices); $i++) {
last unless (ref($value) eq "ARRAY");
my ($tag_pos, $tag_len) = ($-[0], $+[0] - $-[0]);
my ($var, @options) = split(/\s+/, $1);
- my $value = $self->_get_loop_variable_value($var, @indices);
+ my $value = $self->_get_loop_variable($var, 0, @indices);
$value = $self->format_string($value) unless (grep(/^NOESCAPE$/, @options));
substr($text, $tag_pos, $tag_len, $value);
my ($form, $new_contents) = ($self->{"form"}, "");
- my $ary = $form->{$var};
- for (my $i = 0; $i < scalar(@indices); $i++) {
- last unless (ref($ary) eq "ARRAY");
- $ary = $ary->[$indices[$i]];
- }
+ my $ary = $self->_get_loop_variable($var, 1, @indices);
my $sum = 0;
my $current_page = 1;
$sum += $form->parse_amount($self->{"myconfig"},
$form->{"linetotal"}->[$i]);
}
-
+
$form->{"cumulatelinetotal"}[$i] = $form->format_amount($self->{"myconfig"}, $sum, 2);
-
+
my $new_text = $self->parse_block($text, (@indices, $i));
return undef unless (defined($new_text));
$new_contents .= $start_tag . $new_text . $end_tag;
return undef;
}
- my $value = $self->{"form"}->{$var};
+ my $form = $self->{form};
+ $form = $form->{TEMPLATE_ARRAYS} if @indices
+ && ref $form->{TEMPLATE_ARRAYS} eq 'HASH'
+ && ref $form->{TEMPLATE_ARRAYS}->{$var} eq 'ARRAY';
+ my $value = $form->{$var};
for (my $i = 0; $i < scalar(@indices); $i++) {
last unless (ref($value) eq "ARRAY");
$value = $value->[$indices[$i]];
$form->{tmpfile} =~ s/\Q$userspath\E\///g;
+ my $latex = $self->_get_latex_path();
+
for (my $run = 1; $run <= 2; $run++) {
- system("latex --interaction=nonstopmode $form->{tmpfile} " .
+ system("${latex} --interaction=nonstopmode $form->{tmpfile} " .
"> $form->{tmpfile}.err");
if ($?) {
$self->{"error"} = $form->cleanup();
$form->{tmpfile} =~ s/\Q$userspath\E\///g;
+ my $latex = $self->_get_latex_path();
+
for (my $run = 1; $run <= 2; $run++) {
- system("pdflatex --interaction=nonstopmode $form->{tmpfile} " .
+ system("${latex} --interaction=nonstopmode $form->{tmpfile} " .
"> $form->{tmpfile}.err");
if ($?) {
$self->{"error"} = $form->cleanup();
$self->cleanup();
}
+sub _get_latex_path {
+ return $main::latex_bin || 'pdflatex';
+}
+
sub get_mime_type() {
my ($self) = @_;
my ($form, $new_contents) = ($self->{"form"}, "");
- my $ary = $form->{$var};
- for (my $i = 0; $i < scalar(@indices); $i++) {
- last unless (ref($ary) eq "ARRAY");
- $ary = $ary->[$indices[$i]];
- }
+ my $ary = $self->_get_loop_variable($var, 1, @indices);
for (my $i = 0; $i < scalar(@{$ary}); $i++) {
$form->{"__first__"} = $i == 0;
####
##########################################################
-package XMLTemplate;
+package XMLTemplate;
use vars qw(@ISA);