Bug 9218: fix intranet cart email for non english templates
authorJonathan Druart <jonathan.druart@biblibre.com>
Tue, 8 Oct 2013 08:52:28 +0000 (10:52 +0200)
committerGalen Charlton <gmc@esilibrary.com>
Thu, 31 Oct 2013 23:53:25 +0000 (23:53 +0000)
This patch adapts the method from OPAC to the staff interface (cf bug 8062).

Test plan:
- add somes notices to the cart
- try to send the cart by email
- the email should be the same as before
- translate templates and retry with another language. Before this patch,
  the email was empty. With this patch, it contains the list of records
  and items.

Signed-off-by: Paola Rossi <paola.rossi@cineca.it>
Signed-off-by: Katrin Fischer <katrin.fischer@bsz-bw.de>
Passes all tests and QA script.
Fixes quite a bad translation problem, tested with German templates
and umlauts in the message and records.

Signed-off-by: Galen Charlton <gmc@esilibrary.com>
basket/sendbasket.pl
koha-tmpl/intranet-tmpl/prog/en/modules/basket/sendbasket.tt

index 66f73fa..3f57de2 100755 (executable)
@@ -112,22 +112,28 @@ if ( $email_add ) {
     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 ) {
+    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 = encode_qp($1);
+        $body =~ s|\n?(.*)\n?|$1|;
+    }
 
     my $boundary = "====" . time() . "====";
 
index ca8f06d..09ce7dd 100644 (file)
 Your cart
 <END_SUBJECT>
 
+[% USE HtmlToText %]
+[% myhtml FILTER html2text(leftmargin => 0, rightmargin => 0) %]
+[% myhtmltext | html2text %]
+
 <HEADER>
-Hi,
 
-Here is your cart, sent from our online catalog.
+[% FILTER html2text %]
+    <p>Hi,</p>
+
+    <p>Here is your cart, sent from our online catalog.</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>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.</p>
+    <hr/>
+[% END %]
 <END_HEADER>
 
 <MESSAGE>
----------------------------------------------
-[% 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 %]
+        <p>[% comment %]</p>
+        <hr/>
+    [% END %]
+    <ol>
+    [% FOREACH BIBLIO_RESULT IN BIBLIO_RESULTS %]
+        <li>
+            <span>
+                [% BIBLIO_RESULT.title %]
+                [% IF ( BIBLIO_RESULT.subtitle ) %] [% BIBLIO_RESULT.subtitle %][% 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 ) %]
+            <span>
+                ISBN: [% BIBLIO_RESULT.ISBN %]
+            </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 |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>