[Koha-cvs] CVS: koha/C4 Search.pm,1.54,1.55

Ambrose Li acli at users.sourceforge.net
Mon Feb 3 03:15:45 CET 2003


Update of /cvsroot/koha/koha/C4
In directory sc8-pr-cvs1:/tmp/cvs-serv19703/C4

Modified Files:
	Search.pm 
Log Message:
Minor code cleanup
(Implemented some simple FIXME's in C4/Search.pm)


Index: Search.pm
===================================================================
RCS file: /cvsroot/koha/koha/C4/Search.pm,v
retrieving revision 1.54
retrieving revision 1.55
diff -C2 -r1.54 -r1.55
*** Search.pm	2 Feb 2003 08:47:01 -0000	1.54
--- Search.pm	3 Feb 2003 02:15:43 -0000	1.55
***************
*** 201,219 ****
  	my ($count, at results);
  	#  print STDERR "Doing a search \n";
- 	# FIXME - Use "elsif" to avoid this sort of deep nesting
  	if ($search->{'itemnumber'} ne '' || $search->{'isbn'} ne ''){
  		print STDERR "Doing a precise search\n";
  		($count, at results)=CatSearch($env,'precise',$search,$num,$offset);
  	} else {
! 		if ($search->{'subject'} ne ''){
! 			($count, at results)=CatSearch($env,'subject',$search,$num,$offset);
! 		} else {
! 			if ($search->{'keyword'} ne ''){
! 				($count, at results)=&KeywordSearch($env,'keyword',$search,$num,$offset);
! 			} else {
! 				($count, at results)=CatSearch($env,'loose',$search,$num,$offset);
  
- 			}
- 		}
  	}
  	if ($env->{itemcount} eq '1') {
--- 201,214 ----
  	my ($count, at results);
  	#  print STDERR "Doing a search \n";
  	if ($search->{'itemnumber'} ne '' || $search->{'isbn'} ne ''){
  		print STDERR "Doing a precise search\n";
  		($count, at results)=CatSearch($env,'precise',$search,$num,$offset);
+ 	} elsif ($search->{'subject'} ne ''){
+ 		($count, at results)=CatSearch($env,'subject',$search,$num,$offset);
+ 	} elsif ($search->{'keyword'} ne ''){
+ 		($count, at results)=&KeywordSearch($env,'keyword',$search,$num,$offset);
  	} else {
! 		($count, at results)=CatSearch($env,'loose',$search,$num,$offset);
  
  	}
  	if ($env->{itemcount} eq '1') {
***************
*** 864,873 ****
  	my $query = '';
  	my @results;
! 	# FIXME - Why not just
! 	#	$search->{'title'} = quotemeta($search->{'title'})
! 	# to escape all questionable characters, not just single-quotes?
! 	$search->{'title'}=~ s/'/\\'/g;
! 	$search->{'author'}=~ s/'/\\'/g;
! 	$search->{'illustrator'}=~ s/'/\\'/g;
  	my $title = lc($search->{'title'});
  	if ($type eq 'loose') {
--- 859,865 ----
  	my $query = '';
  	my @results;
! 	for my $field ('title', 'author', 'illustrator') {
! 	    $search->{$field} = quotemeta($search->{$field});
! 	}
  	my $title = lc($search->{'title'});
  	if ($type eq 'loose') {
***************
*** 1029,1035 ****
  		# "Fantastic fiction", etc.
  
! 		# FIXME - This can be rewritten as
! 		#	if (lc($search->{"subject"}) eq "nz") {
! 		if ($search->{'subject'} eq 'NZ' || $search->{'subject'} eq 'nz'){
  			$query.= " or (subject like 'NEW ZEALAND %' or subject like '% NEW ZEALAND %'
  			or subject like '% NEW ZEALAND' or subject like '%(NEW ZEALAND)%' ) ";
--- 1021,1025 ----
  		# "Fantastic fiction", etc.
  
! 		if (lc($search->{'subject'}) eq 'nz'){
  			$query.= " or (subject like 'NEW ZEALAND %' or subject like '% NEW ZEALAND %'
  			or subject like '% NEW ZEALAND' or subject like '%(NEW ZEALAND)%' ) ";





More information about the Koha-cvs mailing list