diff --git a/C4/SIP/ILS/Patron.pm b/C4/SIP/ILS/Patron.pm index 5a387c1451..bb967df373 100644 --- a/C4/SIP/ILS/Patron.pm +++ b/C4/SIP/ILS/Patron.pm @@ -215,7 +215,7 @@ sub new { while ( my $message = $patron_messages->next ) { my $messagedt = dt_from_string( $message->message_date, 'iso' ); my $formatted_date = output_pref( { dt => $messagedt, dateonly => 1 } ); - push @messages_array, $formatted_date . ": " . $message->message; + push @messages_array, $formatted_date . ": " . $message->message_without_newlines; } if (@messages_array) { $ilspatron{screen_msg} .= " Messages for you: " . join( ' / ', @messages_array ); diff --git a/Koha/Patron/Message.pm b/Koha/Patron/Message.pm index 8ba6138da9..884c4b4241 100644 --- a/Koha/Patron/Message.pm +++ b/Koha/Patron/Message.pm @@ -77,6 +77,27 @@ sub delete { return $self->SUPER::delete($self); } +=head3 message_without_newlines + +my $message_without_newlines = $message->message_without_newlines + +This method returns the user's message, with all instances of \n and \r removed + +=cut + +sub message_without_newlines { + my ($self) = @_; + my $message = $self->message + or return; + + $message =~ s/\n/ /g; + $message =~ s/\r//g; + $message =~ s/^\s+|\s+$//g; # left and right trim + $message =~ s/ +/ /g; # duplicate spaces + + return $message; +} + =head3 _type =cut