Bug 14377 - Don't replace 942$n with authorised value except when using UNIMARC

Signed-off-by: Marcel de Rooy <m.de.rooy@rijksmuseum.nl>

Signed-off-by: Kyle M Hall <kyle@bywatersolutions.com>
This commit is contained in:
Kyle M Hall 2016-04-18 17:28:36 +00:00
parent aa64000df5
commit f474ca5095
3 changed files with 17 additions and 7 deletions

View File

@ -75,6 +75,7 @@ sub transformMARCXML4XSLT {
@fields = $record->fields();
};
if ($@) { warn "PROBLEM WITH RECORD"; next; }
my $marcflavour = C4::Context->preference('marcflavour');
my $av = getAuthorisedValues4MARCSubfields($frameworkcode);
foreach my $tag ( keys %$av ) {
foreach my $field ( $record->field( $tag ) ) {
@ -82,8 +83,11 @@ sub transformMARCXML4XSLT {
my @new_subfields = ();
for my $subfield ( $field->subfields() ) {
my ( $letter, $value ) = @$subfield;
$value = GetAuthorisedValueDesc( $tag, $letter, $value, '', $tagslib )
if $av->{ $tag }->{ $letter };
# Replace the field value with the authorised value *except* for 942$n ( record supression )
if ( $tag ne '942' && $subfield ne 'n' && $marcflavour ne 'UNIMARC' ) {
$value = GetAuthorisedValueDesc( $tag, $letter, $value, '', $tagslib )
if $av->{ $tag }->{ $letter };
}
push( @new_subfields, $letter, $value );
}
$field ->replace_with( MARC::Field->new(
@ -206,7 +210,7 @@ sub XSLTParse4Display {
UseControlNumber IntranetBiblioDefaultView BiblioDefaultView
OPACItemLocation DisplayIconsXSLT
AlternateHoldingsField AlternateHoldingsSeparator
TrackClicks opacthemes IdRef / )
TrackClicks opacthemes IdRefi OpacSuppression / )
{
my $sp = C4::Context->preference( $syspref );
next unless defined($sp);

View File

@ -27,6 +27,7 @@
<xsl:variable name="TraceSubjectSubdivisions" select="marc:sysprefs/marc:syspref[@name='TraceSubjectSubdivisions']"/>
<xsl:variable name="Show856uAsImage" select="marc:sysprefs/marc:syspref[@name='Display856uAsImage']"/>
<xsl:variable name="DisplayIconsXSLT" select="marc:sysprefs/marc:syspref[@name='DisplayIconsXSLT']"/>
<xsl:variable name="OpacSuppression" select="marc:sysprefs/marc:syspref[@name='OpacSuppression']"/>
<xsl:variable name="TracingQuotesLeft">
<xsl:choose>
<xsl:when test="marc:sysprefs/marc:syspref[@name='UseICU']='1'">{</xsl:when>
@ -91,8 +92,10 @@
</xsl:variable>
<!-- Indicate if record is suppressed in OPAC -->
<xsl:if test="marc:datafield[@tag=942][marc:subfield[@code='n'] = '1']">
<span class="results_summary suppressed_opac"><xsl:value-of select="concat('#',marc:datafield[@tag=999]/marc:subfield[@code='c'])"/> - Suppressed in OPAC</span>
<xsl:if test="$OpacSuppression = 1">
<xsl:if test="marc:datafield[@tag=942][marc:subfield[@code='n'] = '1']">
<span class="results_summary suppressed_opac"><xsl:value-of select="concat('#',marc:datafield[@tag=999]/marc:subfield[@code='c'])"/> - Suppressed in OPAC</span>
</xsl:if>
</xsl:if>
<!-- Title Statement -->

View File

@ -28,6 +28,7 @@
<xsl:variable name="UseAuthoritiesForTracings" select="marc:sysprefs/marc:syspref[@name='UseAuthoritiesForTracings']"/>
<xsl:variable name="DisplayIconsXSLT" select="marc:sysprefs/marc:syspref[@name='DisplayIconsXSLT']"/>
<xsl:variable name="IntranetBiblioDefaultView" select="marc:sysprefs/marc:syspref[@name='IntranetBiblioDefaultView']"/>
<xsl:variable name="OpacSuppression" select="marc:sysprefs/marc:syspref[@name='OpacSuppression']"/>
<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)"/>
@ -282,8 +283,10 @@
</xsl:variable>
<!-- Indicate if record is suppressed in OPAC -->
<xsl:if test="marc:datafield[@tag=942][marc:subfield[@code='n'] = '1']">
<span class="results_summary suppressed_opac"><xsl:value-of select="concat('#',marc:datafield[@tag=999]/marc:subfield[@code='c'])"/> - Suppressed in OPAC</span>
<xsl:if test="$OpacSuppression = 1">
<xsl:if test="marc:datafield[@tag=942][marc:subfield[@code='n'] = '1']">
<span class="results_summary suppressed_opac"><xsl:value-of select="concat('#',marc:datafield[@tag=999]/marc:subfield[@code='c'])"/> - Suppressed in OPAC</span>
</xsl:if>
</xsl:if>
<!-- Title Statement: Alternate Graphic Representation (MARC 880) -->