Bug 4276: XSLT subject tracings only use subfield a
When XSLT is enabled, the subject tracings on the details view (both OPAC and Intranet) previously only searched on the subfield 'a'. In addition, searches failed when the tracing included parentheses, and the XSLT display did not include subfields other than abcdvxyz, even for those 6xx tags that have other subfields. This patch adds a syspref: TraceSubjectSubdivisons. When TraceSubjectSubdivisions is set to "Don't include" (default), the subject tracings in the XSLT details view will only search on subfield 'a'. When TraceSubjectSubdivisions is set to "Include", the subject tracings will search on all subfields, not just subfield 'a'. Signed-off-by: Nicole C. Engard <nengard@bywatersolutions.com> Signed-off-by: Chris Cormack <chrisc@catalyst.net.nz>
This commit is contained in:
parent
a4b2280b6b
commit
36ca010cc4
14 changed files with 52 additions and 9 deletions
|
@ -131,7 +131,7 @@ sub XSLTParse4Display {
|
|||
foreach my $syspref ( qw/ hidelostitems OPACURLOpenInNewWindow
|
||||
DisplayOPACiconsXSLT URLLinkText viewISBD
|
||||
OPACBaseURL TraceCompleteSubfields
|
||||
UseAuthoritiesForTracings / )
|
||||
UseAuthoritiesForTracings TraceSubjectSubdivisions / )
|
||||
{
|
||||
my $sp = C4::Context->preference( $syspref );
|
||||
next unless defined($sp);
|
||||
|
|
|
@ -298,4 +298,4 @@ INSERT INTO `systempreferences` (variable,value,explanation,options,type) VALUES
|
|||
INSERT INTO systempreferences (variable,value,explanation,options,type) VALUES ('AllowPurchaseSuggestionBranchChoice', 0, 'Allow user to choose branch when making a purchase suggestion','1','YesNo ');
|
||||
INSERT INTO `systempreferences` (variable,value,explanation,options,type) VALUES('OpacFavicon','','Enter a complete URL to an image to replace the default Koha favicon on the OPAC','','free');
|
||||
INSERT INTO `systempreferences` (variable,value,explanation,options,type) VALUES('IntranetFavicon','','Enter a complete URL to an image to replace the default Koha favicon on the Staff client','','free');
|
||||
|
||||
INSERT INTO systempreferences (variable,value,explanation,options,type) VALUES ('TraceSubjectSubdivisions', '0', 'Create searches on all subdivisions for subject tracings.','1','YesNo');
|
||||
|
|
|
@ -298,4 +298,4 @@ INSERT INTO `systempreferences` (variable,value,explanation,options,type) VALUES
|
|||
INSERT INTO systempreferences (variable,value,explanation,options,type) VALUES ('AllowPurchaseSuggestionBranchChoice', 0, 'Allow user to choose branch when making a purchase suggestion','1','YesNo');
|
||||
INSERT INTO `systempreferences` (variable,value,explanation,options,type) VALUES('OpacFavicon','','Enter a complete URL to an image to replace the default Koha favicon on the OPAC','','free');
|
||||
INSERT INTO `systempreferences` (variable,value,explanation,options,type) VALUES('IntranetFavicon','','Enter a complete URL to an image to replace the default Koha favicon on the Staff client','','free');
|
||||
|
||||
INSERT INTO systempreferences (variable,value,explanation,options,type) VALUES ('TraceSubjectSubdivisions', '0', 'Create searches on all subdivisions for subject tracings.','1','YesNo');
|
||||
|
|
|
@ -300,4 +300,5 @@ INSERT INTO `systempreferences` (variable,value,explanation,options,type) VALUES
|
|||
INSERT INTO systempreferences (variable,value,explanation,options,type) VALUES ('AllowPurchaseSuggestionBranchChoice', 0, 'Allow user to choose branch when making a purchase suggestion','1','YesNo');
|
||||
INSERT INTO `systempreferences` (variable,value,explanation,options,type) VALUES('OpacFavicon','','Enter a complete URL to an image to replace the default Koha favicon on the OPAC','','free');
|
||||
INSERT INTO `systempreferences` (variable,value,explanation,options,type) VALUES('IntranetFavicon','','Enter a complete URL to an image to replace the default Koha favicon on the Staff client','','free');
|
||||
INSERT INTO systempreferences (variable,value,explanation,options,type) VALUES ('TraceSubjectSubdivisions', '0', 'Create searches on all subdivisions for subject tracings.','1','YesNo');
|
||||
|
||||
|
|
|
@ -285,3 +285,4 @@ INSERT INTO `systempreferences` (variable,value,explanation,options,type) VALUES
|
|||
INSERT INTO systempreferences (variable,value,explanation,options,type) VALUES ('AllowPurchaseSuggestionBranchChoice', 0, 'Allow user to choose branch when making a purchase suggestion','1','YesNo');
|
||||
INSERT INTO `systempreferences` (variable,value,explanation,options,type) VALUES('OpacFavicon','','Enter a complete URL to an image to replace the default Koha favicon on the OPAC','','free');
|
||||
INSERT INTO `systempreferences` (variable,value,explanation,options,type) VALUES('IntranetFavicon','','Enter a complete URL to an image to replace the default Koha favicon on the Staff client','','free');
|
||||
INSERT INTO systempreferences (variable,value,explanation,options,type) VALUES ('TraceSubjectSubdivisions', '0', 'Create searches on all subdivisions for subject tracings.','1','YesNo');
|
|
@ -297,3 +297,4 @@ INSERT INTO `systempreferences` (variable,value,explanation,options,type) VALUES
|
|||
INSERT INTO systempreferences (variable,value,explanation,options,type) VALUES ('AllowPurchaseSuggestionBranchChoice', 0, 'Allow user to choose branch when making a purchase suggestion','1','YesNo');
|
||||
INSERT INTO `systempreferences` (variable,value,explanation,options,type) VALUES('OpacFavicon','','Enter a complete URL to an image to replace the default Koha favicon on the OPAC','','free');
|
||||
INSERT INTO `systempreferences` (variable,value,explanation,options,type) VALUES('IntranetFavicon','','Enter a complete URL to an image to replace the default Koha favicon on the Staff client','','free');
|
||||
INSERT INTO systempreferences (variable,value,explanation,options,type) VALUES ('TraceSubjectSubdivisions', '0', 'Create searches on all subdivisions for subject tracings.','1','YesNo');
|
||||
|
|
|
@ -352,3 +352,4 @@ INSERT INTO `systempreferences` (variable,value,explanation,options,type) VALUES
|
|||
INSERT INTO systempreferences (variable,value,explanation,options,type) VALUES ('AllowPurchaseSuggestionBranchChoice', 0, 'Allow user to choose branch when making a purchase suggestion','1','YesNo');
|
||||
INSERT INTO `systempreferences` (variable,value,explanation,options,type) VALUES('OpacFavicon','','Enter a complete URL to an image to replace the default Koha favicon on the OPAC','','free');
|
||||
INSERT INTO `systempreferences` (variable,value,explanation,options,type) VALUES('IntranetFavicon','','Enter a complete URL to an image to replace the default Koha favicon on the Staff client','','free');
|
||||
INSERT INTO systempreferences (variable,value,explanation,options,type) VALUES ('TraceSubjectSubdivisions', '0', 'Create searches on all subdivisions for subject tracings.','1','YesNo');
|
|
@ -377,3 +377,4 @@ INSERT INTO `systempreferences` (variable,value,explanation,options,type) VALUES
|
|||
INSERT INTO systempreferences (variable,value,explanation,options,type) VALUES ('AllowPurchaseSuggestionBranchChoice', 0, 'Allow user to choose branch when making a purchase suggestion','1','YesNo');
|
||||
INSERT INTO `systempreferences` (variable,value,explanation,options,type) VALUES('OpacFavicon','','Enter a complete URL to an image to replace the default Koha favicon on the OPAC','','free');
|
||||
INSERT INTO `systempreferences` (variable,value,explanation,options,type) VALUES('IntranetFavicon','','Enter a complete URL to an image to replace the default Koha favicon on the Staff client','','free');
|
||||
INSERT INTO systempreferences (variable,value,explanation,options,type) VALUES ('TraceSubjectSubdivisions', '0', 'Create searches on all subdivisions for subject tracings.','1','YesNo');
|
||||
|
|
|
@ -4124,6 +4124,13 @@ $DBversion = "3.03.00.031";
|
|||
if (C4::Context->preference("Version") < TransformToNum($DBversion)) {
|
||||
$dbh->do("INSERT INTO `systempreferences` (variable,value,explanation,options,type) VALUES('FineNotifyAtCheckin',0,'If ON notify librarians of overdue fines on the items they are checking in.',NULL,'YesNo');");
|
||||
print "Upgrade to $DBversion done (Add syspref FineNotifyAtCheckin)\n";
|
||||
SetVersion ($DBversion);
|
||||
}
|
||||
|
||||
$DBversion = 'XXX';
|
||||
if (C4::Context->preference("Version") < TransformToNum($DBversion)) {
|
||||
$dbh->do("INSERT INTO systempreferences (variable,value,explanation,options,type) VALUES ('TraceSubjectSubdivisions', 1, 'Create searches on all subdivisions for subject tracings.','1','YesNo')");
|
||||
print "Upgrade to $DBversion done ( include subdivisions when generating subject tracing searches )\n";
|
||||
SetVersion ($DBversion);
|
||||
}
|
||||
|
||||
|
|
|
@ -62,6 +62,13 @@ Searching:
|
|||
yes: Force
|
||||
no: "Don't force"
|
||||
- subject tracings in the OPAC and Staff Client to search only for complete-subfield matches.
|
||||
-
|
||||
- pref: TraceSubjectSubdivisions
|
||||
default: 0
|
||||
choices:
|
||||
yes: Include
|
||||
no: "Don't include"
|
||||
- subdivisions for searches generated by clicking on subject tracings.
|
||||
Search Form:
|
||||
-
|
||||
- Show checkboxes to search by
|
||||
|
|
|
@ -21,6 +21,7 @@
|
|||
<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="UseAuthoritiesForTracings" select="marc:sysprefs/marc:syspref[@name='UseAuthoritiesForTracings']"/>
|
||||
<xsl:variable name="TraceSubjectSubdivisions" select="marc:sysprefs/marc:syspref[@name='TraceSubjectSubdivisions']"/>
|
||||
|
||||
<xsl:variable name="leader" select="marc:leader"/>
|
||||
<xsl:variable name="leader6" select="substring($leader,7,1)"/>
|
||||
|
@ -421,14 +422,23 @@
|
|||
<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">abcdfgklmnopqrstvxyz</xsl:with-param>
|
||||
<xsl:with-param name="delimeter"> and </xsl:with-param>
|
||||
<xsl:with-param name="prefix">(su<xsl:value-of select="$SubjectModifier"/>:"</xsl:with-param>
|
||||
<xsl:with-param name="suffix">")</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="$SubjectModifier"/>:<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="marc:subfield[@code='a']"/>"</xsl:attribute>
|
||||
</xsl:otherwise>
|
||||
</xsl:choose>
|
||||
<xsl:call-template name="chopPunctuation">
|
||||
<xsl:with-param name="chopString">
|
||||
<xsl:call-template name="subfieldSelect">
|
||||
<xsl:with-param name="codes">abcdtvxyz</xsl:with-param>
|
||||
<xsl:with-param name="codes">abcdfgklmnopqrstvxyz</xsl:with-param>
|
||||
<xsl:with-param name="subdivCodes">vxyz</xsl:with-param>
|
||||
<xsl:with-param name="subdivDelimiter">-- </xsl:with-param>
|
||||
</xsl:call-template>
|
||||
|
|
|
@ -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>
|
||||
|
|
|
@ -25,6 +25,7 @@
|
|||
|
||||
<xsl:variable name="SubjectModifier"><xsl:if test="marc:sysprefs/marc:syspref[@name='TraceCompleteSubfields']='1'">,complete-subfield</xsl:if></xsl:variable>
|
||||
<xsl:variable name="UseAuthoritiesForTracings" select="marc:sysprefs/marc:syspref[@name='UseAuthoritiesForTracings']"/>
|
||||
<xsl:variable name="TraceSubjectSubdivisions" select="marc:sysprefs/marc:syspref[@name='TraceSubjectSubdivisions']"/>
|
||||
<xsl:variable name="leader" select="marc:leader"/>
|
||||
<xsl:variable name="leader6" select="substring($leader,7,1)"/>
|
||||
<xsl:variable name="leader7" select="substring($leader,8,1)"/>
|
||||
|
@ -478,14 +479,23 @@
|
|||
<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">abcdfgklmnopqrstvxyz</xsl:with-param>
|
||||
<xsl:with-param name="delimeter"> and </xsl:with-param>
|
||||
<xsl:with-param name="prefix">(su<xsl:value-of select="$SubjectModifier"/>:"</xsl:with-param>
|
||||
<xsl:with-param name="suffix">")</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="$SubjectModifier"/>:<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="marc:subfield[@code='a']"/>"</xsl:attribute>
|
||||
</xsl:otherwise>
|
||||
</xsl:choose>
|
||||
<xsl:call-template name="chopPunctuation">
|
||||
<xsl:with-param name="chopString">
|
||||
<xsl:call-template name="subfieldSelect">
|
||||
<xsl:with-param name="codes">abcdtvxyz</xsl:with-param>
|
||||
<xsl:with-param name="codes">abcdfgklmnopqrstvxyz</xsl:with-param>
|
||||
<xsl:with-param name="subdivCodes">vxyz</xsl:with-param>
|
||||
<xsl:with-param name="subdivDelimiter">-- </xsl:with-param>
|
||||
</xsl:call-template>
|
||||
|
|
|
@ -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>
|
||||
|
|
Loading…
Reference in a new issue