Projekt

Allgemein

Profil

« Zurück | Weiter » 

Revision 46f9d91b

Von Moritz Bunkus vor mehr als 2 Jahren hinzugefügt

  • ID 46f9d91b44c432aa017f44b6b2f53114e190428e
  • Vorgänger bebdc2ce
  • Nachfolger 677f0dd5

Drucken: Variablen in Positionen interpolieren

Alle Variablen, die in Schleifen ausgegeben
werden (z.B. Artikelbeschreibung, Langtext, aber auch die Steuern)
werden nun ebenfalls der Interpolation unterzogen, sodass
z.B. in wiederkehrenden Rechnungen <%current_quarter%> in
Artikelbeschreibungen genutzt werden kann — aber auch Belegfelder.

Unterschiede anzeigen:

SL/BackgroundJob/CreatePeriodicInvoices.pm
143 143
  my $sub_fmt  = lc($params{attribute_format} // 'text');
144 144

  
145 145
  my ($start_tag, $end_tag) = $sub_fmt eq 'html' ? ('&lt;%', '%&gt;') : ('<%', '%>');
146
  my @invoice_keys          = $params{invoice} ? (map { $_->name } $params{invoice}->meta->columns) : ();
147
  my $key_name_re           = join '|', map { quotemeta } (@invoice_keys, keys %{ $params{vars} });
146 148

  
147
  $str =~ s{ ${start_tag} ([a-z0-9_]+) ( \s+ format \s*=\s* (.*?) \s* )? ${end_tag} }{
149
  $str =~ s{ ${start_tag} ($key_name_re) ( \s+ format \s*=\s* (.*?) \s* )? ${end_tag} }{
148 150
    my ($key, $format) = ($1, $3);
149 151
    $key               = $::locale->unquote_special_chars('html', $key) if $sub_fmt eq 'html';
150 152
    my $new_value;

Auch abrufbar als: Unified diff