[Koha-patches] [PATCH] Bug 15434: search-xlate.inc - search criteria definition table

Srdjan srdjan at catalyst.net.nz
Tue Dec 29 07:58:58 CET 2015


Collected search criteria and limit labels in search-xlate.inc, so it
can be used gor both making search criteria selects and displaying back
selections on the result screen.
---
 .../opac-tmpl/bootstrap/en/includes/masthead.inc   | 29 ++++++-----
 .../bootstrap/en/includes/search-xlate.inc         | 43 ++++++++++++++++
 .../bootstrap/en/modules/opac-advsearch.tt         | 59 +++++++++++-----------
 .../opac-tmpl/bootstrap/en/modules/opac-results.tt | 48 ++++++++++++++----
 4 files changed, 125 insertions(+), 54 deletions(-)
 create mode 100644 koha-tmpl/opac-tmpl/bootstrap/en/includes/search-xlate.inc

diff --git a/koha-tmpl/opac-tmpl/bootstrap/en/includes/masthead.inc b/koha-tmpl/opac-tmpl/bootstrap/en/includes/masthead.inc
index 20ff3f8..3e7017e 100644
--- a/koha-tmpl/opac-tmpl/bootstrap/en/includes/masthead.inc
+++ b/koha-tmpl/opac-tmpl/bootstrap/en/includes/masthead.inc
@@ -1,4 +1,5 @@
 [% USE Koha %]
+[% PROCESS 'search-xlate.inc' %]
 [% SET OpacLangSelectorMode = Koha.Preference('OpacLangSelectorMode') %]
 <div id="wrap">
     <div id="header-region" class="noprint">
@@ -168,41 +169,41 @@
                                     <option value="">Library catalog</option>
                                 [% END # /ms_kw %]
                                 [% IF ( ms_ti ) %]
-                                    <option selected="selected" value="ti">Title</option>
+                                    <option selected="selected" value="ti">[% search_xlate.item("ti") %]</option>
                                 [% ELSE %]
-                                    <option value="ti">Title</option>
+                                    <option value="ti">[% search_xlate.item("ti") %]</option>
                                 [% END # /ms_ti %]
                                 [% IF ( ms_au ) %]
-                                    <option selected="selected" value="au">Author</option>
+                                    <option selected="selected" value="au">[% search_xlate.item("au") %]</option>
                                 [% ELSE %]
-                                    <option value="au">Author</option>
+                                    <option value="au">[% search_xlate.item("au") %]</option>
                                 [% END # /ms_au%]
                                 [% IF ( ms_su ) %]
-                                    <option selected="selected" value="su">Subject</option>
+                                    <option selected="selected" value="su">[% search_xlate.item("su") %]</option>
                                 [% ELSE %]
-                                    <option value="su">Subject</option>
+                                    <option value="su">[% search_xlate.item("su") %]</option>
                                 [% END # /ms_su %]
                                 [% IF ( ms_nb ) %]
-                                    <option selected="selected" value="nb">ISBN</option>
+                                    <option selected="selected" value="nb">[% search_xlate.item("nb") %]</option>
                                 [% ELSE %]
-                                    <option value="nb">ISBN</option>
+                                    <option value="nb">[% search_xlate.item("nb") %]</option>
                                 [% END # /ms_nb%]
                                 [% IF ( ms_se ) %]
-                                    <option selected="selected" value="se">Series</option>
+                                    <option selected="selected" value="se">[% search_xlate.item("se") %]</option>
                                 [% ELSE %]
-                                    <option value="se">Series</option>
+                                    <option value="se">[% search_xlate.item("se") %]</option>
                                 [% END # /ms_se %]
                                 [% IF ( numbersphr ) %]
                                     [% IF ( ms_callnum ) %]
-                                            <option selected="selected" value="callnum,phr">Call number</option>
+                                            <option selected="selected" value="callnum,phr">[% search_xlate.item("callnum") %]</option>
                                     [% ELSE %]
-                                        <option value="callnum,phr">Call number</option>
+                                        <option value="callnum,phr">[% search_xlate.item("callnum") %]</option>
                                     [% END #/ms_callnum %]
                                 [% ELSE %]
                                     [% IF ( ms_callnum ) %]
-                                        <option selected="selected" value="callnum">Call number</option>
+                                        <option selected="selected" value="callnum">[% search_xlate.item("callnum") %]</option>
                                     [% ELSE %]
-                                        <option value="callnum">Call number</option>
+                                        <option value="callnum">[% search_xlate.item("callnum") %]</option>
                                     [% END # /ms_callnum %]
                                 [% END # /numbersphr %]
                                 </select>
diff --git a/koha-tmpl/opac-tmpl/bootstrap/en/includes/search-xlate.inc b/koha-tmpl/opac-tmpl/bootstrap/en/includes/search-xlate.inc
new file mode 100644
index 0000000..db0b941
--- /dev/null
+++ b/koha-tmpl/opac-tmpl/bootstrap/en/includes/search-xlate.inc
@@ -0,0 +1,43 @@
+[%
+    search_xlate = {
+        "kw" => "Keyword"
+        "su" => "Subject"
+        "su-br" => "Subject and broader terms"
+        "su-na" => "Subject and narrower terms"
+        "su-rl" => "Subject and related terms"
+        "ti" => "Title"
+        "se" => "Series"
+        "se,wrdl" => "Series title"
+        "callnum" => "Call Number"
+        "location" => "Shelving Location"
+        "au" => "Author"
+        "cpn" => "Corporate name"
+        "cfn" => "Conference name"
+        "pn" => "Personal name"
+        "nt" => "Notes/Comments"
+        "curriculum" => "Curriculum"
+        "pb" => "Publisher"
+        "pl" => "Publisher Location"
+        "sn" => "Standard Number"
+        "nb" => "ISBN"
+        "ns" => "ISSN"
+        "bc" => "Barcode"
+    }
+    limit_xlate = {
+        "mc-itype" => "Type"
+        "ln" => "Language"
+        "branch" => "Branch"
+        "aud" => "Audience"
+        "l-format" => "Format"
+        "ctype" => "Content Type"
+        "yr" => "Year"
+    }
+    qualifier_xlate = {
+        "wrdl" => ""
+        "phr" => "phrase"
+        "st-numeric" => ""
+        "ge=" => ">="
+        "le=" => "<="
+        "rtrn" => ""
+    }
+%]
diff --git a/koha-tmpl/opac-tmpl/bootstrap/en/modules/opac-advsearch.tt b/koha-tmpl/opac-tmpl/bootstrap/en/modules/opac-advsearch.tt
index d1ce16a..2c35c3a 100644
--- a/koha-tmpl/opac-tmpl/bootstrap/en/modules/opac-advsearch.tt
+++ b/koha-tmpl/opac-tmpl/bootstrap/en/modules/opac-advsearch.tt
@@ -1,4 +1,5 @@
 [% USE Koha %]
+[% PROCESS 'search-xlate.inc' %]
 [% INCLUDE 'doc-head-open.inc' %]
 <title>[% IF ( LibraryNameTitle ) %][% LibraryNameTitle %][% ELSE %]Koha online[% END %] catalog › Advanced search</title>
 [% INCLUDE 'doc-head-close.inc' %]
@@ -41,54 +42,54 @@
                                     [% END %]
                                     [% IF ( expanded_options ) %][% left_content %][% END %]
                                     <select name="idx" id="search-field_[% loop.index %]">
-                                        <option value="kw">Keyword</option>
-                                        <option value="su,wrdl">Subject</option>
+                                        <option value="kw">[% search_xlate.item("kw") %]</option>
+                                        <option value="su,wrdl">[% search_xlate.item("su") %]</option>
                                         [% IF ( expanded_options ) %]
-                                            <option value="su,phr">     Subject phrase</option>
-                                            <option value="su-br">     Subject and broader terms</option>
-                                            <option value="su-na">     Subject and narrower terms</option>
-                                            <option value="su-rl">     Subject and related terms</option>
+                                            <option value="su,phr">     [% search_xlate.item("su") %] [% qualifier_xlate.item("phr") %]</option>
+                                            <option value="su-br">     [% search_xlate.item("su-br") %]</option>
+                                            <option value="su-na">     [% search_xlate.item("su-na") %]</option>
+                                            <option value="su-rl">     [% search_xlate.item("su-rl") %]</option>
                                         [% END %]
-                                        <option value="ti">Title</option>
+                                        <option value="ti">[% search_xlate.item("ti") %]</option>
                                         [% IF ( expanded_options ) %]
-                                            <option value="ti,phr">     Title phrase</option>
-                                            <option value="se,wrdl">Series title</option>
+                                            <option value="ti,phr">     [% search_xlate.item("ti") %] [% qualifier_xlate.item("phr") %]</option>
+                                            <option value="se,wrdl">[% search_xlate.item("se,wrdl") %]</option>
                                             [% IF ( numbersphr) %]
-                                                <option value="callnum,phr">Call number</option>
+                                                <option value="callnum,phr">[% search_xlate.item("callnum") %]</option>
                                             [% ELSE %]
-                                                <option value="callnum">Call number</option>
+                                                <option value="callnum">[% search_xlate.item("callnum") %]</option>
                                             [% END %]
-                                            <option value="location">Shelving location</option>
+                                            <option value="location">[% search_xlate.item("location") %]</option>
                                         [% END %]
-                                        <option value="au,wrdl">Author</option>
+                                        <option value="au,wrdl">[% search_xlate.item("au") %]</option>
                                         [% IF ( expanded_options ) %]
-                                            <option value="au,phr">     Author phrase</option>
-                                            <option value="cpn,wrdl">     Corporate name</option>
-                                            <option value="cfn,wrdl">     Conference name</option>
-                                            <option value="cfn,phr">     Conference name phrase</option>
-                                            <option value="pn,wrdl">     Personal name</option>
-                                            <option value="pn,phr">     Personal name phrase</option>
+                                            <option value="au,phr">     [% search_xlate.item("au") %] [% qualifier_xlate.item("phr") %]</option>
+                                            <option value="cpn,wrdl">     [% search_xlate.item("cpn") %]</option>
+                                            <option value="cfn,wrdl">     [% search_xlate.item("cfn") %]</option>
+                                            <option value="cfn,phr">     [% search_xlate.item("cfn") %] [% qualifier_xlate.item("phr") %]</option>
+                                            <option value="pn,wrdl">     [% search_xlate.item("pn") %]</option>
+                                            <option value="pn,phr">     [% search_xlate.item("pn") %] [% qualifier_xlate.item("phr") %]</option>
                                         [% END %]
                                         [% IF ( expanded_options ) %]
-                                            <option value="nt">Notes/Comments</option>
+                                            <option value="nt">[% search_xlate.item("nt") %]</option>
                                             [% IF (marcflavour != 'UNIMARC') %]
-                                                <option value="curriculum">Curriculum</option>
+                                                <option value="curriculum">[% search_xlate.item("curriculum") %]</option>
                                             [% END %]
                                         [% END %]
-                                        <option value="pb,wrdl">Publisher</option>
-                                        <option value="pl,wrdl">Publisher location</option>
+                                        <option value="pb,wrdl">[% search_xlate.item("pb") %]</option>
+                                        <option value="pl,wrdl">[% search_xlate.item("pl") %]</option>
                                         [% IF ( expanded_options ) %]
                                             [% IF ( numbersphr) %]
-                                                <option value="sn,phr">Standard number</option>
+                                                <option value="sn,phr">[% search_xlate.item("sn") %]</option>
                                             [% ELSE %]
-                                                <option value="sn">Standard number</option>
+                                                <option value="sn">[% search_xlate.item("sn") %]</option>
                                             [% END %]
-                                            <option value="nb">     ISBN</option>
-                                            <option value="ns">     ISSN</option>
+                                            <option value="nb">     [% search_xlate.item("nb") %]</option>
+                                            <option value="ns">     [% search_xlate.item("ns") %]</option>
                                         [% ELSE %]
-                                            <option value="nb">ISBN</option>
+                                            <option value="nb">[% search_xlate.item("nb") %]</option>
                                         [% END %]
-                                        <option value="bc">Barcode</option>
+                                        <option value="bc">[% search_xlate.item("bc") %]</option>
                                     </select>
                                     <input type="text" size="30" name="q" title="Enter search terms" value="" />
                                     [% IF ( expanded_options ) %]
diff --git a/koha-tmpl/opac-tmpl/bootstrap/en/modules/opac-results.tt b/koha-tmpl/opac-tmpl/bootstrap/en/modules/opac-results.tt
index 8a0ec89..4ee19ca 100644
--- a/koha-tmpl/opac-tmpl/bootstrap/en/modules/opac-results.tt
+++ b/koha-tmpl/opac-tmpl/bootstrap/en/modules/opac-results.tt
@@ -1,14 +1,44 @@
 [% USE Koha %]
+[% PROCESS 'search-xlate.inc' %]
 [% SET TagsShowEnabled = ( ( Koha.Preference( 'TagsEnabled' ) == 1 ) && TagsShowOnList ) %]
 [% SET TagsInputEnabled = ( ( Koha.Preference( 'opacuserlogin' ) == 1 ) && ( Koha.Preference( 'TagsEnabled' ) == 1 ) && TagsInputOnList ) %]
 
+[%
+IF searchdesc;
+    search_result_str = "Results of search";
+    IF query_desc;
+        search_result_str = search_result_str _ " for '";
+        query_desc_xlate = query_desc;
+        FOREACH pair IN search_xlate.pairs;
+            query_desc_xlate = query_desc_xlate.replace(pair.key _ ':', pair.value _ ':');
+            query_desc_xlate = query_desc_xlate.replace(pair.key _ ',wrdl:', pair.value _ ':');
+            query_desc_xlate = query_desc_xlate.replace(pair.key _ ',phr:', pair.value _ ' ' _ qualifier_xlate.phr _ ':');
+        END;
+        search_result_str = search_result_str _ query_desc_xlate _ "'";
+    END;
+    IF limit_desc;
+        search_result_str = search_result_str _ " with limit(s): '";
+        limit_desc_xlate = limit_desc;
+        FOREACH pair IN limit_xlate.pairs;
+            limit_desc_xlate = limit_desc_xlate.replace(pair.key _ ':', pair.value _ ':');
+            limit_desc_xlate = limit_desc_xlate.replace(pair.key _ ',', pair.value _ ',');
+        END;
+        FOREACH pair IN qualifier_xlate.pairs;
+            IF pair.value;
+                replacement_str = ' ' _ pair.value;
+            ELSE;
+                replacement_str = '';
+            END;
+            limit_desc_xlate = limit_desc_xlate.replace(',' _ pair.key, replacement_str);
+        END;
+        search_result_str = search_result_str _ limit_desc_xlate _ "'";
+    END;
+ELSE;
+    search_result_str = "You did not specify any search criteria.";
+END;
+%]
 [% INCLUDE 'doc-head-open.inc' %]
-<title>[% IF ( LibraryNameTitle ) %][% LibraryNameTitle %][% ELSE %]Koha online[% END %] catalog ›
-[% IF ( searchdesc ) %]
-    Results of search [% IF ( query_desc ) %]for '[% query_desc | html%]'[% END %][% IF ( limit_desc ) %] with limit(s): '[% limit_desc | html %]'[% END %]
-[% ELSE %]
-    You did not specify any search criteria.
-[% END %]</title>
+<title>[% IF ( LibraryNameTitle ) %][% LibraryNameTitle %][% ELSE %]Koha online[% END %] catalog › [% search_result_str | html %]</title>
 [% INCLUDE 'doc-head-close.inc' %]
 [% IF ( OpacStarRatings == 'all' || Koha.Preference('Babeltheque') ) %]
     [% BLOCK cssinclude %]
@@ -26,11 +56,7 @@
         <ul class="breadcrumb">
             <li><a href="/cgi-bin/koha/opac-main.pl">Home</a> <span class="divider">›</span></li>
             <li>
-                [% IF ( searchdesc ) %]
-                    <a href="#">Results of search [% IF ( query_desc ) %]for '[% query_desc | html%]'[% END %][% IF ( limit_desc ) %] with limit(s): '[% limit_desc | html %]'[% END %]</a>
-                [% ELSE %]
-                    <a href="#">You did not specify any search criteria</a>
-                [% END %]
+                <a href="#">[% search_result_str | html %]</a>
             </li>
         </ul>
 
-- 
1.9.1


More information about the Koha-patches mailing list