Bug 7537 - Implement TraceCompleteSubfields, TraceSubjectSubdivisions and UseICU for NORMARC XSLT

IMPORTANT! This patch relies on the patch for Bug 7092, which is now pushed to
master.

As the title says, this patch implements TraceCompleteSubfields,
TraceSubjectSubdivisions and UseICU for NORMARC XSLT, both for the OPAC
and the Intranet. This affects how clickable subject-links are constructed.

To make this work the indexing of MARC fields in the 600 range is changed
to include "Subject:p" in several new places.

To test:

Find a record with a "complex" subject, like "Internet -- Law and legislation".
MARC21 and NORMARC are very similar in how they handle subjects, so testing
on a MARC21 database should be OK. (Changes in indexing reflect changes already
made to the MARC21 indexing.)

Make sure you have these syspref settings:
- marcflavour = NORMARC
- XSLTDetailsDisplay = using XSLT stylesheets
- OPACXSLTDetailsDisplay = using XSLT stylesheets

(Ideally, testing should be done on a real NORMARC setup, but since the changes
to indexing only reflect how it's already done in MARC21, I think testing
on a MARC21 installation with marcflavour = NORMARC should be OK.)

Now try the different combinations of TraceCompleteSubfields,
TraceSubjectSubdivisions and UseICU, and check the format of the
clickable links, both in the OPAC and staff client. Here's what you should
be seeing:

1.
TraceCompleteSubfields   = Don't force
TraceSubjectSubdivisions = Don't include
UseICU = Not using
  opac-search.pl?q=su:"Internet"
UseICU = Using
  opac-search.pl?q=su:{Internet}

2.
TraceCompleteSubfields   = Force
TraceSubjectSubdivisions = Don't include
UseICU = Not using
  opac-search.pl?q=su,complete-subfield:"Internet"
UseICU = Using
  opac-search.pl?q=su,complete-subfield:{Internet}

3.
TraceCompleteSubfields   = Don't force
TraceSubjectSubdivisions = Include
UseICU = Not using
  opac-search.pl?q=(su:"Internet") AND (su:"Law and legislation.")
UseICU = Using
  opac-search.pl?q=(su:{Internet}) AND (su:{Law and legislation.})

4.
TraceCompleteSubfields   = Force
TraceSubjectSubdivisions = Include
UseICU = Not using
  opac-search.pl?q=(su,complete-subfield:"Internet") AND (su,complete-subfield:"Law and legislation.")
UseICU = Using
  opac-search.pl?q=(su,complete-subfield:{Internet}) AND (su,complete-subfield:{Law and legislation.})

UPDATE 2012-03-23
- Change the syspref TracingQuotes to UseICU, see bug 7092
- Change boolean operator from "and" to "AND", see bug 7695

Signed-off-by: Katrin Fischer <Katrin.Fischer.83@web.de>
Note: UseControlnumber must be turned off.

1) Works.
2) Works.
3) Works.
4) Works.

Signed-off-by: Paul Poulain <paul.poulain@biblibre.com>
Signed-off-by: Jared Camins-Esakov <jcamins@cpbibliography.com>
This commit is contained in:
Magnus Enger 2012-02-16 12:07:35 +01:00 committed by Jared Camins-Esakov
parent b09ea81754
commit cf618fb80c
5 changed files with 399 additions and 340 deletions

View File

@ -1,327 +1,324 @@
# This is an attemptat creating inedxing rules for MARC records in the
# Norwegian format NORMARC. The format is documented here (in Norwegian):
# http://www.nb.no/fag/kompetansesenter/kunnskapsorganisering/dnk/normarc
#
# The most recent version of this file can be found here:
# http://normarc4koha.github.com/
#
# This file was created by Magnus Enger Libriotech http://libriotech.no/
#
# ABBREVIATIONS
#
# NiN = Not in Normarc (these will be removed at a later date)
#
# NOTES
#
# There is a conflict between the practices of Koha and the definition of
# NORMARC, where $9 is used for Koha-Auth-Number by Koha, and to denote
# language by NORMARC. This concerns these fields:
# 650, 651, 652, 653, 655, 656
# For the time being, these are still indexed as Koha-Auth-Number
#
# TODO
#
# Add NORMARC-specific fields: 019, 531, 532, 539, 571, 572, 573, 574, 640
# Consider fields where NORMARC and MARC21 differ complettely: 652, 658, more?
# Consider the fields 09X, 59X, 69X, 79X, 99X
# Consider whether 246 and 510 are equvalent in NORMARC and MARC21
# NOTE: This is designed to be used with the grs.marcxml input filter
# for ISO2709 (ANSI Z39.2) or grs.xml for MARCXML-formatted records. It
# won't work for the old grs.marc input filter, which yields a different
# internal structure.
encoding utf-8
name marc21
attset bib1.att
attset gils.att
esetname F @
esetname B @
marc usmarc.mar
systag sysno rank
xpath enable
# Some notes:
# pl = Published Place
# ta = Target Audience 002/22
# ff8-23
# lf = Literary Form 008/33
# bio = Biography 008/34
# fmt = Format
# ln = Language
# ctype = Content type: review, catalog, encyclopedia, dictionary
# pubdate Publication Date
# rtype = Record type (leader 06)
#
# Date indexing in Koha 3.0 for MARC21:
# Index Expected format Notes
# date-entered-on-file [yymmdd] (008/0-5, indexed in word and sort indexes)
# copydate [yyyy] (260$c, indexed in word and sort indexes)
# acqdate [yyyy-mm-dd] (952$d, indexed in date,word,sort indexes)
# pubdate [yyyy] (008/7-10, indexed in year,word,num,sort indexes)
all any
# TODO
# melm 000 rtype:n:range(data,06,1),Bib-level:w:range(data,07,01)
xelm /record/leader llength:w:range(data,0,5),rtype:w:range(data,6,1),Bib-level:w:range(data,7,1)
# example: xelm /record/leader l1:w:range(data,0,5),l2:w:range(data,10,2)
melm 001 Control-number
# NiN melm 005 Date/time-last-modified
# TODO
melm 007 Microform-generation:n:range(data,11,1),Material-type,ff7-00:w:range(data,0,1),ff7-01:w:range(data,1,1),ff7-02:w:range(data,2,1),ff7-01-02:w:range(data,0,2)
# TODO
melm 008 date-entered-on-file:n:range(data,0,5),date-entered-on-file:s:range(data,0,5),pubdate:w:range(data,7,4),pubdate:n:range(data,7,4),pubdate:y:range(data,7,4),pubdate:s:range(data,7,4),pl:w:range(data,15,3),ta:w:range(data,22,1),ff8-23:w:range(data,23,1),ff8-29:w:range(data,29,1),lf:w:range(data,33,1),bio:w:range(data,34,1),ln:n:range(data,35,3),ctype:w:range(data,24,4),Record-source:w:range(data,39,0)
melm 010 LC-card-number,Identifier-standard
# NiN melm 011 LC-card-number,Identifier-standard
melm 015 BNB-card-number,BGF-number,Number-db,Number-natl-biblio,Identifier-standard
# NiN melm 017 Number-legal-deposit,Identifier-standard
# NiN melm 018 Identifier-standard
melm 020$a ISBN:w,Identifier-standard:w
melm 020 ISBN,Identifier-standard
melm 022$a ISSN:w,ISBN:w
melm 022 ISSN,Identifier-standard
# NiN melm 023 Identifier-standard
melm 024 Identifier-standard
melm 025 Identifier-standard
melm 027 Report-number,Identifier-standard
melm 028 Number-music-publisher,Identifier-standard
melm 030 CODEN,Identifier-standard
#melm 033 Date
# NiN melm 034 Map-scale
#melm 035 Local-number,Identifier-standard
# NiN melm 037 Identifier-standard,Stock-number
melm 040 Code-institution,Record-source
melm 041 ln
melm 043 Code-geographic
#melm 046 pubdate
# NiN melm 050$b LC-call-number:w,LC-call-number:p,LC-call-number:s
# NiN melm 050 LC-call-number:w,LC-call-number:p,LC-call-number:s
# NiN melm 052 Geographic-class
melm 060 NLM-call-number
# NiN melm 070 NAL-call-number
melm 080 UDC-classification
melm 082 Dewey-classification:w,Dewey-classification:s
# NiN melm 086 Number-govt-pub
#melm 942$k LC-card-number:s
## KOHA SPECIFIC
#melm 090$c Local-number:w
#Identifier-standard:w
melm 100$9 Cross-Reference:w,Koha-Auth-Number
melm 100$a Author,Author:p,Author:s,Editor,Author-personal-bibliography,Author-personal-bibliography:p,Author-personal-bibliography:s
melm 100 Author,Author-title,Author-name-personal,Name,Name-and-title,Personal-name
melm 110$9 Koha-Auth-Number
melm 110 Author,Author-title,Author-name-corporate,Name,Name-and-title,Corporate-name
melm 111$9 Koha-Auth-Number
melm 111 Author,Author-title,Author-name-corporate,Name,Name-and-title,Conference-name
melm 130$i Thematic-number
melm 130$n Thematic-number
melm 130$r Music-key
melm 130$9 Koha-Auth-Number
melm 130 Title,Title-uniform
melm 210 Title,Title-abbreviated
# NiN melm 211 Title,Title-abbreviated
# NiN melm 212 Title,Title-other-variant
# NiN melm 214 Title,Title-expanded
melm 222 Title,Title-key
melm 240$i Thematic-number
melm 240$r Music-key
melm 240$n Thematic-number
melm 240 Title:w,Title:p,Title-uniform
# NiN melm 243$n Thematic-number
# NiN melm 243$r Music-key
# NiN melm 243 Title:w,Title:p,Title-collective
melm 245$a Title-cover:w,Title-cover:p,Title-cover:s,Title:w,Title:p,Title:s
melm 245$c Author,Author-in-order:w,Author-in-order:p,Author-in-order:s
melm 245$9 Cross-Reference:w,Koha-Auth-Number
melm 245 Title:w,Title:p
melm 246 Title,Title:p,Title-abbreviated,Title-expanded,Title-former
# NiN melm 247 Title,Title:p,Title-former,Title-other-variant,Related-periodical
melm 260$a pl:w,pl:p
melm 260$b Publisher:w,Publisher:p
melm 260$c copydate,copydate:s
melm 260 pl
melm 300 Extent:w,Extent:p
# NiN melm 400$a Name-and-title
# NiN melm 400$t Author-title,Name-and-title,Title,Title-series
# NiN melm 400$9 Koha-Auth-Number
# NiN melm 400 Author,Author-name-personal,Name,Personal-name
# NiN melm 410 Author,Corporate-name
# NiN melm 410$a Name-and-title
# NiN melm 410$t Author-title,Title,Title-series
# NiN melm 410$9 Koha-Auth-Number
# NiN melm 410 Author-name-corporate,Name
# NiN melm 411 Author,Conference-name
# NiN melm 411$a Name-and-title
# NiN #melm 411$t title,author,Author-title,Title-series
# NiN melm 411$t Author-title,Title-series
# NiN #melm 411 author,Author-name-corporate,Name
# NiN melm 411 Author-name-corporate,Name
melm 440$a Title-series:w,Title-series:p
melm 440$9 Koha-Auth-Number
melm 440 Title-series:w,Title-series:p,Title,Title-series
melm 490$a Title-series:w,Title-series:p
melm 490 Title,Title-series
melm 490$9 Koha-Auth-Number
melm 502 Material-type
# NiN melm 505$r Author
# NiN melm 505$t Title
melm 505 Note:w,Note:p
melm 510 Indexed-by
melm 520 Abstract:w,Abstract:p
#melm 533$d pubdate,pubdate:s
#melm 541$d Date-of-acquisition,Date-of-acquisition:s
melm 600$a Name-and-title,Name,Personal-name,Subject-name-personal,Subject
melm 600$t Name-and-title,Title,Subject
melm 600$9 Koha-Auth-Number
#melm 600 Name,Personal-name,Subject-heading,Subject-name-personal
melm 600 Name,Personal-name,Subject-name-personal,Subject
melm 610$a Name-and-title
melm 610$t Name-and-title,Title
melm 610$9 Koha-Auth-Number
melm 610 Name,Subject,Corporate-name
melm 611 Conference-name
melm 611$a Name-and-title
melm 611$t Name-and-title,Title
melm 611$9 Koha-Auth-Number
melm 611 Name,Subject
melm 630$i Thematic-number
melm 630$n Thematic-number
melm 630$r Music-key
melm 630$9 Koha-Auth-Number
melm 630 Subject
melm 650$9 Koha-Auth-Number
melm 650 Subject,Subject:p
melm 651$9 Koha-Auth-Number
melm 651 Name-geographic,Subject,Subject:p
melm 652$9 Koha-Auth-Number
#melm 652 subject-heading,subject-heading:p
melm 653$9 Koha-Auth-Number
melm 653 Subject,Subject:p
melm 654$9 Koha-Auth-Number
melm 654 Subject
melm 655$9 Koha-Auth-Number
melm 655 Subject
melm 656$9 Koha-Auth-Number
melm 656 Subject
melm 657$9 Koha-Auth-Number
melm 657 Subject
melm 690$9 Koha-Auth-Number
melm 690 Subject,Subject:p
melm 700$9 Cross-Reference,Koha-Auth-Number
melm 700$a Author,Author:p
melm 700$i Thematic-number
melm 700$n Thematic-number
melm 700$r Music-key
#melm 700$t author,Author-title,Name-and-title,Title,Title-uniform
melm 700$t Author-title,Name-and-title,Title,Title-uniform
melm 700 Author,Author-name-corporate,Author-name-personal,Name,Editor,Personal-name
melm 710 Author,Corporate-name
#melm 710$t author,Author-title,Name-and-title,Title,Title-uniform
melm 710$t Author-title,Name-and-title,Title,Title-uniform
#melm 710$a author,author:p,Name-and-title
melm 710$a Name-and-title
melm 710$i Thematic-number
melm 710$9 Koha-Auth-Number
#melm 710 author,Name
melm 710 Author,Name
melm 711$a Name-and-title
#melm 711$t author,Author-title,Title,Title-uniform
melm 711$t Author-title,Title,Title-uniform
melm 711$9 Koha-Auth-Number
#melm 711 author,Author-name-corporate,Name,Conference-name
melm 711 Author-name-corporate,Name,Conference-name
melm 730$i Thematic-number
melm 730$n Thematic-number
melm 730$r Music-key
melm 730$9 Koha-Auth-Number
melm 730 Title,Title-uniform
melm 740 Title,Title-other-variant
melm 773$t Host-item
melm 780$t Title
melm 780 Title,Title-former,Related-periodical
melm 785 Related-periodical
melm 800$a Name-and-title
#melm 800$t author,Author-title,Name-and-title,Title,Title-series
melm 800$t Author-title,Name-and-title,Title,Title-series
melm 800$9 Koha-Auth-Number
melm 800 Author,Author-name-personal,Name,Personal-name
melm 810$a Name-and-title
melm 810$t Author-title,Name-and-title,Title,Title-series
melm 810$9 Koha-Auth-Number
melm 810 Author,Corporate-name,Author-name-corporate,Name
melm 811$a Name-and-title
melm 811$9 Koha-Auth-Number
#melm 811$t author,Author-title,Name-and-title,Title,Title-series
melm 811$t Author-title,Name-and-title,Title,Title-series
melm 811 Author,Author-name-corporate,Name,Conference-name
melm 830$9 Koha-Auth-Number
melm 830 Title,Title-series
# NiN melm 840 Title,Title-series
###############################
# Koha Local-Use Biblio Indexes
melm 999$c Local-Number:n,Local-Number:w,Local-Number:s
melm 999$d biblioitemnumber:n,biblioitemnumber:w,biblioitemnumber:s
melm 942$0 totalissues:n,totalissues:s
melm 942$2 cn-bib-source
melm 942$6 cn-bib-sort:n,cn-bib-sort:s
melm 942$c itemtype:w
melm 942$n Suppress:w,Suppress:n
# need to check bib1
melm 942$h cn-class
melm 942$i cn-item
melm 942$k cn-prefix
melm 942$m cn-suffix
# Items Indexes
melm 952$0 withdrawn:n,withdrawn:w
melm 952$1 lost,lost:n
melm 952$2 classification-source
melm 952$3 materials-specified
melm 952$4 damaged:n,damaged:w
melm 952$5 restricted:n,restricted:w
melm 952$6 cn-sort:n,cn-sort:s
melm 952$7 notforloan:n,notforloan:w
melm 952$8 ccode
melm 952$9 itemnumber:n,itemnumber:s
melm 952$a homebranch
melm 952$b holdingbranch
melm 952$c location
#dateaccessioned
melm 952$d Date-of-acquisition,Date-of-acquisition:d,Date-of-acquisition:s
melm 952$e acqsource
melm 952$f coded-location-qualifier
melm 952$g price
#melm 952$h
#melm 952$i
melm 952$j stack:n,stack:w
#melm 952$k
melm 952$l issues:n,issues:w,issues:s
melm 952$m renewals:n,renewals:w
melm 952$n reserves:n,reserves:w
melm 952$o Local-classification:w,Local-classification:p,Local-classification:s
melm 952$p barcode,barcode:n
melm 952$q onloan:n,onloan:w
melm 952$r datelastseen
melm 952$s datelastborrowed
melm 952$t copynumber
melm 952$u uri:u
melm 952$v replacementprice
melm 952$w replacementpricedate
#melm 952$x
melm 952$y itype:w
#melm 952$z
# This is an attemptat creating inedxing rules for MARC records in the
# Norwegian format NORMARC. The format is documented here (in Norwegian):
# http://www.nb.no/fag/kompetansesenter/kunnskapsorganisering/dnk/normarc
#
# This file was created by Magnus Enger Libriotech http://libriotech.no/
#
# ABBREVIATIONS
#
# NiN = Not in Normarc (these will be removed at a later date)
#
# NOTES
#
# There is a conflict between the practices of Koha and the definition of
# NORMARC, where $9 is used for Koha-Auth-Number by Koha, and to denote
# language by NORMARC. This concerns these fields:
# 650, 651, 652, 653, 655, 656
# For the time being, these are still indexed as Koha-Auth-Number
#
# TODO
#
# Add NORMARC-specific fields: 019, 531, 532, 539, 571, 572, 573, 574, 640
# Consider fields where NORMARC and MARC21 differ complettely: 652, 658, more?
# Consider the fields 09X, 59X, 69X, 79X, 99X
# Consider whether 246 and 510 are equvalent in NORMARC and MARC21
# NOTE: This is designed to be used with the grs.marcxml input filter
# for ISO2709 (ANSI Z39.2) or grs.xml for MARCXML-formatted records. It
# won't work for the old grs.marc input filter, which yields a different
# internal structure.
encoding utf-8
name marc21
attset bib1.att
attset gils.att
esetname F @
esetname B @
marc usmarc.mar
systag sysno rank
xpath enable
# Some notes:
# pl = Published Place
# ta = Target Audience 002/22
# ff8-23
# lf = Literary Form 008/33
# bio = Biography 008/34
# fmt = Format
# ln = Language
# ctype = Content type: review, catalog, encyclopedia, dictionary
# pubdate Publication Date
# rtype = Record type (leader 06)
#
# Date indexing in Koha 3.0 for MARC21:
# Index Expected format Notes
# date-entered-on-file [yymmdd] (008/0-5, indexed in word and sort indexes)
# copydate [yyyy] (260$c, indexed in word and sort indexes)
# acqdate [yyyy-mm-dd] (952$d, indexed in date,word,sort indexes)
# pubdate [yyyy] (008/7-10, indexed in year,word,num,sort indexes)
all any
# TODO
# melm 000 rtype:n:range(data,06,1),Bib-level:w:range(data,07,01)
xelm /record/leader llength:w:range(data,0,5),rtype:w:range(data,6,1),Bib-level:w:range(data,7,1)
# example: xelm /record/leader l1:w:range(data,0,5),l2:w:range(data,10,2)
melm 001 Control-number
# NiN melm 005 Date/time-last-modified
# TODO
melm 007 Microform-generation:n:range(data,11,1),Material-type,ff7-00:w:range(data,0,1),ff7-01:w:range(data,1,1),ff7-02:w:range(data,2,1),ff7-01-02:w:range(data,0,2)
# TODO
melm 008 date-entered-on-file:n:range(data,0,5),date-entered-on-file:s:range(data,0,5),pubdate:w:range(data,7,4),pubdate:n:range(data,7,4),pubdate:y:range(data,7,4),pubdate:s:range(data,7,4),pl:w:range(data,15,3),ta:w:range(data,22,1),ff8-23:w:range(data,23,1),ff8-29:w:range(data,29,1),lf:w:range(data,33,1),bio:w:range(data,34,1),ln:n:range(data,35,3),ctype:w:range(data,24,4),Record-source:w:range(data,39,0)
melm 010 LC-card-number,Identifier-standard
# NiN melm 011 LC-card-number,Identifier-standard
melm 015 BNB-card-number,BGF-number,Number-db,Number-natl-biblio,Identifier-standard
# NiN melm 017 Number-legal-deposit,Identifier-standard
# NiN melm 018 Identifier-standard
melm 020$a ISBN:w,Identifier-standard:w
melm 020 ISBN,Identifier-standard
melm 022$a ISSN:w,ISBN:w
melm 022 ISSN,Identifier-standard
# NiN melm 023 Identifier-standard
melm 024 Identifier-standard
melm 025 Identifier-standard
melm 027 Report-number,Identifier-standard
melm 028 Number-music-publisher,Identifier-standard
melm 030 CODEN,Identifier-standard
#melm 033 Date
# NiN melm 034 Map-scale
#melm 035 Local-number,Identifier-standard
# NiN melm 037 Identifier-standard,Stock-number
melm 040 Code-institution,Record-source
melm 041 ln
melm 043 Code-geographic
#melm 046 pubdate
# NiN melm 050$b LC-call-number:w,LC-call-number:p,LC-call-number:s
# NiN melm 050 LC-call-number:w,LC-call-number:p,LC-call-number:s
# NiN melm 052 Geographic-class
melm 060 NLM-call-number
# NiN melm 070 NAL-call-number
melm 080 UDC-classification
melm 082 Dewey-classification:w,Dewey-classification:s
# NiN melm 086 Number-govt-pub
#melm 942$k LC-card-number:s
## KOHA SPECIFIC
#melm 090$c Local-number:w
#Identifier-standard:w
melm 100$9 Cross-Reference:w,Koha-Auth-Number
melm 100$a Author,Author:p,Author:s,Editor,Author-personal-bibliography,Author-personal-bibliography:p,Author-personal-bibliography:s
melm 100 Author,Author-title,Author-name-personal,Name,Name-and-title,Personal-name
melm 110$9 Koha-Auth-Number
melm 110 Author,Author-title,Author-name-corporate,Name,Name-and-title,Corporate-name
melm 111$9 Koha-Auth-Number
melm 111 Author,Author-title,Author-name-corporate,Name,Name-and-title,Conference-name
melm 130$i Thematic-number
melm 130$n Thematic-number
melm 130$r Music-key
melm 130$9 Koha-Auth-Number
melm 130 Title,Title-uniform
melm 210 Title,Title-abbreviated
# NiN melm 211 Title,Title-abbreviated
# NiN melm 212 Title,Title-other-variant
# NiN melm 214 Title,Title-expanded
melm 222 Title,Title-key
melm 240$i Thematic-number
melm 240$r Music-key
melm 240$n Thematic-number
melm 240 Title:w,Title:p,Title-uniform
# NiN melm 243$n Thematic-number
# NiN melm 243$r Music-key
# NiN melm 243 Title:w,Title:p,Title-collective
melm 245$a Title-cover:w,Title-cover:p,Title-cover:s,Title:w,Title:p,Title:s
melm 245$c Author,Author-in-order:w,Author-in-order:p,Author-in-order:s
melm 245$9 Cross-Reference:w,Koha-Auth-Number
melm 245 Title:w,Title:p
melm 246 Title,Title:p,Title-abbreviated,Title-expanded,Title-former
# NiN melm 247 Title,Title:p,Title-former,Title-other-variant,Related-periodical
melm 260$a pl:w,pl:p
melm 260$b Publisher:w,Publisher:p
melm 260$c copydate,copydate:s
melm 260 pl
melm 300 Extent:w,Extent:p
# NiN melm 400$a Name-and-title
# NiN melm 400$t Author-title,Name-and-title,Title,Title-series
# NiN melm 400$9 Koha-Auth-Number
# NiN melm 400 Author,Author-name-personal,Name,Personal-name
# NiN melm 410 Author,Corporate-name
# NiN melm 410$a Name-and-title
# NiN melm 410$t Author-title,Title,Title-series
# NiN melm 410$9 Koha-Auth-Number
# NiN melm 410 Author-name-corporate,Name
# NiN melm 411 Author,Conference-name
# NiN melm 411$a Name-and-title
# NiN #melm 411$t title,author,Author-title,Title-series
# NiN melm 411$t Author-title,Title-series
# NiN #melm 411 author,Author-name-corporate,Name
# NiN melm 411 Author-name-corporate,Name
melm 440$a Title-series:w,Title-series:p
melm 440$9 Koha-Auth-Number
melm 440 Title-series:w,Title-series:p,Title,Title-series
melm 490$a Title-series:w,Title-series:p
melm 490 Title,Title-series
melm 490$9 Koha-Auth-Number
melm 502 Material-type
# NiN melm 505$r Author
# NiN melm 505$t Title
melm 505 Note:w,Note:p
melm 510 Indexed-by
melm 520 Abstract:w,Abstract:p
#melm 533$d pubdate,pubdate:s
#melm 541$d Date-of-acquisition,Date-of-acquisition:s
melm 600$a Name-and-title,Name,Personal-name,Subject-name-personal,Subject,Subject:p
melm 600$t Name-and-title,Title,Subject,Subject:p
melm 600$9 Koha-Auth-Number
#melm 600 Name,Personal-name,Subject-heading,Subject-name-personal
melm 600 Name,Personal-name,Subject-name-personal,Subject,Subject:p
melm 610$a Name-and-title,Subject,Subject:p
melm 610$t Name-and-title,Title,Subject,Subject:p
melm 610$9 Koha-Auth-Number
melm 610 Name,Subject,Corporate-name,Subject,Subject:p
melm 611 Conference-name,Subject,Subject:p
melm 611$a Name-and-title,Subject,Subject:p
melm 611$t Name-and-title,Title,Subject,Subject:p
melm 611$9 Koha-Auth-Number
melm 611 Name,Subject,Subject:p
melm 630$i Thematic-number,Subject,Subject:p
melm 630$n Thematic-number,Subject,Subject:p
melm 630$r Music-key,Subject,Subject:p
melm 630$9 Koha-Auth-Number
melm 630 Subject,Subject:p
melm 650$9 Koha-Auth-Number
melm 650 Subject,Subject:p
melm 651$9 Koha-Auth-Number
melm 651 Name-geographic,Subject,Subject:p
melm 652$9 Koha-Auth-Number
#melm 652 subject-heading,subject-heading:p
melm 653$9 Koha-Auth-Number
melm 653 Subject,Subject:p
melm 654$9 Koha-Auth-Number
melm 654 Subject,Subject:p
melm 655$9 Koha-Auth-Number
melm 655 Subject,Subject:p
melm 656$9 Koha-Auth-Number
melm 656 Subject,Subject:p
melm 657$9 Koha-Auth-Number
melm 657 Subject,Subject:p
melm 690$9 Koha-Auth-Number
melm 690 Subject,Subject:p
melm 700$9 Cross-Reference,Koha-Auth-Number
melm 700$a Author,Author:p
melm 700$i Thematic-number
melm 700$n Thematic-number
melm 700$r Music-key
#melm 700$t author,Author-title,Name-and-title,Title,Title-uniform
melm 700$t Author-title,Name-and-title,Title,Title-uniform
melm 700 Author,Author-name-corporate,Author-name-personal,Name,Editor,Personal-name
melm 710 Author,Corporate-name
#melm 710$t author,Author-title,Name-and-title,Title,Title-uniform
melm 710$t Author-title,Name-and-title,Title,Title-uniform
#melm 710$a author,author:p,Name-and-title
melm 710$a Name-and-title
melm 710$i Thematic-number
melm 710$9 Koha-Auth-Number
#melm 710 author,Name
melm 710 Author,Name
melm 711$a Name-and-title
#melm 711$t author,Author-title,Title,Title-uniform
melm 711$t Author-title,Title,Title-uniform
melm 711$9 Koha-Auth-Number
#melm 711 author,Author-name-corporate,Name,Conference-name
melm 711 Author-name-corporate,Name,Conference-name
melm 730$i Thematic-number
melm 730$n Thematic-number
melm 730$r Music-key
melm 730$9 Koha-Auth-Number
melm 730 Title,Title-uniform
melm 740 Title,Title-other-variant
melm 773$t Host-item
melm 780$t Title
melm 780 Title,Title-former,Related-periodical
melm 785 Related-periodical
melm 800$a Name-and-title
#melm 800$t author,Author-title,Name-and-title,Title,Title-series
melm 800$t Author-title,Name-and-title,Title,Title-series
melm 800$9 Koha-Auth-Number
melm 800 Author,Author-name-personal,Name,Personal-name
melm 810$a Name-and-title
melm 810$t Author-title,Name-and-title,Title,Title-series
melm 810$9 Koha-Auth-Number
melm 810 Author,Corporate-name,Author-name-corporate,Name
melm 811$a Name-and-title
melm 811$9 Koha-Auth-Number
#melm 811$t author,Author-title,Name-and-title,Title,Title-series
melm 811$t Author-title,Name-and-title,Title,Title-series
melm 811 Author,Author-name-corporate,Name,Conference-name
melm 830$9 Koha-Auth-Number
melm 830 Title,Title-series
# NiN melm 840 Title,Title-series
###############################
# Koha Local-Use Biblio Indexes
melm 999$c Local-Number:n,Local-Number:w,Local-Number:s
melm 999$d biblioitemnumber:n,biblioitemnumber:w,biblioitemnumber:s
melm 942$0 totalissues:n,totalissues:s
melm 942$2 cn-bib-source
melm 942$6 cn-bib-sort:n,cn-bib-sort:s
melm 942$c itemtype:w
melm 942$n Suppress:w,Suppress:n
# need to check bib1
melm 942$h cn-class
melm 942$i cn-item
melm 942$k cn-prefix
melm 942$m cn-suffix
# Items Indexes
melm 952$0 withdrawn:n,withdrawn:w
melm 952$1 lost,lost:n
melm 952$2 classification-source
melm 952$3 materials-specified
melm 952$4 damaged:n,damaged:w
melm 952$5 restricted:n,restricted:w
melm 952$6 cn-sort:n,cn-sort:s
melm 952$7 notforloan:n,notforloan:w
melm 952$8 ccode
melm 952$9 itemnumber:n,itemnumber:s
melm 952$a homebranch
melm 952$b holdingbranch
melm 952$c location
#dateaccessioned
melm 952$d Date-of-acquisition,Date-of-acquisition:d,Date-of-acquisition:s
melm 952$e acqsource
melm 952$f coded-location-qualifier
melm 952$g price
#melm 952$h
#melm 952$i
melm 952$j stack:n,stack:w
#melm 952$k
melm 952$l issues:n,issues:w,issues:s
melm 952$m renewals:n,renewals:w
melm 952$n reserves:n,reserves:w
melm 952$o Local-classification:w,Local-classification:p,Local-classification:s
melm 952$p barcode,barcode:n
melm 952$q onloan:n,onloan:w
melm 952$r datelastseen
melm 952$s datelastborrowed
melm 952$t copynumber
melm 952$u uri:u
melm 952$v replacementprice
melm 952$w replacementpricedate
#melm 952$x
melm 952$y itype:w
#melm 952$z

View File

@ -15,6 +15,21 @@
<!-- Sysprefs -->
<xsl:variable name="OPACBaseURL" select="marc:sysprefs/marc:syspref[@name='OPACBaseURL']"/>
<xsl:variable name="SubjectModifier"><xsl:if test="marc:sysprefs/marc:syspref[@name='TraceCompleteSubfields']='1'">,complete-subfield</xsl:if></xsl:variable>
<xsl:variable name="TraceSubjectSubdivisions" select="marc:sysprefs/marc:syspref[@name='TraceSubjectSubdivisions']"/>
<xsl:variable name="TracingQuotesLeft">
<xsl:choose>
<xsl:when test="marc:sysprefs/marc:syspref[@name='UseICU']='1'">{</xsl:when>
<xsl:otherwise>"</xsl:otherwise>
</xsl:choose>
</xsl:variable>
<xsl:variable name="TracingQuotesRight">
<xsl:choose>
<xsl:when test="marc:sysprefs/marc:syspref[@name='UseICU']='1'">}</xsl:when>
<xsl:otherwise>"</xsl:otherwise>
</xsl:choose>
</xsl:variable>
<xsl:variable name="DisplayOPACiconsXSLT" select="marc:sysprefs/marc:syspref[@name='DisplayOPACiconsXSLT']"/>
<xsl:variable name="leader" select="marc:leader"/>
<xsl:variable name="leader6" select="substring($leader,7,1)"/>
@ -293,16 +308,29 @@
</span>
</xsl:if>
<!-- Subjects -->
<xsl:if test="marc:datafield[substring(@tag, 1, 1) = '6']">
<span class="results_summary"><span class="label">Emner: </span>
<span class="results_summary subjects"><span class="label">Emne(r): </span>
<xsl:for-each select="marc:datafield[substring(@tag, 1, 1) = '6']">
<a>
<xsl:choose>
<xsl:when test="marc:subfield[@code=9]">
<xsl:attribute name="href">/cgi-bin/koha/catalogue/search.pl?q=an:<xsl:value-of select="marc:subfield[@code=9]"/></xsl:attribute>
<!-- Will implement this later
<xsl:when test="marc:subfield[@code=9] and $UseAuthoritiesForTracings='1'">
<xsl:attribute name="href">/cgi-bin/koha/catalogue/search.pl?q=an:<xsl:value-of select="marc:subfield[@code=9]"/></xsl:attribute>
</xsl:when>
-->
<xsl:when test="$TraceSubjectSubdivisions='1'">
<xsl:attribute name="href">/cgi-bin/koha/catalogue/search.pl?q=<xsl:call-template name="subfieldSelect">
<xsl:with-param name="codes">abcdvxyz</xsl:with-param>
<xsl:with-param name="delimeter"> AND </xsl:with-param>
<xsl:with-param name="prefix">(su<xsl:value-of select="$SubjectModifier"/>:<xsl:value-of select="$TracingQuotesLeft"/></xsl:with-param>
<xsl:with-param name="suffix"><xsl:value-of select="$TracingQuotesRight"/>)</xsl:with-param>
</xsl:call-template>
</xsl:attribute>
</xsl:when>
<xsl:otherwise>
<xsl:attribute name="href">/cgi-bin/koha/catalogue/search.pl?q=su:<xsl:value-of select="marc:subfield[@code='a']"/></xsl:attribute>
<xsl:attribute name="href">/cgi-bin/koha/catalogue/search.pl?q=su<xsl:value-of select="$SubjectModifier"/>:<xsl:value-of select="$TracingQuotesLeft"/><xsl:value-of select="marc:subfield[@code='a']"/><xsl:value-of select="$TracingQuotesRight"/></xsl:attribute>
</xsl:otherwise>
</xsl:choose>
<xsl:call-template name="chopPunctuation">
@ -313,7 +341,8 @@
<xsl:with-param name="subdivDelimiter">-- </xsl:with-param>
</xsl:call-template>
</xsl:with-param>
</xsl:call-template></a>
</xsl:call-template>
</a>
<xsl:choose>
<xsl:when test="position()=last()"></xsl:when>
<xsl:otherwise> | </xsl:otherwise>

View File

@ -24,13 +24,15 @@
<xsl:param name="delimeter"><xsl:text> </xsl:text></xsl:param>
<xsl:param name="subdivCodes"/>
<xsl:param name="subdivDelimiter"/>
<xsl:param name="prefix"/>
<xsl:param name="suffix"/>
<xsl:variable name="str">
<xsl:for-each select="marc:subfield">
<xsl:if test="contains($codes, @code)">
<xsl:if test="contains($subdivCodes, @code)">
<xsl:value-of select="$subdivDelimiter"/>
</xsl:if>
<xsl:value-of select="text()"/><xsl:value-of select="$delimeter"/>
<xsl:value-of select="$prefix"/><xsl:value-of select="text()"/><xsl:value-of select="$suffix"/><xsl:value-of select="$delimeter"/>
</xsl:if>
</xsl:for-each>
</xsl:variable>

View File

@ -16,7 +16,22 @@
<xsl:template match="marc:record">
<xsl:variable name="DisplayOPACiconsXSLT" select="marc:sysprefs/marc:syspref[@name='DisplayOPACiconsXSLT']"/>
<!-- Sysprefs -->
<xsl:variable name="SubjectModifier"><xsl:if test="marc:sysprefs/marc:syspref[@name='TraceCompleteSubfields']='1'">,complete-subfield</xsl:if></xsl:variable>
<xsl:variable name="TraceSubjectSubdivisions" select="marc:sysprefs/marc:syspref[@name='TraceSubjectSubdivisions']"/>
<xsl:variable name="TracingQuotesLeft">
<xsl:choose>
<xsl:when test="marc:sysprefs/marc:syspref[@name='UseICU']='1'">{</xsl:when>
<xsl:otherwise>"</xsl:otherwise>
</xsl:choose>
</xsl:variable>
<xsl:variable name="TracingQuotesRight">
<xsl:choose>
<xsl:when test="marc:sysprefs/marc:syspref[@name='UseICU']='1'">}</xsl:when>
<xsl:otherwise>"</xsl:otherwise>
</xsl:choose>
</xsl:variable>
<xsl:variable name="DisplayOPACiconsXSLT" select="marc:sysprefs/marc:syspref[@name='DisplayOPACiconsXSLT']"/>
<xsl:variable name="leader" select="marc:leader"/>
<xsl:variable name="leader6" select="substring($leader,7,1)"/>
@ -295,16 +310,29 @@
</span>
</xsl:if>
<!-- Subjects -->
<xsl:if test="marc:datafield[substring(@tag, 1, 1) = '6']">
<span class="results_summary"><span class="label">Emner: </span>
<span class="results_summary subjects"><span class="label">Emne(r): </span>
<xsl:for-each select="marc:datafield[substring(@tag, 1, 1) = '6']">
<a>
<xsl:choose>
<xsl:when test="marc:subfield[@code=9]">
<xsl:attribute name="href">/cgi-bin/koha/opac-search.pl?q=an:<xsl:value-of select="marc:subfield[@code=9]"/></xsl:attribute>
<!-- Will implement this later
<xsl:when test="marc:subfield[@code=9] and $UseAuthoritiesForTracings='1'">
<xsl:attribute name="href">/cgi-bin/koha/opac-search.pl?q=an:<xsl:value-of select="marc:subfield[@code=9]"/></xsl:attribute>
</xsl:when>
-->
<xsl:when test="$TraceSubjectSubdivisions='1'">
<xsl:attribute name="href">/cgi-bin/koha/opac-search.pl?q=<xsl:call-template name="subfieldSelect">
<xsl:with-param name="codes">abcdvxyz</xsl:with-param>
<xsl:with-param name="delimeter"> AND </xsl:with-param>
<xsl:with-param name="prefix">(su<xsl:value-of select="$SubjectModifier"/>:<xsl:value-of select="$TracingQuotesLeft"/></xsl:with-param>
<xsl:with-param name="suffix"><xsl:value-of select="$TracingQuotesRight"/>)</xsl:with-param>
</xsl:call-template>
</xsl:attribute>
</xsl:when>
<xsl:otherwise>
<xsl:attribute name="href">/cgi-bin/koha/opac-search.pl?q=su:<xsl:value-of select="marc:subfield[@code='a']"/></xsl:attribute>
<xsl:attribute name="href">/cgi-bin/koha/opac-search.pl?q=su<xsl:value-of select="$SubjectModifier"/>:<xsl:value-of select="$TracingQuotesLeft"/><xsl:value-of select="marc:subfield[@code='a']"/><xsl:value-of select="$TracingQuotesRight"/></xsl:attribute>
</xsl:otherwise>
</xsl:choose>
<xsl:call-template name="chopPunctuation">
@ -315,7 +343,8 @@
<xsl:with-param name="subdivDelimiter">-- </xsl:with-param>
</xsl:call-template>
</xsl:with-param>
</xsl:call-template></a>
</xsl:call-template>
</a>
<xsl:choose>
<xsl:when test="position()=last()"></xsl:when>
<xsl:otherwise> | </xsl:otherwise>

View File

@ -25,13 +25,15 @@
<xsl:param name="delimeter"><xsl:text> </xsl:text></xsl:param>
<xsl:param name="subdivCodes"/>
<xsl:param name="subdivDelimiter"/>
<xsl:param name="prefix"/>
<xsl:param name="suffix"/>
<xsl:variable name="str">
<xsl:for-each select="marc:subfield">
<xsl:if test="contains($codes, @code)">
<xsl:if test="contains($subdivCodes, @code)">
<xsl:value-of select="$subdivDelimiter"/>
</xsl:if>
<xsl:value-of select="text()"/><xsl:value-of select="$delimeter"/>
<xsl:value-of select="$prefix"/><xsl:value-of select="text()"/><xsl:value-of select="$suffix"/><xsl:value-of select="$delimeter"/>
</xsl:if>
</xsl:for-each>
</xsl:variable>