[Koha-cvs] koha C4/Search.pm ./search-test.pl koha-tmpl/op...

Chris Cormack chris at katipo.co.nz
Thu Feb 16 21:51:07 CET 2006


CVSROOT:	/sources/koha
Module name:	koha
Branch: 	
Changes by:	Chris Cormack <rangi at savannah.gnu.org>	06/02/16 20:51:07

Modified files:
	C4             : Search.pm 
Added files:
	.              : search-test.pl 
	koha-tmpl/opac-tmpl/npl/en: search-test.tmpl 

Log message:
	Little test set up that lets you type cql in which is passed to zebra
	install search-test.pl on your opac (or the intranet, if intranet youll need to put the tmpl file in the intranet too)
	
	NOT FOR PRODUCTION, purely for testing

CVSWeb URLs:
http://cvs.savannah.gnu.org/viewcvs/koha/koha/C4/Search.pm.diff?tr1=1.113&tr2=1.114&r1=text&r2=text
http://cvs.savannah.gnu.org/viewcvs/koha/koha/search-test.pl?rev=1.1
http://cvs.savannah.gnu.org/viewcvs/koha/koha/koha-tmpl/opac-tmpl/npl/en/search-test.tmpl?rev=1.1

Patches:
Index: koha/C4/Search.pm
diff -u koha/C4/Search.pm:1.113 koha/C4/Search.pm:1.114
--- koha/C4/Search.pm:1.113	Tue Feb 14 22:56:41 2006
+++ koha/C4/Search.pm	Thu Feb 16 20:51:07 2006
@@ -30,8 +30,9 @@
 use vars qw($VERSION @ISA @EXPORT @EXPORT_OK %EXPORT_TAGS);
 
 # set the version for version checking
-$VERSION = do { my @v = '$Revision: 1.113 $' =~ /\d+/g;
-          shift(@v) . "." . join("_", map {sprintf "%03d", $_ } @v); };
+$VERSION = do { my @v = '$Revision: 1.114 $' =~ /\d+/g;
+    shift(@v) . "." . join( "_", map { sprintf "%03d", $_ } @v );
+};
 
 =head1 NAME
 
@@ -52,53 +53,94 @@
 
 =cut
 
- at ISA = qw(Exporter);
- at EXPORT = qw(search);
+ at ISA    = qw(Exporter);
+ at EXPORT = qw(search get_record);
+
 # make all your functions, whether exported or not;
 
 sub search {
-    my ($search,$type)=@_;
-    my $dbh=C4::Context->dbh();
+    my ( $search, $type, $number ) = @_;
+    my $dbh = C4::Context->dbh();
     my $q;
     my $Zconn;
     my $raw;
+    eval { $Zconn = new ZOOM::Connection( C4::Context->config("zebradb") ); };
+    if ($@) {
+        warn "Error ", $@->code(), ": ", $@->message(), "\n";
+    }
+
+    if ( $type eq 'CQL' ) {
+        my $string;
+        if ( $search->{'cql'} ) {
+            $string = $search->{'cql'};
+        }
+        else {
+            foreach my $var ( keys %$search ) {
+                $string .= "$var=\"$search->{$var}\" ";
+            }
+        }
+        $Zconn->option( cqlfile => C4::Context->config("intranetdir")
+              . "/zebra/pqf.properties" );
+        $Zconn->option( preferredRecordSyntax => "xml" );
+        $q = new ZOOM::Query::CQL2RPN( $string, $Zconn );
+    }
+    my $rs;
+    my $n;
     eval {
-	$Zconn = new ZOOM::Connection(C4::Context->config("zebradb"));
+        $rs = $Zconn->search($q);
+        $n  = $rs->size();
     };
     if ($@) {
-	warn "Error ", $@->code(), ": ", $@->message(), "\n";                  
+        print "Error ", $@->code(), ": ", $@->message(), "\n";
+    }
+    my $i = 0;
+    my @results;
+    while ( $i < $n && $i < $number ) {
+        $raw = $rs->record($i)->raw();
+        my $record = MARC::Record->new_from_xml($raw);
+        my $line = MARCmarc2koha( $dbh, $record );
+        push @results, $line;
+	$i++;
     }
-    
-    if ($type eq 'CQL'){
-	my $string;
-	foreach my $var (keys %$search) {
-	    $string.="$var=\"$search->{$var}\" ";
-	}	    
-	$Zconn->option(cqlfile => C4::Context->config("intranetdir")."/zebra/pqf.properties");
-	$Zconn->option(preferredRecordSyntax => "xml");
-	$q = new ZOOM::Query::CQL2RPN( $string, $Zconn);	
-	}
+    return ( \@results );
+
+}
+
+sub get_record {
+
+    # pass in an id (localnumber) and get back a MARC record
+    my ($id) = @_;
+    my $q;
+    my $Zconn;
+    my $raw;
+    eval { $Zconn = new ZOOM::Connection( C4::Context->config("zebradb") ); };
+    if ($@) {
+        warn "Error ", $@->code(), ": ", $@->message(), "\n";
+    }
+    $Zconn->option( cqlfile => C4::Context->config("intranetdir")
+          . "/zebra/pqf.properties" );
+    $Zconn->option( preferredRecordSyntax => "xml" );
+    my $string = "id=$id";
+    warn $id;
+
+    #    $q = new ZOOM::Query::CQL2RPN( $string, $Zconn);
     eval {
-	my $rs = $Zconn->search($q);
-	my $n = $rs->size();
-	if ($n >0){
-	    $raw=$rs->record(0)->raw();
-	}
+        my $rs = $Zconn->search_pqf("\@attr 1=12 $id");
+        my $n  = $rs->size();
+        if ( $n > 0 ) {
+            $raw = $rs->record(0)->raw();
+        }
     };
     if ($@) {
-	print "Error ", $@->code(), ": ", $@->message(), "\n";
-    }   
-    my $record = MARC::Record->new_from_xml($raw);
-    ### $record                                                                                                    
-    # transform it into a meaningul hash                                                                       
-    my $line = MARCmarc2koha($dbh,$record);                                                                    
-    ### $line                                                                                                      
-    my $biblionumber=$line->{biblionumber};                                                                    
-    my $title=$line->{title};                                                                                  
-    ### $title
-
 
+        print "Error ", $@->code(), ": ", $@->message(), "\n";
+    }
+    ###$raw
+    my $record = MARC::Record->new_from_xml($raw);
+    ###$record
+    return ($record);
 }
+
 1;
 __END__
 
@@ -109,3 +151,4 @@
 Koha Developement team <info at koha.org>
 
 =cut
+ 





More information about the Koha-cvs mailing list