[Koha-cvs] koha cataloguing/value_builder/unimarc_field_4X... [rel_3_0]
Henri-Damien LAURENT
laurenthdl at alinto.com
Fri Nov 24 22:45:34 CET 2006
CVSROOT: /cvsroot/koha
Module name: koha
Branch: rel_3_0
Changes by: Henri-Damien LAURENT <hdl> 06/11/24 21:45:34
Modified files:
cataloguing/value_builder: unimarc_field_4XX.pl
koha-tmpl/intranet-tmpl/prog/en/cataloguing/value_builder:
unimarc_field_4XX.tmpl
Log message:
BUG Fixing :
Now use SimpleSearch for bibliosearch.
Was obliged to count items through a trick using MARCmarc2koha results (May help for other results.)
I find Javascript VEEERRRRYYYY SLOW on Koha.
Why is this so slow ?
CVSWeb URLs:
http://cvs.savannah.gnu.org/viewcvs/koha/cataloguing/value_builder/unimarc_field_4XX.pl?cvsroot=koha&only_with_tag=rel_3_0&r1=1.1.2.4&r2=1.1.2.5
http://cvs.savannah.gnu.org/viewcvs/koha/koha-tmpl/intranet-tmpl/prog/en/cataloguing/value_builder/unimarc_field_4XX.tmpl?cvsroot=koha&only_with_tag=rel_3_0&r1=1.1.2.3&r2=1.1.2.4
Patches:
Index: cataloguing/value_builder/unimarc_field_4XX.pl
===================================================================
RCS file: /cvsroot/koha/koha/cataloguing/value_builder/Attic/unimarc_field_4XX.pl,v
retrieving revision 1.1.2.4
retrieving revision 1.1.2.5
diff -u -b -r1.1.2.4 -r1.1.2.5
--- cataloguing/value_builder/unimarc_field_4XX.pl 17 Nov 2006 13:18:59 -0000 1.1.2.4
+++ cataloguing/value_builder/unimarc_field_4XX.pl 24 Nov 2006 21:45:34 -0000 1.1.2.5
@@ -20,7 +20,6 @@
use strict;
require Exporter;
use CGI;
-use HTML::Template;
use C4::Interface::CGI::Output;
use C4::Context;
use C4::Search;
@@ -28,7 +27,6 @@
use C4::Output;
use C4::Database;
use C4::Biblio;
-use C4::Acquisition;
use C4::Koha;
use MARC::Record;
@@ -90,16 +88,16 @@
debug => 1,
});
#get biblionumber
- my $biblionumber;
- my $req= $dbh->prepare("SELECT distinctrow $biblionumber,biblionumber FROM `marc_biblio` WHERE biblionumber= ?");
- $req->execute($bibnum);
- ($biblionumber,$bibnum) = $req->fetchrow;
+# my $biblionumber;
+# my $req= $dbh->prepare("SELECT distinctrow $biblionumber,biblionumber FROM `marc_biblio` WHERE biblionumber= ?");
+# $req->execute($bibnum);
+# ($biblionumber,$bibnum) = $req->fetchrow;
#warn "$biblionumber :".$biblionumber;
#get marc record
- $marcrecord = MARCgetbiblio($dbh,$biblionumber);
+ $marcrecord = MARCgetbiblio($dbh,$bibnum);
# warn "record : ".$marcrecord->as_formatted;
- my $subfield_value_9=$biblionumber;
+ my $subfield_value_9=$bibnum;
my $subfield_value_0;
$subfield_value_0=$marcrecord->field('001')->data if $marcrecord->field('001');
my $subfield_value_a;
@@ -195,7 +193,7 @@
}
$template->param(fillinput => 1,
index => $query->param('index')."",
- $biblionumber=>$biblionumber?$biblionumber:"",
+ biblionumber=>$bibnum?$bibnum:"",
subfield_value_9=>$subfield_value_9,
subfield_value_0=>$subfield_value_0,
subfield_value_a=>$subfield_value_a,
@@ -213,42 +211,12 @@
);
###############################################################
}elsif ($op eq "do_search") {
- my @marclist = $query->param('marclist');
- my @and_or = $query->param('and_or');
- my @excluding = $query->param('excluding');
- my @operator = $query->param('operator');
- my @value = $query->param('value');
-
- for (my $i=0;$i<=$#marclist;$i++) {
- if ($searchdesc) { # don't put the and_or on the 1st search term
- $searchdesc .= $and_or[$i]." ".$excluding[$i]." ".($marclist[$i]?$marclist[$i]:"*")." ".$operator[$i]." ".$value[$i]." " if ($value[$i]);
- } else {
- $searchdesc = $excluding[$i]." ".($marclist[$i]?$marclist[$i]:"*")." ".$operator[$i]." ".$value[$i]." " if ($value[$i]);
- }
- }
- $resultsperpage= $query->param('resultsperpage');
- $resultsperpage = 19 if(!defined $resultsperpage);
- my $orderby = $query->param('orderby');
- my $desc_or_asc = $query->param('desc_or_asc');
-
- # builds tag and subfield arrays
- my @tags;
- foreach my $marc (@marclist) {
- if ($marc) {
- my ($tag,$subfield) = MARCfind_marc_from_kohafield($dbh,$marc,'');
- if ($tag) {
- push @tags,$dbh->quote("$tag$subfield");
- } else {
- push @tags, $dbh->quote(substr($marc,0,4));
- }
- } else {
- push @tags, "";
- }
- }
-
- my ($results,$total) = catalogsearch($dbh, \@tags,\@and_or,
- \@excluding, \@operator, \@value,
- $startfrom*$resultsperpage, $resultsperpage,$orderby, $desc_or_asc);
+ my $search = $query->param('search');
+ my $startfrom = $query->param('startfrom');
+ my $resultsperpage = $query->param('resultsperpage');
+ my $orderby;
+ my ($total,$results) = SimpleSearch($search);
+ $resultsperpage=20 unless $resultsperpage;
# warn " biblio count : ".$total;
($template, $loggedinuser, $cookie)
@@ -265,18 +233,39 @@
if(($total - (($startfrom+1)*($resultsperpage))) > 0 ){
$displaynext = 1;
}
-
- my @field_data = ();
-
-
- for(my $i = 0 ; $i <= $#marclist ; $i++)
- {
- push @field_data, { term => "marclist", val=>$marclist[$i] };
- push @field_data, { term => "and_or", val=>$and_or[$i] };
- push @field_data, { term => "excluding", val=>$excluding[$i] };
- push @field_data, { term => "operator", val=>$operator[$i] };
- push @field_data, { term => "value", val=>$value[$i] };
- }
+ my @arrayresults;
+ my @field_data = ($search);
+ for (my $i=$startfrom; $i<=(($startfrom+$resultsperpage)<scalar(@$results)?($startfrom+$resultsperpage):scalar(@$results));$i++){
+ my $record=MARC::Record::new_from_usmarc( $results->[$i] );
+ my $rechash=MARCmarc2koha($dbh,$record);
+ my $pos;
+ my $countitems=1 if ($rechash->{itemnumber});
+ while (index($rechash->{itemnumber},'|',$pos)>0){
+ $countitems+=1;
+ $pos=index($rechash->{itemnumber},'|',$pos)+1;
+ }
+ $rechash->{totitem}=$countitems;
+ my @holdingbranches=split /\|/,$rechash->{holdingbranch};
+ my @itemcallnumbers=split /\|/,$rechash->{itemcallnumber};
+ my $CN;
+ for (my $i=0;$i<@holdingbranches;$i++){
+ $CN.= $holdingbranches[$i]." ( ".$itemcallnumbers[$i]." ) |"
+ }
+ $CN=~s/ \|$//;
+ $rechash->{CN}=$CN;
+ push @arrayresults,$rechash;
+ }
+ use Data::Dumper;warn Dumper(@arrayresults);
+
+
+# for(my $i = 0 ; $i <= $#marclist ; $i++)
+# {
+# push @field_data, { term => "marclist", val=>$marclist[$i] };
+# push @field_data, { term => "and_or", val=>$and_or[$i] };
+# push @field_data, { term => "excluding", val=>$excluding[$i] };
+# push @field_data, { term => "operator", val=>$operator[$i] };
+# push @field_data, { term => "value", val=>$value[$i] };
+# }
my @numbers = ();
@@ -306,7 +295,7 @@
$to = (($startfrom+1)*$resultsperpage);
}
my $defaultview = 'BiblioDefaultView'.C4::Context->preference('BiblioDefaultView');
- $template->param(result => $results,
+ $template->param(result => \@arrayresults,
index => $query->param('index')."",
startfrom=> $startfrom,
displaynext=> $displaynext,
Index: koha-tmpl/intranet-tmpl/prog/en/cataloguing/value_builder/unimarc_field_4XX.tmpl
===================================================================
RCS file: /cvsroot/koha/koha/koha-tmpl/intranet-tmpl/prog/en/cataloguing/value_builder/Attic/unimarc_field_4XX.tmpl,v
retrieving revision 1.1.2.3
retrieving revision 1.1.2.4
diff -u -b -r1.1.2.3 -r1.1.2.4
--- koha-tmpl/intranet-tmpl/prog/en/cataloguing/value_builder/unimarc_field_4XX.tmpl 21 Nov 2006 10:29:21 -0000 1.1.2.3
+++ koha-tmpl/intranet-tmpl/prog/en/cataloguing/value_builder/unimarc_field_4XX.tmpl 24 Nov 2006 21:45:34 -0000 1.1.2.4
@@ -3,8 +3,10 @@
<html xmlns="http://www.w3.org/1999/xhtml">
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
+<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<!-- TMPL_IF Name="fillinput"-->
+</head>
<body>
<script language="JavaScript" type="text/javascript">
@@ -145,9 +147,7 @@
</script>
</body>
<!-- TMPL_ELSE -->
- <head>
- <title>KOHA:INTRANET_: Biblio Search</title>
- <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
+ <title>KOHA:INTRANET_:_Biblio_Search</title>
<script language="JavaScript" type="text/javascript">
function Help() {
@@ -196,7 +196,8 @@
<p align="left">Logged in as: <!-- TMPL_VAR NAME="loggedinusername" --> [<a href="/cgi-bin/koha/mainpage.pl?logout.x=1">Log Out</a>]</p>
<!-- TMPL_ELSE -->
<p align="left"><a href="/cgi-bin/koha/opac-user.pl">Log In</a> to Koha</p>
- <!-- /TMPL_IF --></head>
+ <!-- /TMPL_IF -->
+ </head>
<div id="mainbloc">
<h1 class="catalogue" >KOHA : INTRANET : Catalogue </h1>
<!--TMPL_IF Name = "Search"-->
@@ -208,111 +209,15 @@
<input type="hidden" name="plugin_name" value="unimarc_field_4XX.pl">
<input type="hidden" name="index" value="<!--TMPL_VAR Name="index" -->">
<input type="hidden" name="result" value="unimarc field 4 <!--TMPL_VAR Name="index" -->">
- <input type="hidden" name="plugin_name" value="unimarc_field_4XX.pl">
<input type="hidden" name="op" value="do_search">
<label class="label100" for="keyword">Any word</label>
- <input type="hidden" name="marclist" value="">
- <input type="hidden" name="and_or" value="and">
- <input type="hidden" name="excluding" value="">
- <input type="hidden" name="operator" value="contains">
- <input type="text" name="value" id="keyword" onchange="sql_update()" size="35">
- </p>
- <p>
- <label_class="label100" for="title">Title</label>
- <input_type="hidden" name="marclist" value="biblio.title">
- <input type="hidden" name="and_or" value="and">
- <input type="hidden" name="excluding" value="">
- <input type="hidden" name="operator" value="contains">
- <input_type="text" name="value" id="title" onchange="sql_update()" size="35">
- </p>
- <p>
- <label class="label100" for="author">Author</label> <input type="hidden" name="marclist" value="biblio.author">
- <input type="hidden" name="and_or" value="and">
- <input type="hidden" name="excluding" value="">
- <input type="hidden" name="operator" value="contains">
- <input type="text" name="value" id="author" onchange="sql_update()" size="35">
- </p>
- <p>
- <label class="label100" for="itemtype">Item Type</label>
- <input type="hidden" name="marclist" value="biblioitems.itemtype">
- <input type="hidden" name="and_or" value="and">
- <input type="hidden" name="excluding" value="">
- <input type="hidden" name="operator" value="=">
- <!-- TMPL_VAR name="CGIitemtype" -->
- </p>
- <p>
- <label class="label100" for="branch">Branch</label>
- <input type="hidden" name="marclist" value="items.holdingbranch">
- <input type="hidden" name="and_or" value="and">
- <input type="hidden" name="excluding" value="">
- <input type="hidden" name="operator" value="=">
- <!-- TMPL_VAR name="CGIbranch" -->
- </p>
- <h2 class="catalogue">Other options</h2>
- <p>
- <label class="label100" for="callno">Call Number</label>
- <input type="hidden" name="marclist" value="items.itemcallnumber">
- <input type="hidden" name="and_or" value="and">
- <input type="hidden" name="excluding" value="">
- <input type="hidden" name="operator" value="start">
- <input type="text" name="value" id="callno" onchange="sql_update()">
- </p>
- <p>
- <label class="label100" for="isbn">ISBN</label>
- <input type="hidden" name="marclist" value="biblioitems.isbn">
- <input type="hidden" name="and_or" value="and">
- <input type="hidden" name="excluding" value="">
- <input type="hidden" name="operator" value="=">
- <input type="text" name="value" id="isbn" onchange="sql_update()">
- </p>
- <p>
- <label class="label100" for="publisher">Publisher</label>
- <input type="hidden" name="marclist" value="biblioitems.publishercode">
- <input type="hidden" name="and_or" value="and">
- <input type="hidden" name="excluding" value="">
- <input type="hidden" name="operator" value="contains">
- <input type="text" name="value" id="publisher" onchange="sql_update()">
-
+ <input type="text" name="search" id="keyword" size="35">
</p>
- </div>
- <div class="bloc25">
- <p><textarea name="sql" rows="3" cols="70" disabled readonly></textarea></p>
- <p>Results per page :
- <select name="resultsperpage" size="1">
- <option value="20">20</option>
- <option value="50">50</option>
- <option value="100">100</option>
- </select>
- Ordered by
- <select name="orderby" size="1">
- <option_value="biblio.title">Title</option>
- <option value="biblio.author">Author</option>
- <option value="biblioitems.dewey">Dewey</option>
- <option value="biblioitems.publicationyear">Publication Year</option>
- <option value="biblioitems.publishercode">Publisher</option>
- </select>
- <p>
- <p><input type="hidden" name="index" value="<!--TMPL_VAR Name="index" -->"></p>
<p>
<input type="submit" value="Start search" class="button catalogue">
<input type="reset" value="Clear All Fields" class="button catalogue">
</p>
- <script language="javascript" type="text/javascript">
- function sql_update() {
- document.f.sql.value="";
- for (i=0 ; i<document.f.marclist.length ; i++) {
- if (document.f.value[i].value.length>0) {
- document.f.sql.value = document.f.sql.value+
- document.f.and_or[i].value + ' (' +
- document.f.excluding[i].value + ' ' +
- document.f.marclist[i].value + ' ' +
- document.f.operator[i].value + ' ' +
- '\''+document.f.value[i].value + '\') ';
- }
- }
- }
- </script>
</div>
</form>
@@ -336,9 +241,9 @@
<tr>
<td<!-- TMPL_IF NAME="even" --> class="hilighted"<!-- /TMPL_IF -->>
<!-- TMPL_IF name="MARC_ON" -->
- <a_class="transparent resultlist" href="/cgi-bin/koha/MARCdetail.pl?biblionumber=<!-- TMPL_VAR NAME="biblionumber" ESCAPE="URL" -->"><!-- TMPL_VAR NAME="title" --></a>
+ <a_class="transparent resultlist" href="/cgi-bin/koha/MARCdetail.pl?biblionumber=<!-- TMPL_VAR NAME="biblionumber" ESCAPE="URL" -->"><!-- TMPL_VAR NAME="title" ESCAPE="HTML"--></a>
<!-- TMPL_ELSE -->
- <a_class="transparent resultlist" href="/cgi-bin/koha/catalogue/detail.pl?biblionumber=<!-- TMPL_VAR NAME="biblionumber" ESCAPE="URL" -->"><!-- TMPL_VAR NAME="title" --></a> <!-- /TMPL_IF -->
+ <a_class="transparent resultlist" href="/cgi-bin/koha/catalogue/detail.pl?biblionumber=<!-- TMPL_VAR NAME="biblionumber" ESCAPE="URL" -->"><!-- TMPL_VAR NAME="title" ESCAPE="HTML" --></a> <!-- /TMPL_IF -->
<p><!-- TMPL_VAR NAME="author" -->
<!-- TMPL_IF NAME="publishercode" -->- <!-- TMPL_VAR NAME="publishercode" --><!-- /TMPL_IF -->
<!-- TMPL_IF NAME="place" --> ; <!-- TMPL_VAR NAME="place" --><!-- /TMPL_IF -->
@@ -351,25 +256,10 @@
<!-- TMPL_VAR NAME="totitem" -->
</td>
<td <!-- TMPL_IF NAME="even" -->class="hilighted"<!-- /TMPL_IF -->>
- <!-- TMPL_LOOP NAME="CN" -->
- <p>
- <!-- TMPL_VAR NAME="holdingbranch" -->
- <!-- TMPL_IF name="date_due" -->
- On Loan until <!-- TMPL_VAR NAME="date_due" -->
- <!-- TMPL_ELSE -->
- <!-- TMPL_IF NAME="itemcallnumber" -->
- (<!-- TMPL_VAR NAME="itemcallnumber" -->)
- <!-- /TMPL_IF -->
- <!-- /TMPL_IF -->
- <!-- TMPL_IF name="notforloan" -->
- <i>(<!-- TMPL_VAR name="notforloan" -->)</i>
- <!-- /TMPL_IF -->
- </p>
- <!-- /TMPL_LOOP -->
- <!-- TMPL_IF name="onorder" --><p>On order</p><!-- /TMPL_IF -->
+ <!-- TMPL_VAR NAME="CN" -->
</td>
<td>
- <a href="javascript:jumpfull('/cgi-bin/koha/cataloguing/plugin_launcher.pl?plugin_name=unimarc_field_4XX.pl&index=<!--TMPL_VAR Name="index"-->&bibnum=<!--TMPL_VAR Name="biblionumber"-->&type=intranet&op=fillinput')"><img src="<!-- TMPL_VAR NAME="interface" -->/<!-- TMPL_VAR NAME="theme" -->/images/arrow.gif" width="32" hspace="0" vspace="0" border="0"></a>
+ <a href="javascript:jumpfull('/cgi-bin/koha/cataloguing/plugin_launcher.pl?plugin_name=unimarc_field_4XX.pl&index=<!--TMPL_VAR Name="index"-->&bibnum=<!--TMPL_VAR Name="biblionumber"-->&type=intranet&op=fillinput')"><img src="<!-- TMPL_VAR NAME="interface" -->/<!-- TMPL_VAR NAME="theme" -->/images/arrow.gif" alt="choose" width="32" hspace="0" vspace="0" border="0"></a>
</td>
</tr>
More information about the Koha-cvs
mailing list