koha-cvs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Koha-cvs] koha cataloguing/value_builder/unimarc_field_4X... [rel_3_0]


From: Henri-Damien LAURENT
Subject: [Koha-cvs] koha cataloguing/value_builder/unimarc_field_4X... [rel_3_0]
Date: Fri, 24 Nov 2006 21:45:34 +0000

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, 
address@hidden,address@hidden,
-                                                                               
        address@hidden, address@hidden, address@hidden,
-                                                                               
        $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 => address@hidden,
                                                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>




reply via email to

[Prev in Thread] Current Thread [Next in Thread]