[Koha-patches] [PATCH 25/54] MT4316 AdvancedSearchContent new feature (OPACAdvancedSearchContent)

paul.poulain at biblibre.com paul.poulain at biblibre.com
Thu Dec 16 11:54:19 CET 2010


From: Paul Poulain <paul.poulain at biblibre.com>

if those sysprefs are filled, the index list will be replaced by the content of the syspref

That let the library define his own index list, with more or less lines on the list
---
 .../prog/en/modules/catalogue/advsearch.tmpl       |    8 ++----
 .../opac-tmpl/prog/en/modules/opac-advsearch.tmpl  |    8 +++++-
 opac/opac-search.pl                                |   23 +++++++++----------
 3 files changed, 20 insertions(+), 19 deletions(-)

diff --git a/koha-tmpl/intranet-tmpl/prog/en/modules/catalogue/advsearch.tmpl b/koha-tmpl/intranet-tmpl/prog/en/modules/catalogue/advsearch.tmpl
index aeed108..dcd2d9b 100644
--- a/koha-tmpl/intranet-tmpl/prog/en/modules/catalogue/advsearch.tmpl
+++ b/koha-tmpl/intranet-tmpl/prog/en/modules/catalogue/advsearch.tmpl
@@ -60,21 +60,21 @@
         <!-- TMPL_IF NAME="search_boxes_label" --><div style="text-indent: 4.5em;"><!-- TMPL_ELSE --><div><!-- /TMPL_IF -->
 			<!-- TMPL_IF NAME="expanded_options" -->
             <!-- TMPL_IF NAME="boolean" -->
-                <select name="op">
+                <select class="advsearchoperator" name="op">
                     <option value="and" selected="selected">and</option>
                     <option value="or">or</option>
                     <option value="not">not</option>
                 </select>
             <!-- /TMPL_IF --> 
 			<!-- /TMPL_IF -->
-			<!-- TMPL_INCLUDE NAME="search_indexes.inc" -->
+			 <!-- TMPL_IF NAME="AdvancedSearchContent" --><!--TMPL_VAR Name="AdvancedSearchContent"--><!-- TMPL_ELSE --><!-- TMPL_INCLUDE NAME="search_indexes.inc" --><!-- /TMPL_IF -->
 			<input type="text" size="30" name="q" title="Enter search terms" value="" />
             <!-- TMPL_IF NAME="expanded_options" -->
                 <!-- TMPL_IF NAME="add_field" -->
                     <a href="JavaScript:add_field();" id="ButtonPlus" title="Add another field">[+]</a>
 				<!-- /TMPL_IF -->
             	<!-- TMPL_IF NAME="scan_index" -->
-                	<label for="scan">Scan Indexes</label><input type="checkbox" name="scan" id="scan" value="1" />
+                	<label style="float:none" for="scan">Scan Indexes</label><input type="checkbox" name="scan" id="scan" value="1" />
             	<!-- /TMPL_IF -->
             <!-- /TMPL_IF -->
 		</div>
@@ -102,7 +102,6 @@
 <!-- /ITEMTYPE LIMITS -->
     </div>
 
-<!-- TMPL_IF NAME="expanded_options" -->
 <div id="basiclimits" class="container">
 <!-- BASIC LIMITS -->
  <fieldset>
@@ -132,7 +131,6 @@
 </fieldset>
 <!-- /BASIC LIMITS -->
 </div>
-<!-- /TMPL_IF -->
 
 
 <!-- TMPL_IF NAME="UNIMARC" -->
diff --git a/koha-tmpl/opac-tmpl/prog/en/modules/opac-advsearch.tmpl b/koha-tmpl/opac-tmpl/prog/en/modules/opac-advsearch.tmpl
index ec77493..ec4d617 100644
--- a/koha-tmpl/opac-tmpl/prog/en/modules/opac-advsearch.tmpl
+++ b/koha-tmpl/opac-tmpl/prog/en/modules/opac-advsearch.tmpl
@@ -50,7 +50,7 @@
         <p>
         <!-- TMPL_IF NAME="expanded_options" -->
             <!-- TMPL_IF NAME="boolean" -->
-            <select name="op">
+            <select class="advsearchoperator" name="op">
                 <option value="and" selected="selected">and</option>
                 <option value="or">or</option>
                 <option value="not">not</option>
@@ -58,7 +58,10 @@
             <!-- /TMPL_IF -->
         <!-- /TMPL_IF -->
         <!-- TMPL_IF NAME="expanded_options" --><!-- TMPL_VAR NAME="left_content" --><!-- /TMPL_IF --> 
-        <select name="idx">
+<!-- TMPL_IF NAME="OpacAdvancedSearchContent" -->
+    <!-- TMPL_VAR NAME="OpacAdvancedSearchContent" -->
+<!-- TMPL_ELSE -->
+        <select class="advsearch" name="idx">
             <option value="kw">Keyword</option>
             <option value="su,wrdl">Subject</option>
 <!-- TMPL_IF NAME="expanded_options" -->
@@ -95,6 +98,7 @@
             <option value="nb">ISBN</option>
 <!-- /TMPL_IF -->
         </select>
+<!-- /TMPL_IF -->
         <input type="text" size="30" name="q" title="Enter search terms" value="" />
 <!-- TMPL_IF NAME="expanded_options" -->
         <!--   <!-- TMPL_IF NAME="scan_index" --><input type="checkbox" name="scan" id="scan" value="1" /> Scan Indexes<!-- /TMPL_IF --> -->
diff --git a/opac/opac-search.pl b/opac/opac-search.pl
index 88f3a2f..23da608 100755
--- a/opac/opac-search.pl
+++ b/opac/opac-search.pl
@@ -246,6 +246,10 @@ if ( $template_type && $template_type eq 'advsearch' ) {
 	if ( C4::Context->preference("expandedSearchOption") == 1 ) {
 		$template->param( expanded_options => C4::Context->preference("expandedSearchOption") );
 	}
+    if ( C4::Context->preference("OpacAdvancedSearchContent") ne '' ) {
+        $template->param( OpacAdvancedSearchContent => C4::Context->preference("OpacAdvancedSearchContent") );
+    }
+
 	# but let the user override it
 	if (defined $cgi->param('expanded_options')) {
    	    if ( ($cgi->param('expanded_options') == 0) || ($cgi->param('expanded_options') == 1 ) ) {
@@ -273,7 +277,7 @@ my @sort_by;
 my $default_sort_by = C4::Context->preference('OPACdefaultSortField')."_".C4::Context->preference('OPACdefaultSortOrder') 
     if (C4::Context->preference('OPACdefaultSortField') && C4::Context->preference('OPACdefaultSortOrder'));
 
- at sort_by = split("\0",$params->{'sort_by'}) if $params->{'sort_by'};
+ at sort_by = $cgi->param('sort_by');
 $sort_by[0] = $default_sort_by if !$sort_by[0] && defined($default_sort_by);
 foreach my $sort (@sort_by) {
     $template->param($sort => 1);   # FIXME: security hole.  can set any TMPL_VAR here
@@ -281,8 +285,7 @@ foreach my $sort (@sort_by) {
 $template->param('sort_by' => $sort_by[0]);
 
 # Use the servers defined, or just search our local catalog(default)
-my @servers;
- at servers = split("\0",$params->{'server'}) if $params->{'server'};
+my @servers = $cgi->param('server');
 unless (@servers) {
     #FIXME: this should be handled using Context.pm
     @servers = ("biblioserver");
@@ -291,21 +294,18 @@ unless (@servers) {
 
 # operators include boolean and proximity operators and are used
 # to evaluate multiple operands
-my @operators;
- at operators = split("\0",$params->{'op'}) if $params->{'op'};
+my @operators = $cgi->param('op');
 
 # indexes are query qualifiers, like 'title', 'author', etc. They
-# can be single or multiple parameters separated by comma: kw,right-Truncation 
-my @indexes;
- at indexes = split("\0",$params->{'idx'}) if $params->{'idx'};
+# can be single or multiple parameters separated by comma: kw,right-Truncation
+my @indexes = $cgi->param('idx');
 
 # if a simple index (only one)  display the index used in the top search box
 if ($indexes[0] && !$indexes[1]) {
     $template->param("ms_".$indexes[0] => 1);
 }
 # an operand can be a single term, a phrase, or a complete ccl query
-my @operands;
- at operands = split("\0",$params->{'q'}) if $params->{'q'};
+my @operands = $cgi->param('q');
 
 # if a simple search, display the value in the search box
 if ($operands[0] && !$operands[1]) {
@@ -313,8 +313,7 @@ if ($operands[0] && !$operands[1]) {
 }
 
 # limits are use to limit to results to a pre-defined category such as branch or language
-my @limits;
- at limits = split("\0",$params->{'limit'}) if $params->{'limit'};
+my @limits = $cgi->param('limit');
 
 if($params->{'multibranchlimit'}) {
 push @limits, join(" or ", map { "branch: $_ "}  @{GetBranchesInCategory($params->{'multibranchlimit'})}) ;
-- 
1.7.1



More information about the Koha-patches mailing list