koha-cvs
[Top][All Lists]
Advanced

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

[Koha-cvs] koha/C4 SearchMarc.pm [rel_2_2]


From: Thomas D
Subject: [Koha-cvs] koha/C4 SearchMarc.pm [rel_2_2]
Date: Sat, 18 Feb 2006 08:41:45 +0000

CVSROOT:        /sources/koha
Module name:    koha
Branch:         rel_2_2
Changes by:     Thomas D <address@hidden>       06/02/18 08:41:44

Modified files:
        C4             : SearchMarc.pm 

Log message:
        Synchronised getMARCsubjects in rel_2_2 with HEAD.

CVSWeb URLs:
http://cvs.savannah.gnu.org/viewcvs/koha/koha/C4/SearchMarc.pm.diff?only_with_tag=rel_2_2&tr1=1.36.2.21&tr2=1.36.2.22&r1=text&r2=text

Patches:
Index: koha/C4/SearchMarc.pm
diff -u koha/C4/SearchMarc.pm:1.36.2.21 koha/C4/SearchMarc.pm:1.36.2.22
--- koha/C4/SearchMarc.pm:1.36.2.21     Wed Dec 14 15:58:23 2005
+++ koha/C4/SearchMarc.pm       Sat Feb 18 08:41:44 2006
@@ -589,7 +589,22 @@
                $mintag = "600";
                $maxtag = "699";
        }
-       my $sth=$dbh->prepare("SELECT subfieldvalue,subfieldcode,tagorder,tag 
FROM marc_subfield_table WHERE bibid=? AND tag BETWEEN ? AND ? ORDER BY 
tagorder,subfieldorder");
+       my $sth=$dbh->prepare("SELECT 
`subfieldvalue`,`subfieldcode`,`tagorder`,`tag` FROM `marc_subfield_table` 
WHERE `bibid`= ? AND `subfieldcode` NOT IN ('2','4','6','8') AND `tag` BETWEEN 
? AND ? ORDER BY `tagorder`,`subfieldorder`");
+       # Subfield exclusion for $2, $4, $6, $8 protects against searching for
+       # variant data in otherwise invariant authorised subject headings when 
all
+       # returned subfields are used to form a query for matching subjects.  
One
+       # example is the use of $2 in MARC 21 where the value of $2 changes for
+       # different editions of the thesaurus used, even where the subject 
heading
+       # is otherwise the same.  There is certainly a better fix for many cases
+       # where the value of the subfield may be parsed for the invariant data. 
 
+       # More complete display values may also be separated from query values
+       # containing only the actual invariant authorised subject headings.  
More
+       # coding is required for careful value parsing, or display and query
+       # separation; instead of blanket subfield exclusion.
+       # 
+       # As implemented, $3 is passed and might still pose a problem.  Passing 
$3
+       # could have benefits for some proper use of $3 for UNIMARC, however, 
might
+       # restrict query usage to a given material type.  -- thd
 
        $sth->execute($bibid,$mintag,$maxtag);
 
@@ -615,11 +630,14 @@
                }
                if ($subfieldcode eq 9) {
                        $field9=$subfieldvalue;
+               } elsif ($subfieldcode eq (3 || 5)) {
+                       $subject .= $subfieldvalue . " ";
                } else {
-                       $subject .= $subfieldvalue." -- ";
+                       $subject .= $subfieldvalue . " -- ";
                }
                $activetagorder=$tagorder;
        }
+       $subject=~ s/ -- $//;
        $marcsubjct = {MARCSUBJCT => $subject,
                                        link => $lasttag."9",
                                        linkvalue => $field9,




reply via email to

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