From 51c8f852e72cc01fa64bad75888bdadaa68784ee Mon Sep 17 00:00:00 2001 From: =?utf8?q?Fr=C3=A9d=C3=A9ric=20Demians?= Date: Mon, 14 May 2012 09:57:50 +0200 Subject: [PATCH] Bug 8062 [SIGNED-OFF] Cart email broken for non english templates Fix basket email sent from OPAC. The email body is now generated HTML (to be translatable), and converted into TEXT before beeing sent by email. To test that it works in other language than English, you have to update your language .po file: perl translate update de-DE Then, translated strings coming from opac-sendbasket.tt, and install the translation: perl translate install de-DE New dependency: Template::Plugin::HtmlToText Signed-off-by: Jonathan Druart Signed-off-by: Chris Cormack Signed-off-by: Jared Camins-Esakov (Conflicts in koha-tmpl/opac-tmpl/prog/en/modules/opac-sendbasket.tt resolved by replacing the file with the version from 3.8.x) --- .../prog/en/modules/opac-sendbasket.tt | 110 +++++++++++++----- opac/opac-sendbasket.pl | 22 ++-- 2 files changed, 89 insertions(+), 43 deletions(-) diff --git a/koha-tmpl/opac-tmpl/prog/en/modules/opac-sendbasket.tt b/koha-tmpl/opac-tmpl/prog/en/modules/opac-sendbasket.tt index 32d00f0215..1e7fbca5cc 100644 --- a/koha-tmpl/opac-tmpl/prog/en/modules/opac-sendbasket.tt +++ b/koha-tmpl/opac-tmpl/prog/en/modules/opac-sendbasket.tt @@ -1,42 +1,92 @@ -Your Cart +Your cart -
-Hi, +[% USE HtmlToText %] +[% myhtml FILTER html2text(leftmargin => 0, rightmargin => 50) %] +[% myhtmltext | html2text %] -[% firstname %] [% surname %] sent you a cart from our online catalog. +
+[% FILTER html2text %] +

Hi, +

+

[% firstname %] [% surname %] sent you a cart from our online catalog.

-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. +

Please note that the attached file is a MARC bibliographic records file +which can be imported into personal bibliographic software like EndNote, +Reference Manager or ProCite.

+[% END %] ---------------------------------------------- -[% IF ( comment ) %] -[% comment %] -[% END %] -[% FOREACH BIBLIO_RESULT IN BIBLIO_RESULTS %][% BIBLIO_RESULT.title %][% IF ( BIBLIO_RESULT.subtitle ) %] [% BIBLIO_RESULT.subtitle %][% END %][% IF ( BIBLIO_RESULT.HASAUTHORS ) %] -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 ) %]; [% ELSE %][% END %][% 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 %] -In the online catalog: -[% OPACBaseURL %]/cgi-bin/koha/opac-detail.pl?biblionumber=[% BIBLIO_RESULT.biblionumber |url %] -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 %] +[% FILTER html2text %] +
---------------------------------------------- +[% IF comment %] +

[% comment %]

+
+[% END %] +
    +[% FOREACH BIBLIO_RESULT IN BIBLIO_RESULTS %] +
  1. +[% BIBLIO_RESULT.title %] +[% IF ( BIBLIO_RESULT.subtitle ) %] [% BIBLIO_RESULT.subtitle %][% END %] +
      +[% IF ( BIBLIO_RESULT.HASAUTHORS ) %] +
    • 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 ) %]; [% ELSE %][% END %][% END %][% END %][% END %]
    • +[% IF ( BIBLIO_RESULT.ISBN ) %] +
    • ISBN: [% BIBLIO_RESULT.ISBN %]
    • +[% END %] +[% IF BIBLIO_RESULT.publishercode %] +
    • +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 %] +
    • +[% END %] +[% 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 %] +
    • 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 %] +
      +
    +
  2. +[% END %] +
[% END %] diff --git a/opac/opac-sendbasket.pl b/opac/opac-sendbasket.pl index 57d2c7924b..7787217683 100755 --- a/opac/opac-sendbasket.pl +++ b/opac/opac-sendbasket.pl @@ -27,6 +27,7 @@ use Carp; use Mail::Sendmail; use MIME::QuotedPrint; use MIME::Base64; +use HTML::FormatText; use C4::Biblio; use C4::Items; use C4::Auth; @@ -120,39 +121,34 @@ if ( $email_add ) { my $body; # Analysing information and getting mail properties - if ( $template_res =~ /\n(.*)\n/s ) { + if ( $template_res =~ /\n(.*)\n?/s ) { $mail{'subject'} = $1; } else { $mail{'subject'} = "no subject"; } my $email_header = ""; - if ( $template_res =~ /
\n(.*)\n/s ) { + if ( $template_res =~ /
\n(.*)\n?/s ) { $email_header = $1; } my $email_file = "basket.txt"; - if ( $template_res =~ /\n(.*)\n/s ) { + if ( $template_res =~ /\n(.*)\n?/s ) { $email_file = $1; } - if ( $template_res =~ /\n(.*)\n/s ) { $body = encode_qp($1); } + if ( $template_res =~ /\n(.*)\n?/s ) { + $body = $1; + } my $boundary = "====" . time() . "===="; - # $mail{'content-type'} = "multipart/mixed; boundary=\"$boundary\""; - # - # $email_header = encode_qp($email_header); - # - # $boundary = "--".$boundary; - # - # # Writing mail - # $mail{body} = $mail{'content-type'} = "multipart/mixed; boundary=\"$boundary\""; my $isofile = encode_base64(encode("UTF-8", $iso2709)); $boundary = '--' . $boundary; $mail{body} = <