Bug 11248: fix encoding issue on emailing a list (INTRANET)

Test plan:
- send a list via email with the english version.
- translate templates and retry with another language.

Signed-off-by: Katrin Fischer <Katrin.Fischer.83@web.de>

Sending an intranet list from translated templates requires
a new list template for the intranet. I have added the needed
changes in a follow-up.

Signed-off-by: Kyle M Hall <kyle@bywatersolutions.com>
Signed-off-by: Galen Charlton <gmc@esilibrary.com>
(cherry picked from commit 9181636874)
Signed-off-by: Fridolin Somers <fridolin.somers@biblibre.com>

Signed-off-by: Kyle M Hall <kyle@bywatersolutions.com>
(cherry picked from commit 5e1e2c2d18)
This commit is contained in:
Jonathan Druart 2013-11-14 14:00:46 +01:00 committed by Kyle M Hall
parent 3c8be0709f
commit 80d7b61c14
2 changed files with 165 additions and 37 deletions

View File

@ -2,44 +2,165 @@
Your List : [% shelfname %]
<END_SUBJECT>
[% USE HtmlToText %]
[% myhtml FILTER html2text(leftmargin => 0, rightmargin => 0) %]
[% myhtmltext | html2text %]
<HEADER>
Hi,
[% FILTER html2text %]
<p>Hi,</p>
Here is your list called [% shelfname %], sent from our online catalog.
<p>Here is your list called [% shelfname %], sent from our online catalog.</p>
<p>Please note that the attached file is a MARC bibliographic records file
which can be imported into a Personal Bibliographic Software like EndNote,
Reference Manager or ProCite.</p>
<hr/>
[% END %]
Please note that the attached file is a MARC bibliographic records file
which can be imported into a Personal Bibliographic Software like EndNote,
Reference Manager or ProCite.
<END_HEADER>
<MESSAGE>
---------------------------------------------
[% IF ( comment ) %]
[% comment %]
[% END %]
[% FOREACH BIBLIO_RESULT IN BIBLIO_RESULTS %][% BIBLIO_RESULT.title %][% IF ( BIBLIO_RESULT.subtitle.size ) %] [% FOREACH subtitle IN BIBLIO_RESULT.subtitle %][% subtitle.subfield %][% END %][% END %][% IF ( BIBLIO_RESULT.author ) %]
[% FILTER html2text %]
by [% BIBLIO_RESULT.author %][% END %]
[% IF ( BIBLIO_RESULT.MARCAUTHORS.size ) %]
Additional author(s): [% FOREACH MARCAUTHOR IN BIBLIO_RESULT.MARCAUTHORS %][% FOREACH MARCAUTHOR_SUBFIELDS_LOO IN MARCAUTHOR.MARCAUTHOR_SUBFIELDS_LOOP %][% MARCAUTHOR_SUBFIELDS_LOO.separator %] [% MARCAUTHOR_SUBFIELDS_LOO.value %][% END %][% UNLESS ( loop.last ) %];[% END %][% END %][% END %][% IF ( BIBLIO_RESULT.ISBN ) %]
ISBN: [% BIBLIO_RESULT.ISBN %][% END %]
[% IF ( BIBLIO_RESULT.publishercode ) %]Published by: [% BIBLIO_RESULT.publishercode %][% END %][% IF ( BIBLIO_RESULT.publicationyear ) %] in [% END %][% BIBLIO_RESULT.publicationyear %][% IF ( BIBLIO_RESULT.pages ) %], [% END %][% BIBLIO_RESULT.pages %][% IF ( BIBLIO_RESULT.size ) %], [% END %][% BIBLIO_RESULT.size %][% IF ( BIBLIO_RESULT.collection ) %]
Collection: [% BIBLIO_RESULT.seriestitle %][% END %][% IF ( BIBLIO_RESULT.subject ) %]
Subject: [% BIBLIO_RESULT.subject %][% END %][% IF ( BIBLIO_RESULT.copyrightdate ) %]
Copyright year: [% BIBLIO_RESULT.copyrightdate %][% END %][% IF ( BIBLIO_RESULT.notes ) %]
Notes : [% BIBLIO_RESULT.notes %][% END %][% IF ( BIBLIO_RESULT.unititle ) %]
Unified title: [% BIBLIO_RESULT.unititle %][% END %][% IF ( BIBLIO_RESULT.serial ) %]
Serial: [% BIBLIO_RESULT.serial %][% END %][% IF ( BIBLIO_RESULT.dewey ) %]
Dewey: [% BIBLIO_RESULT.dewey %][% END %][% IF ( BIBLIO_RESULT.classification ) %]
Classification: [% BIBLIO_RESULT.classification %][% END %][% IF ( BIBLIO_RESULT.lccn ) %]
LCCN: [% BIBLIO_RESULT.lccn %][% END %][% IF ( BIBLIO_RESULT.url ) %]
URL : [% BIBLIO_RESULT.url %][% END %][% IF ( OPACBaseURL ) %]
In the online catalog:
http://[% OPACBaseURL %]/cgi-bin/koha/opac-detail.pl?biblionumber=[% BIBLIO_RESULT.biblionumber |url %][% END %]
Items : [% FOREACH ITEM_RESULT IN BIBLIO_RESULT.ITEM_RESULTS %]
[% ITEM_RESULT.branchname %] [% ITEM_RESULT.location %] [% IF ( ITEM_RESULT.itemcallnumber ) %]([% ITEM_RESULT.itemcallnumber %])[% END %] [% ITEM_RESULT.barcode %][% END %]
[% IF comment %]
<p>[% comment %]</p>
<hr/>
[% END %]
<ol>
[% FOREACH BIBLIO_RESULT IN BIBLIO_RESULTS %]
<li>
<span>
[% BIBLIO_RESULT.title %]
[% IF ( BIBLIO_RESULT.subtitle.size ) %]
[% FOREACH subtitle IN BIBLIO_RESULT.subtitle %]
[% subtitle.subfield %]
[% END %]
[% END %]
</span>
---------------------------------------------
<p>
[% IF ( BIBLIO_RESULT.HASAUTHORS ) %]
<span>Author(s): [% IF ( BIBLIO_RESULT.author ) %][% BIBLIO_RESULT.author %][% END %]
[% IF ( BIBLIO_RESULT.MARCAUTHORS ) %]
[% IF ( BIBLIO_RESULT.author ) %]; [% END %]
[% FOREACH MARCAUTHOR IN BIBLIO_RESULT.MARCAUTHORS %]
[% FOREACH MARCAUTHOR_SUBFIELDS_LOO IN MARCAUTHOR.MARCAUTHOR_SUBFIELDS_LOOP %]
[% MARCAUTHOR_SUBFIELDS_LOO.separator %][% MARCAUTHOR_SUBFIELDS_LOO.value %]
[% END %]
[% UNLESS ( loop.last ) %];[% END %]
[% END %]
[% END %]
</span><br/>
[% END %]
[% IF ( BIBLIO_RESULT.ISBN && BIBLIO_RESULT.size > 0 ) %]
<span>
ISBN: [% FOREACH isbn IN BIBLIO_RESULT.ISBN %]
[% isbn.marcisbn %]
[% UNLESS ( loop.last ) %]; [% END %]
[% END %]
</span><br/>
[% END %]
[% IF BIBLIO_RESULT.publishercode %]
<span>
Published by: [% BIBLIO_RESULT.publishercode %]
[% IF ( BIBLIO_RESULT.publicationyear ) %]
in [% BIBLIO_RESULT.publicationyear %]
[% END %]
[% IF ( BIBLIO_RESULT.pages ) %]
, [% BIBLIO_RESULT.pages %]
[% END %]
[% IF BIBLIO_RESULT.size %]
, [% BIBLIO_RESULT.size %]
[% END %]
</span><br/>
[% END %]
[% IF BIBLIO_RESULT.collection %]
<span>
Collection: [% BIBLIO_RESULT.seriestitle %]
</span><br/>
[% END %]
[% IF ( BIBLIO_RESULT.subject ) %]
<span>
Subject: [% BIBLIO_RESULT.subject %]
<span><br/>
[% END %]
[% IF ( BIBLIO_RESULT.copyrightdate ) %]
<span>
Copyright year: [% BIBLIO_RESULT.copyrightdate %]
</span><br/>
[% END %]
[% IF ( BIBLIO_RESULT.notes ) %]
<span>
Notes : [% BIBLIO_RESULT.notes %]
</span><br/>
[% END %]
[% IF ( BIBLIO_RESULT.unititle ) %]
<span>
Unified title: [% BIBLIO_RESULT.unititle %]
</span><br/>
[% END %]
[% IF ( BIBLIO_RESULT.serial ) %]
<span>
Serial: [% BIBLIO_RESULT.serial %]
</span><br/>
[% END %]
[% IF ( BIBLIO_RESULT.dewey ) %]
<span>
Dewey: [% BIBLIO_RESULT.dewey %]
</span><br/>
[% END %]
[% IF ( BIBLIO_RESULT.classification ) %]
<span>
Classification: [% BIBLIO_RESULT.classification %]
</span><br/>
[% END %]
[% IF ( BIBLIO_RESULT.lccn ) %]
<span>
LCCN: [% BIBLIO_RESULT.lccn %]
</span><br/>
[% END %]
[% IF ( BIBLIO_RESULT.url ) %]
<span>
URL: [% BIBLIO_RESULT.url %]
</span>
[% END %]
</p>
[% IF ( OPACBaseURL ) %]
<p>
In online catalog: [% OPACBaseURL %]/cgi-bin/koha/opac-detail.pl?biblionumber=[% BIBLIO_RESULT.biblionumber %]
</p>
[% END %]
[% IF ( BIBLIO_RESULT.ITEM_RESULTS.size ) %]
<p>Items:
<ul>
[% FOREACH ITEM_RESULT IN BIBLIO_RESULT.ITEM_RESULTS %]<li>
[% ITEM_RESULT.branchname %]
[% ITEM_RESULT.location %]
[% IF ITEM_RESULT.itemcallnumber %]([% ITEM_RESULT.itemcallnumber %])[% END %]
[% ITEM_RESULT.barcode %]
</li>[% END %]
</ul>
</p>
[% END %]
<hr/>
</li>
[% END %]
</ol>
[% END %]
<END_MESSAGE>

View File

@ -21,7 +21,7 @@ use strict;
use warnings;
use CGI;
use Encode qw(encode);
use Encode qw(decode encode);
use Carp;
use Mail::Sendmail;
@ -116,22 +116,29 @@ if ( $email ) {
my $body;
# Analysing information and getting mail properties
if ( $template_res =~ /<SUBJECT>\n(.*)\n<END_SUBJECT>/s ) {
$mail{'subject'} = $1;
if ( $template_res =~ /<SUBJECT>(.*)<END_SUBJECT>/s ) {
$mail{subject} = $1;
$mail{subject} =~ s|\n?(.*)\n?|$1|;
}
else { $mail{'subject'} = "no subject"; }
my $email_header = "";
if ( $template_res =~ /<HEADER>\n(.*)\n<END_HEADER>/s ) {
if ( $template_res =~ /<HEADER>(.*)<END_HEADER>/s ) {
$email_header = $1;
$email_header =~ s|\n?(.*)\n?|$1|;
}
my $email_file = "basket.txt";
if ( $template_res =~ /<FILENAME>\n(.*)\n<END_FILENAME>/s ) {
my $email_file = "list.txt";
if ( $template_res =~ /<FILENAME>(.*)<END_FILENAME>/s ) {
$email_file = $1;
$email_file =~ s|\n?(.*)\n?|$1|;
}
if ( $template_res =~ /<MESSAGE>\n(.*)\n<END_MESSAGE>/s ) { $body = encode_qp($1); }
if ( $template_res =~ /<MESSAGE>(.*)<END_MESSAGE>/s ) {
$body = $1;
$body =~ s|\n?(.*)\n?|$1|;
$body = encode("UTF-8", encode_qp($body));
}
my $boundary = "====" . time() . "====";