X-Git-Url: http://git.rot13.org/?a=blobdiff_plain;f=C4%2FMessage.pm;h=3783ce85b95920c2046fbe406098f785730ca16a;hb=102b1ca4bf3b1721f496417473643ff951c13833;hp=53869682c68039ccaeadbddd69d1f80c14277df4;hpb=068e5be6395088793aeab66d67c36c2b9da2c5d9;p=koha.git diff --git a/C4/Message.pm b/C4/Message.pm index 53869682c6..3783ce85b9 100644 --- a/C4/Message.pm +++ b/C4/Message.pm @@ -5,18 +5,18 @@ package C4::Message; # # This file is part of Koha. # -# Koha is free software; you can redistribute it and/or modify it under the -# terms of the GNU General Public License as published by the Free Software -# Foundation; either version 2 of the License, or (at your option) any later -# version. +# Koha is free software; you can redistribute it and/or modify it +# under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 3 of the License, or +# (at your option) any later version. # -# Koha is distributed in the hope that it will be useful, but WITHOUT ANY -# WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR -# A PARTICULAR PURPOSE. See the GNU General Public License for more details. +# Koha is distributed in the hope that it will be useful, but +# WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. # -# You should have received a copy of the GNU General Public License along -# with Koha; if not, write to the Free Software Foundation, Inc., -# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. +# You should have received a copy of the GNU General Public License +# along with Koha; if not, see . use strict; @@ -106,7 +106,7 @@ sub find { if (@$msgs) { return $class->new($msgs->[0]); } else { - return undef; + return; } } @@ -142,7 +142,7 @@ sub find_last_message { if (@$msgs) { return $class->new($msgs->[0]); } else { - return undef; + return; } } @@ -159,8 +159,13 @@ sub enqueue { my ($class, $letter, $borrower, $transport) = @_; my $metadata = _metadata($letter); my $to_address = _to_address($borrower, $transport); + + # Same as render_metadata + my $format ||= sub { $_[0] || "" }; + my $body = join('', map { $format->($_) } @{$metadata->{body}}); + $letter->{content} = $metadata->{header} . $body . $metadata->{footer}; + $letter->{metadata} = Dump($metadata); - #carp "enqueuing... to $to_address"; C4::Letters::EnqueueLetter({ letter => $letter, borrowernumber => $borrower->{borrowernumber}, @@ -306,20 +311,24 @@ If passed a string, it'll append the string to the message. # $object->append($letter_or_item) -- add a new item to a message's content sub append { my ($self, $letter_or_item, $format) = @_; - my $item; + my ( $item, $header, $footer ); if (ref($letter_or_item)) { my $letter = $letter_or_item; my $metadata = _metadata($letter); + $header = $metadata->{header}; + $footer = $metadata->{footer}; $item = $metadata->{body}->[0]; } else { $item = $letter_or_item; } if (not $self->metadata) { carp "Can't append to messages that don't have metadata."; - return undef; + return; } my $metadata = $self->metadata; push @{$metadata->{body}}, $item; + $metadata->{header} = $header; + $metadata->{footer} = $footer; $self->metadata($metadata); my $new_content = $self->render_metadata($format); return $self->content($new_content);