Merge remote branch 'kc/new/enh/bug_4421' into kcmaster
Conflicts: C4/XSLT.pm installer/data/mysql/fr-FR/1-Obligatoire/unimarc_standard_systemprefs.sql installer/data/mysql/it-IT/necessari/sysprefs.sql installer/data/mysql/ru-RU/mandatory/system_preferences_full_optimal_for_install_only.sql installer/data/mysql/updatedatabase.pl
This commit is contained in:
commit
75aa5398c5
18 changed files with 167 additions and 7 deletions
29
C4/Search.pm
29
C4/Search.pm
|
@ -1748,6 +1748,35 @@ sub searchResults {
|
|||
$oldbiblio->{orderedcount} = $ordered_count;
|
||||
$oldbiblio->{isbn} =~
|
||||
s/-//g; # deleting - in isbn to enable amazon content
|
||||
|
||||
if (C4::Context->preference("AlternateHoldingsField") && $items_count == 0) {
|
||||
my $fieldspec = C4::Context->preference("AlternateHoldingsField");
|
||||
my $subfields = substr $fieldspec, 3;
|
||||
my $holdingsep = C4::Context->preference("AlternateHoldingsSeparator") || ' ';
|
||||
my @alternateholdingsinfo = ();
|
||||
my @holdingsfields = $marcrecord->field(substr $fieldspec, 0, 3);
|
||||
my $alternateholdingscount = 0;
|
||||
|
||||
for my $field (@holdingsfields) {
|
||||
my %holding = ( holding => '' );
|
||||
my $havesubfield = 0;
|
||||
for my $subfield ($field->subfields()) {
|
||||
if ((index $subfields, $$subfield[0]) >= 0) {
|
||||
$holding{'holding'} .= $holdingsep if (length $holding{'holding'} > 0);
|
||||
$holding{'holding'} .= $$subfield[1];
|
||||
$havesubfield++;
|
||||
}
|
||||
}
|
||||
if ($havesubfield) {
|
||||
push(@alternateholdingsinfo, \%holding);
|
||||
$alternateholdingscount++;
|
||||
}
|
||||
}
|
||||
|
||||
$oldbiblio->{'ALTERNATEHOLDINGS'} = \@alternateholdingsinfo;
|
||||
$oldbiblio->{'alternateholdings_count'} = $alternateholdingscount;
|
||||
}
|
||||
|
||||
push( @newresults, $oldbiblio )
|
||||
if(not $hidelostitems
|
||||
or (($items_count > $itemlost_count )
|
||||
|
|
|
@ -2,6 +2,8 @@ package C4::XSLT;
|
|||
# Copyright (C) 2006 LibLime
|
||||
# <jmf at liblime dot com>
|
||||
# Parts Copyright Katrin Fischer 2011
|
||||
# Parts Copyright ByWater Solutions 2011
|
||||
#
|
||||
# This file is part of Koha.
|
||||
#
|
||||
# Koha is free software; you can redistribute it and/or modify it under the
|
||||
|
@ -133,7 +135,8 @@ sub XSLTParse4Display {
|
|||
OPACBaseURL TraceCompleteSubfields
|
||||
UseAuthoritiesForTracings TraceSubjectSubdivisions
|
||||
Display856uAsImage OPACDisplay856uAsImage
|
||||
UseControlNumber / )
|
||||
UseControlNumber
|
||||
AlternateHoldingsField AlternateHoldingsSeparator / )
|
||||
{
|
||||
my $sp = C4::Context->preference( $syspref );
|
||||
next unless defined($sp);
|
||||
|
|
|
@ -246,6 +246,33 @@ $template->param(
|
|||
C4::Search::enabled_staff_search_views,
|
||||
);
|
||||
|
||||
if (C4::Context->preference("AlternateHoldingsField") && scalar @items == 0) {
|
||||
my $fieldspec = C4::Context->preference("AlternateHoldingsField");
|
||||
my $subfields = substr $fieldspec, 3;
|
||||
my $holdingsep = C4::Context->preference("AlternateHoldingsSeparator") || ' ';
|
||||
my @alternateholdingsinfo = ();
|
||||
my @holdingsfields = $record->field(substr $fieldspec, 0, 3);
|
||||
|
||||
for my $field (@holdingsfields) {
|
||||
my %holding = ( holding => '' );
|
||||
my $havesubfield = 0;
|
||||
for my $subfield ($field->subfields()) {
|
||||
if ((index $subfields, $$subfield[0]) >= 0) {
|
||||
$holding{'holding'} .= $holdingsep if (length $holding{'holding'} > 0);
|
||||
$holding{'holding'} .= $$subfield[1];
|
||||
$havesubfield++;
|
||||
}
|
||||
}
|
||||
if ($havesubfield) {
|
||||
push(@alternateholdingsinfo, \%holding);
|
||||
}
|
||||
}
|
||||
|
||||
$template->param(
|
||||
ALTERNATEHOLDINGS => \@alternateholdingsinfo,
|
||||
);
|
||||
}
|
||||
|
||||
my @results = ( $dat, );
|
||||
foreach ( keys %{$dat} ) {
|
||||
$template->param( "$_" => defined $dat->{$_} ? $dat->{$_} : '' );
|
||||
|
|
|
@ -306,3 +306,6 @@ INSERT INTO systempreferences (variable,value,explanation,options,type) VALUES (
|
|||
INSERT INTO `systempreferences` (variable,value,explanation,options,type) VALUES('StaffAuthorisedValueImages','1','',NULL,'YesNo');
|
||||
INSERT INTO `systempreferences` (variable,value,explanation,options,type) VALUES('OPACDisplay856uAsImage','OFF','Display the URI in the 856u field as an image, the corresponding OPACXSLT option must be on','OFF|Details|Results|Both','Choice');
|
||||
INSERT INTO `systempreferences` (variable,value,explanation,options,type) VALUES('Display856uAsImage','OFF','Display the URI in the 856u field as an image, the corresponding Staff Client XSLT option must be on','OFF|Details|Results|Both','Choice');
|
||||
INSERT INTO `systempreferences` (variable,value,explanation,options,type) VALUES('AlternateHoldingsField','','The MARC field/subfield that contains alternate holdings information for bibs taht do not have items attached (e.g. 852abchi for libraries converting from MARC Magician).',NULL,'free');
|
||||
INSERT INTO `systempreferences` (variable,value,explanation,options,type) VALUES('AlternateHoldingsSeparator','','The string to use to separate subfields in alternate holdings displays.',NULL,'free');
|
||||
|
||||
|
|
|
@ -306,3 +306,6 @@ INSERT INTO systempreferences (variable,value,explanation,options,type) VALUES (
|
|||
INSERT INTO `systempreferences` (variable,value,explanation,options,type) VALUES('StaffAuthorisedValueImages','1','',NULL,'YesNo');
|
||||
INSERT INTO `systempreferences` (variable,value,explanation,options,type) VALUES('OPACDisplay856uAsImage','OFF','Display the URI in the 856u field as an image, the corresponding OPACXSLT option must be on','OFF|Details|Results|Both','Choice');
|
||||
INSERT INTO `systempreferences` (variable,value,explanation,options,type) VALUES('Display856uAsImage','OFF','Display the URI in the 856u field as an image, the corresponding Staff Client XSLT option must be on','OFF|Details|Results|Both','Choice');
|
||||
INSERT INTO `systempreferences` (variable,value,explanation,options,type) VALUES('AlternateHoldingsField','','The MARC field/subfield that contains alternate holdings information for bibs taht do not have items attached (e.g. 852abchi for libraries converting from MARC Magician).',NULL,'free');
|
||||
INSERT INTO `systempreferences` (variable,value,explanation,options,type) VALUES('AlternateHoldingsSeparator','','The string to use to separate subfields in alternate holdings displays.',NULL,'free');
|
||||
|
||||
|
|
|
@ -308,4 +308,6 @@ INSERT INTO `systempreferences` (variable,value,explanation,options,type) VALUES
|
|||
INSERT INTO `systempreferences` (variable,value,explanation,options,type) VALUES('OPACDisplay856uAsImage','OFF','Display the URI in the 856u field as an image, the corresponding OPACXSLT option must be on','OFF|Details|Results|Both','Choice');
|
||||
INSERT INTO `systempreferences` (variable,value,explanation,options,type) VALUES('Display856uAsImage','OFF','Display the URI in the 856u field as an image, the corresponding Staff Client XSLT option must be on','OFF|Details|Results|Both','Choice');
|
||||
INSERT INTO `systempreferences` (variable,value,explanation,options,type) VALUES('UseControlNumber',0,'If ON, record control number (w subfields) and control number (001) are used for linking of bibliographic records.','','YesNo');
|
||||
INSERT INTO `systempreferences` (variable,value,explanation,options,type) VALUES('AlternateHoldingsField','','The MARC field/subfield that contains alternate holdings information for bibs taht do not have items attached (e.g. 852abchi for libraries converting from MARC Magician).',NULL,'free');
|
||||
INSERT INTO `systempreferences` (variable,value,explanation,options,type) VALUES('AlternateHoldingsSeparator','','The string to use to separate subfields in alternate holdings displays.',NULL,'free');
|
||||
|
||||
|
|
|
@ -293,3 +293,5 @@ INSERT INTO `systempreferences` (variable,value,explanation,options,type) VALUES
|
|||
INSERT INTO `systempreferences` (variable,value,explanation,options,type) VALUES('OPACDisplay856uAsImage','OFF','Display the URI in the 856u field as an image, the corresponding OPACXSLT option must be on','OFF|Details|Results|Both','Choice');
|
||||
INSERT INTO `systempreferences` (variable,value,explanation,options,type) VALUES('Display856uAsImage','OFF','Display the URI in the 856u field as an image, the corresponding Staff Client XSLT option must be on','OFF|Details|Results|Both','Choice');
|
||||
INSERT INTO `systempreferences` (variable,value,explanation,options,type) VALUES('UseControlNumber',0,'If ON, record control number (w subfields) and control number (001) are used for linking of bibliographic records.','','YesNo');
|
||||
INSERT INTO `systempreferences` (variable,value,explanation,options,type) VALUES('AlternateHoldingsField','','The MARC field/subfield that contains alternate holdings information for bibs taht do not have items attached (e.g. 852abchi for libraries converting from MARC Magician).',NULL,'free');
|
||||
INSERT INTO `systempreferences` (variable,value,explanation,options,type) VALUES('AlternateHoldingsSeparator','','The string to use to separate subfields in alternate holdings displays.',NULL,'free');
|
|
@ -305,3 +305,6 @@ INSERT INTO systempreferences (variable,value,explanation,options,type) VALUES (
|
|||
INSERT INTO `systempreferences` (variable,value,explanation,options,type) VALUES('StaffAuthorisedValueImages','1','',NULL,'YesNo');
|
||||
INSERT INTO `systempreferences` (variable,value,explanation,options,type) VALUES('OPACDisplay856uAsImage','OFF','Display the URI in the 856u field as an image, the corresponding OPACXSLT option must be on','OFF|Details|Results|Both','Choice');
|
||||
INSERT INTO `systempreferences` (variable,value,explanation,options,type) VALUES('Display856uAsImage','OFF','Display the URI in the 856u field as an image, the corresponding Staff Client XSLT option must be on','OFF|Details|Results|Both','Choice');
|
||||
INSERT INTO `systempreferences` (variable,value,explanation,options,type) VALUES('AlternateHoldingsField','','The MARC field/subfield that contains alternate holdings information for bibs taht do not have items attached (e.g. 852abchi for libraries converting from MARC Magician).',NULL,'free');
|
||||
INSERT INTO `systempreferences` (variable,value,explanation,options,type) VALUES('AlternateHoldingsSeparator','','The string to use to separate subfields in alternate holdings displays.',NULL,'free');
|
||||
|
||||
|
|
|
@ -360,4 +360,5 @@ INSERT INTO systempreferences (variable,value,explanation,options,type) VALUES (
|
|||
INSERT INTO `systempreferences` (variable,value,explanation,options,type) VALUES('StaffAuthorisedValueImages','1','',NULL,'YesNo');
|
||||
INSERT INTO `systempreferences` (variable,value,explanation,options,type) VALUES('OPACDisplay856uAsImage','OFF','Display the URI in the 856u field as an image, the corresponding OPACXSLT option must be on','OFF|Details|Results|Both','Choice');
|
||||
INSERT INTO `systempreferences` (variable,value,explanation,options,type) VALUES('Display856uAsImage','OFF','Display the URI in the 856u field as an image, the corresponding Staff Client XSLT option must be on','OFF|Details|Results|Both','Choice');
|
||||
|
||||
INSERT INTO `systempreferences` (variable,value,explanation,options,type) VALUES('AlternateHoldingsField','','The MARC field/subfield that contains alternate holdings information for bibs taht do not have items attached (e.g. 852abchi for libraries converting from MARC Magician).',NULL,'free');
|
||||
INSERT INTO `systempreferences` (variable,value,explanation,options,type) VALUES('AlternateHoldingsSeparator','','The string to use to separate subfields in alternate holdings displays.',NULL,'free');
|
||||
|
|
|
@ -385,3 +385,5 @@ INSERT INTO systempreferences (variable,value,explanation,options,type) VALUES (
|
|||
INSERT INTO `systempreferences` (variable,value,explanation,options,type) VALUES('StaffAuthorisedValueImages','1','',NULL,'YesNo');
|
||||
INSERT INTO `systempreferences` (variable,value,explanation,options,type) VALUES('OPACDisplay856uAsImage','OFF','Display the URI in the 856u field as an image, the corresponding OPACXSLT option must be on','OFF|Details|Results|Both','Choice');
|
||||
INSERT INTO `systempreferences` (variable,value,explanation,options,type) VALUES('Display856uAsImage','OFF','Display the URI in the 856u field as an image, the corresponding Staff Client XSLT option must be on','OFF|Details|Results|Both','Choice');
|
||||
INSERT INTO `systempreferences` (variable,value,explanation,options,type) VALUES('AlternateHoldingsField','','The MARC field/subfield that contains alternate holdings information for bibs taht do not have items attached (e.g. 852abchi for libraries converting from MARC Magician).',NULL,'free');
|
||||
INSERT INTO `systempreferences` (variable,value,explanation,options,type) VALUES('AlternateHoldingsSeparator','','The string to use to separate subfields in alternate holdings displays.',NULL,'free');
|
||||
|
|
|
@ -4199,6 +4199,13 @@ $DBversion = "3.03.00.040";
|
|||
if (C4::Context->preference("Version") < TransformToNum($DBversion)) {
|
||||
$dbh->do("INSERT INTO `systempreferences` (variable,value,explanation,options,type) VALUES('UseControlNumber',0,'If ON, record control number (w subfields) and control number (001) are used for linking of bibliographic records.','','YesNo');");
|
||||
print "Upgrade to $DBversion done (Add syspref UseControlNumber)\n";
|
||||
}
|
||||
|
||||
$DBversion = "3.03.00.041";
|
||||
if (C4::Context->preference("Version") < TransformToNum($DBversion)) {
|
||||
$dbh->do("INSERT INTO `systempreferences` (variable,value,explanation,options,type) VALUES('AlternateHoldingsField','','The MARC field/subfield that contains alternate holdings information for bibs taht do not have items attached (e.g. 852abchi for libraries converting from MARC Magician).',NULL,'free')");
|
||||
$dbh->do("INSERT INTO `systempreferences` (variable,value,explanation,options,type) VALUES('AlternateHoldingsSeparator','','The string to use to separate subfields in alternate holdings displays.',NULL,'free')");
|
||||
print "Upgrade to $DBversion done (Add sysprefs to control alternate holdings information display)\n";
|
||||
SetVersion ($DBversion);
|
||||
}
|
||||
|
||||
|
|
|
@ -51,6 +51,12 @@ Cataloging:
|
|||
- Map the MARC subfield
|
||||
- pref: itemcallnumber
|
||||
- "to an item's callnumber. (This can contain multiple subfields to look in; for instance <code>082ab</code> would look in 082 subfields a and b.)<br />Examples: <strong>Dewey</strong>: <code>082ab</code> or <code>092ab</code>; <strong>LOC</strong>: <code>050ab</code> or <code>090ab</code>; <strong>from the item record</strong>: <code>852hi</code>"
|
||||
-
|
||||
- Display MARC subfield
|
||||
- pref: AlternateHoldingsField
|
||||
- "as holdings information for records that do not have items (This can contain multiple subfields to look in; for instance <code>852abhi</code> would look in 852 subfields a, b, h, and i.), with the subfields separated by"
|
||||
- pref: AlternateHoldingsSeparator
|
||||
- "."
|
||||
-
|
||||
- Fill in the <a href="http://www.loc.gov/marc/organizations/orgshome.html">MARC organization code</a>
|
||||
- pref: MARCOrgCode
|
||||
|
|
|
@ -378,7 +378,13 @@ function verify_images() {
|
|||
</table>
|
||||
<!-- /TMPL_IF -->
|
||||
<!-- TMPL_ELSE -->
|
||||
<p>No physical items for this record</p>
|
||||
<!-- TMPL_IF NAME="ALTERNATEHOLDINGS" -->
|
||||
<!-- TMPL_LOOP NAME="ALTERNATEHOLDINGS" -->
|
||||
<div id="alternateholdings"><span class="holdings_label">Holdings:</span> <!-- TMPL_VAR NAME="holding" --></div>
|
||||
<!-- /TMPL_LOOP -->
|
||||
<!-- TMPL_ELSE -->
|
||||
<div id="noitems">No physical items for this record</div>
|
||||
<!-- /TMPL_IF -->
|
||||
<!-- /TMPL_IF -->
|
||||
</div>
|
||||
|
||||
|
|
|
@ -554,7 +554,16 @@ YAHOO.util.Event.onContentReady("searchheader", function () {
|
|||
<!-- /TMPL_LOOP --></ul>
|
||||
<!-- /TMPL_IF -->
|
||||
<!-- TMPL_ELSE -->
|
||||
<!-- TMPL_IF NAME="ALTERNATEHOLDINGS" -->
|
||||
<strong id="altholdings_heading">Other holdings:</strong>
|
||||
<ul>
|
||||
<!-- TMPL_LOOP NAME="ALTERNATEHOLDINGS" -->
|
||||
<li id="alternateholdings"><!-- TMPL_VAR NAME="holding" --></li>
|
||||
<!-- /TMPL_LOOP -->
|
||||
</li>
|
||||
<!-- TMPL_ELSE -->
|
||||
<span class="unavailable">No items</span>
|
||||
<!-- /TMPL_IF -->
|
||||
<!-- /TMPL_IF --> <!-- /items count -->
|
||||
</div></td>
|
||||
|
||||
|
|
|
@ -418,7 +418,13 @@ YAHOO.util.Event.onContentReady("furtherm", function () {
|
|||
</table>
|
||||
<!-- /TMPL_IF -->
|
||||
<!-- TMPL_ELSE -->
|
||||
<p>No physical items for this record</p>
|
||||
<!-- TMPL_IF NAME="ALTERNATEHOLDINGS" -->
|
||||
<!-- TMPL_LOOP NAME="ALTERNATEHOLDINGS" -->
|
||||
<div id="alternateholdings"><span class="holdings_label">Holdings:</span> <!-- TMPL_VAR NAME="holding" --></div>
|
||||
<!-- /TMPL_LOOP -->
|
||||
<!-- TMPL_ELSE -->
|
||||
<div id="noitems">No physical items for this record</div>
|
||||
<!-- /TMPL_IF -->
|
||||
<!-- /TMPL_IF -->
|
||||
|
||||
<!-- TMPL_IF NAME="OpenOPACShelfBrowser" -->
|
||||
|
|
|
@ -455,7 +455,13 @@ $(document).ready(function(){
|
|||
<!-- /TMPL_LOOP -->
|
||||
</span>
|
||||
<!-- TMPL_ELSE -->
|
||||
<span class="unavailable">No items available:</span>
|
||||
<!-- TMPL_IF NAME="ALTERNATEHOLDINGS" -->
|
||||
<!-- TMPL_LOOP NAME="ALTERNATEHOLDINGS" -->
|
||||
<span id="alternateholdings"><!-- TMPL_VAR NAME="holding" --></span>,
|
||||
<!-- /TMPL_LOOP -->
|
||||
<!-- TMPL_ELSE -->
|
||||
<span class="unavailable">No items available:</span>
|
||||
<!-- /TMPL_IF -->
|
||||
<!-- /TMPL_IF -->
|
||||
<span class="unavailable">
|
||||
<!-- TMPL_IF NAME="onloancount" --> Checked out (<!-- TMPL_VAR NAME="onloancount" -->), <!-- /TMPL_IF -->
|
||||
|
|
|
@ -24,6 +24,9 @@
|
|||
<xsl:variable name="OPACURLOpenInNewWindow" select="marc:sysprefs/marc:syspref[@name='OPACURLOpenInNewWindow']"/>
|
||||
<xsl:variable name="URLLinkText" select="marc:sysprefs/marc:syspref[@name='URLLinkText']"/>
|
||||
<xsl:variable name="Show856uAsImage" select="marc:sysprefs/marc:syspref[@name='OPACDisplay856uAsImage']"/>
|
||||
<xsl:variable name="AlternateHoldingsField" select="substring(marc:sysprefs/marc:syspref[@name='AlternateHoldingsField'], 1, 3)"/>
|
||||
<xsl:variable name="AlternateHoldingsSubfields" select="substring(marc:sysprefs/marc:syspref[@name='AlternateHoldingsField'], 4)"/>
|
||||
<xsl:variable name="AlternateHoldingsSeparator" select="marc:sysprefs/marc:syspref[@name='AlternateHoldingsSeparator']"/>
|
||||
<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)"/>
|
||||
|
@ -961,10 +964,23 @@
|
|||
</xsl:for-each>
|
||||
</span>
|
||||
</xsl:if>
|
||||
<span class="results_summary">
|
||||
<span class="results_summary" id="availability">
|
||||
<span class="label">Availability: </span>
|
||||
<xsl:choose>
|
||||
<xsl:when test="count(key('item-by-status', 'available'))=0 and count(key('item-by-status', 'reference'))=0">No copies available
|
||||
<xsl:when test="count(key('item-by-status', 'available'))=0 and count(key('item-by-status', 'reference'))=0">
|
||||
<xsl:choose>
|
||||
<xsl:when test="string-length($AlternateHoldingsField)=3 and marc:datafield[@tag=$AlternateHoldingsField]">
|
||||
<xsl:variable name="AlternateHoldingsCount" select="count(marc:datafield[@tag=$AlternateHoldingsField])"/>
|
||||
<xsl:for-each select="marc:datafield[@tag=$AlternateHoldingsField][1]">
|
||||
<xsl:call-template select="marc:datafield[@tag=$AlternateHoldingsField]" name="subfieldSelect">
|
||||
<xsl:with-param name="codes"><xsl:value-of select="$AlternateHoldingsSubfields"/></xsl:with-param>
|
||||
<xsl:with-param name="delimeter"><xsl:value-of select="$AlternateHoldingsSeparator"/></xsl:with-param>
|
||||
</xsl:call-template>
|
||||
</xsl:for-each>
|
||||
(<xsl:value-of select="$AlternateHoldingsCount"/>)
|
||||
</xsl:when>
|
||||
<xsl:otherwise>No copies available</xsl:otherwise>
|
||||
</xsl:choose>
|
||||
</xsl:when>
|
||||
<xsl:when test="count(key('item-by-status', 'available'))>0">
|
||||
<span class="available">
|
||||
|
|
|
@ -42,6 +42,8 @@ use C4::VirtualShelves;
|
|||
use C4::XSLT;
|
||||
use C4::ShelfBrowser;
|
||||
use C4::Charset;
|
||||
use MARC::Record;
|
||||
use MARC::Field;
|
||||
|
||||
BEGIN {
|
||||
if (C4::Context->preference('BakerTaylorEnabled')) {
|
||||
|
@ -227,6 +229,33 @@ my $subtitle = GetRecordValue('subtitle', $record, GetFrameworkCode($bib
|
|||
subtitle => $subtitle,
|
||||
);
|
||||
|
||||
if (C4::Context->preference("AlternateHoldingsField") && scalar @items == 0) {
|
||||
my $fieldspec = C4::Context->preference("AlternateHoldingsField");
|
||||
my $subfields = substr $fieldspec, 3;
|
||||
my $holdingsep = C4::Context->preference("AlternateHoldingsSeparator") || ' ';
|
||||
my @alternateholdingsinfo = ();
|
||||
my @holdingsfields = $record->field(substr $fieldspec, 0, 3);
|
||||
|
||||
for my $field (@holdingsfields) {
|
||||
my %holding = ( holding => '' );
|
||||
my $havesubfield = 0;
|
||||
for my $subfield ($field->subfields()) {
|
||||
if ((index $subfields, $$subfield[0]) >= 0) {
|
||||
$holding{'holding'} .= $holdingsep if (length $holding{'holding'} > 0);
|
||||
$holding{'holding'} .= $$subfield[1];
|
||||
$havesubfield++;
|
||||
}
|
||||
}
|
||||
if ($havesubfield) {
|
||||
push(@alternateholdingsinfo, \%holding);
|
||||
}
|
||||
}
|
||||
|
||||
$template->param(
|
||||
ALTERNATEHOLDINGS => \@alternateholdingsinfo,
|
||||
);
|
||||
}
|
||||
|
||||
foreach ( keys %{$dat} ) {
|
||||
$template->param( "$_" => defined $dat->{$_} ? $dat->{$_} : '' );
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue