[Koha-cvs] CVS: koha search.pl,1.6.2.16,1.6.2.17

Steve Tonnesen tonnesen at users.sourceforge.net
Fri Nov 8 21:15:43 CET 2002


Update of /cvsroot/koha/koha
In directory usw-pr-cvs1:/tmp/cvs-serv511

Modified Files:
      Tag: rel-1-2
	search.pl 
Log Message:
Fixes bugs with characters in search strings that require escaping in the URL
(space, =, &, etc.).  Also uses the same set up as the opac search results
templates now.  ie the FORMINPUTS template variable is sent as variable and
value pairs so that the value can be url escaped by HTML::Template


Index: search.pl
===================================================================
RCS file: /cvsroot/koha/koha/search.pl,v
retrieving revision 1.6.2.16
retrieving revision 1.6.2.17
diff -C2 -r1.6.2.16 -r1.6.2.17
*** search.pl	28 Oct 2002 18:01:48 -0000	1.6.2.16
--- search.pl	8 Nov 2002 20:15:39 -0000	1.6.2.17
***************
*** 11,17 ****
  my $query=new CGI;
  my $type=$query->param('type');
- (-e "opac") && ($type='opac');
  
! my ($loggedinuser, $cookie, $sessionID) = checkauth($query, ($type eq 'opac') ? (1) : (0));
  
  
--- 11,16 ----
  my $query=new CGI;
  my $type=$query->param('type');
  
! my ($loggedinuser, $cookie, $sessionID) = checkauth($query);
  
  
***************
*** 36,87 ****
  # we assume that C4::Search will validate these values for us
  my %search;
- my $keyword=$query->param('keyword');
- $search{'keyword'}=$keyword;
  
! $search{'subject'}=$subject;
! my $author=$query->param('author');
! $search{'author'}=$author;
! $search{'authoresc'}=$author;
! #$search{'authorhtmlescaped'}=~s/ /%20/g;
! my $illustrator=$query->param('illustrator');
! $search{'illustrator'}=$illustrator;
! my $itemnumber=$query->param('itemnumber');
! $search{'itemnumber'}=$itemnumber;
! my $isbn=$query->param('isbn');
! $search{'isbn'}=$isbn;
! my $datebefore=$query->param('date-before');
! $search{'date-before'}=$datebefore;
! my $class=$query->param('class');
! $search{'class'}=$class;
! my $dewey=$query->param('dewey');
! $search{'dewey'}=$dewey;
! my $branch=$query->param('branch');
! $search{'branch'}=$branch;
! my $title=$query->param('title');
! $search{'title'}=$title;
! my $abstract=$query->param('abstract');
! $search{'abstract'}=$abstract;
! my $publisher=$query->param('publisher');
! $search{'publisher'}=$publisher;
! 
! my $ttype=$query->param('ttype');
! $search{'ttype'}=$ttype;
  
  my $forminputs;
! ($keyword) && (push @$forminputs, { line => "keyword=$keyword"});
! ($subject) && (push @$forminputs, { line => "subject=$subject"});
! ($author) && (push @$forminputs, { line => "author=$author"});
! ($illustrator) && (push @$forminputs, { line => "illustrator=$illustrator"});
! ($itemnumber) && (push @$forminputs, { line => "itemnumber=$itemnumber"});
! ($isbn) && (push @$forminputs, { line => "isbn=$isbn"});
! ($datebefore) && (push @$forminputs, { line => "date-before=$datebefore"});
! ($class) && (push @$forminputs, { line => "class=$class"});
! ($dewey) && (push @$forminputs, { line => "dewey=$dewey"});
! ($branch) && (push @$forminputs, { line => "branch=$branch"});
! ($title) && (push @$forminputs, { line => "title=$title"});
! ($ttype) && (push @$forminputs, { line => "ttype=$ttype"});
! ($abstract) && (push @$forminputs, { line => "abstract=$abstract"});
! ($publisher) && (push @$forminputs, { line => "publisher=$publisher"});
  ($forminputs) || (@$forminputs=());
  $template->param(FORMINPUTS => $forminputs);
  # whats this for?
--- 35,60 ----
  # we assume that C4::Search will validate these values for us
  my %search;
  
! my @fields = ('keyword', 'subject', 'author', 'illustrator', 'itemnumber', 'isbn', 'date-before', 'date-after', 'class', 'dewey', 'class', 'branch', 'title', 'abstract', 'publisher');
  
  my $forminputs;
! my $searchdesc = '';
! foreach my $field (@fields) {
!     $search{$field} = $query->param($field);
!     if ($search{$field}) {
! 	push @$forminputs, {field => $field, value => $search{$field}};
! 	$searchdesc .= "$field = $search{$field}, ";
!     }
! }
! $search{'ttype'} = $query->param('ttype');
! push @$forminputs, {field => 'ttype', value => $search{'ttype'}};
! 
! if (my $subjectitems=$query->param('subjectitems')){
!     $search{'subject'} = $subjectitems;
!     $searchdesc.="subject = $subjectitems, ";
! }
! 
  ($forminputs) || (@$forminputs=());
+ 
  $template->param(FORMINPUTS => $forminputs);
  # whats this for?
***************
*** 107,147 ****
      $result->{'authorhtmlescaped'}=~s/ /%20/g;
      ($result->{'copyrightdate'}==0) && ($result->{'copyrightdate'}='');
-     ($type eq 'opac') ? ($result->{'opac'}=1) : ($result->{'opac'}=0);
      push (@$resultsarray, $result);
  }
  ($resultsarray) || (@$resultsarray=());
  my $search="num=20";
- my $searchdesc='';
- if ($keyword){
-     $search=$search."&keyword=$keyword";
-     $searchdesc.="keyword $keyword, ";
- }
- if (my $subjectitems=$query->param('subjectitems')){
-     $search=$search."&subjectitems=$subjectitems";
-     $searchdesc.="subject $subjectitems, ";
- }
- if ($subject){
-     $search=$search."&subject=$subject";
-     $searchdesc.="subject $subject, ";
- }
- if ($author){
-     $search=$search."&author=$author";
-     $searchdesc.="author $author, ";
- }
- if ($class){
-     $search=$search."&class=$class";
-     $searchdesc.="class $class, ";
- }
- if ($title){
-     $search=$search."&title=$title";
-     $searchdesc.="title $title, ";
- }
- if ($dewey){
-     $search=$search."&dewey=$dewey";
-     $searchdesc.="dewey $dewey, ";
- }
- $search.="&ttype=$ttype";
  
- $search=~ s/ /%20/g;
  $template->param(startfrom => $startfrom+1);
  ($startfrom+$num<=$count) ? ($template->param(endat => $startfrom+$num)) : ($template->param(endat => $count));
--- 80,88 ----
***************
*** 156,160 ****
  $template->param(displaynext => $displaynext);
  $template->param(displayprev => $displayprev);
- ($type eq 'opac') ? ($template->param(opac => 1)) : ($template->param(opac => 0));
  $template->param(prevstartfrom => $prevstartfrom);
  $template->param(search => $search);
--- 97,100 ----
***************
*** 169,182 ****
      for (my $i=1; $i<$count/10+1; $i++) {
  	if ($i<16) {
- 	    ($title) && (push @$forminputs, { line => "title=$title"});
  	    my $highlight=0;
  	    ($startfrom==($i-1)*10) && ($highlight=1);
! 	    my $formelements='';
! 	    foreach (@$forminputs) {
! 		my $line=$_->{line};
! 		$formelements.="$line&";
! 	    }
! 	    $formelements=~s/ /+/g;
! 	    push @$numbers, { number => $i, highlight => $highlight , FORMELEMENTS => $formelements, FORMINPUTS => $forminputs, startfrom => ($i-1)*10, opac => (($type eq 'opac') ? (1) : (0))};
  	}
      }
--- 109,115 ----
      for (my $i=1; $i<$count/10+1; $i++) {
  	if ($i<16) {
  	    my $highlight=0;
  	    ($startfrom==($i-1)*10) && ($highlight=1);
! 	    push @$numbers, { number => $i, highlight => $highlight , FORMINPUTS => $forminputs, startfrom => ($i-1)*10};
  	}
      }





More information about the Koha-cvs mailing list