=head2 GetISBDView
- $isbd = &GetISBDView($biblionumber);
+ $isbd = &GetISBDView({
+ 'record' => $marc_record,
+ 'template' => $interface, # opac/intranet
+ 'framework' => $framework,
+ });
Return the ISBD view which can be included in opac and intranet
=cut
sub GetISBDView {
- my ( $biblionumber, $template ) = @_;
- my $record = GetMarcBiblio($biblionumber, 1);
- $template ||= '';
- my $sysprefname = $template eq 'opac' ? 'opacisbd' : 'isbd';
+ my ( $params ) = @_;
+
+ # Expecting record WITH items.
+ my $record = $params->{record};
return unless defined $record;
- my $itemtype = &GetFrameworkCode($biblionumber);
+
+ my $template = $params->{template} // q{};
+ my $sysprefname = $template eq 'opac' ? 'opacisbd' : 'isbd';
+ my $framework = $params->{framework};
+ my $itemtype = $framework;
my ( $holdingbrtagf, $holdingbrtagsubf ) = &GetMarcFromKohaField( "items.holdingbranch", $itemtype );
my $tagslib = &GetMarcStructure( 1, $itemtype );
use C4::Serials; # CountSubscriptionFromBiblionumber
use C4::Search; # enabled_staff_search_views
use C4::Acquisition qw(GetOrdersByBiblionumber);
+use Koha::RecordProcessor;
#---- Internal function
}
);
-my $res = GetISBDView($biblionumber, "intranet");
-if ( not defined $res ) {
+if ( not defined $biblionumber ) {
# biblionumber invalid -> report and exit
$template->param( unknownbiblionumber => 1,
- biblionumber => $biblionumber
+ biblionumber => $biblionumber
);
output_html_with_http_headers $query, $cookie, $template->output;
exit;
}
+my $record_unfiltered = GetMarcBiblio($biblionumber,1);
+my $record_processor = Koha::RecordProcessor->new({
+ filters => 'ViewPolicy',
+ options => {
+ interface => 'intranet',
+ },
+});
+my $record_filtered = $record_unfiltered->clone();
+my $record = $record_processor->process($record_filtered);
+
+if ( not defined $record ) {
+ # biblionumber invalid -> report and exit
+ $template->param( unknownbiblionumber => 1,
+ biblionumber => $biblionumber
+ );
+ output_html_with_http_headers $query, $cookie, $template->output;
+ exit;
+}
+
+my $framework = GetFrameworkCode( $biblionumber );
+my $res = GetISBDView({
+ 'record' => $record,
+ 'template' => 'intranet',
+ 'framework' => $framework,
+});
+
if($query->cookie("holdfor")){
my $holdfor_patron = GetMember('borrowernumber' => $query->cookie("holdfor"));
$template->param(
subscriptiontitle => $subscriptiontitle,
);
}
-my $record = GetMarcBiblio($biblionumber);
$template->param (
ISBD => $res,
}
}
-my $record_unfiltered = GetMarcBiblio($biblionumber);
+my $record_unfiltered = GetMarcBiblio($biblionumber,1);
if ( ! $record_unfiltered ) {
print $query->redirect("/cgi-bin/koha/errors/404.pl");
exit;
my $norequests = 1;
my $allow_onshelf_holds;
-my $res = GetISBDView($biblionumber, "opac");
+my $framework = GetFrameworkCode( $biblionumber );
+my $res = GetISBDView({
+ 'record' => $record,
+ 'template' => 'opac',
+ 'framework' => $framework
+});
my $itemtypes = GetItemTypes();
my $borrower = GetMember( 'borrowernumber' => $loggedinuser );
use C4::Acquisition;
use C4::Koha;
use List::MoreUtils qw( any uniq );
+use Koha::RecordProcessor;
my $query = new CGI;
my ($tag_itemnumber,$subtag_itemnumber) = &GetMarcFromKohaField('items.itemnumber',$itemtype);
my $biblio = GetBiblioData($biblionumber);
$biblionumber = $biblio->{biblionumber};
-my $record = GetMarcBiblio($biblionumber, 1);
-if ( ! $record ) {
+my $record_unfiltered = GetMarcBiblio($biblionumber, 1);
+if ( ! $record_unfiltered ) {
print $query->redirect("/cgi-bin/koha/errors/404.pl");
exit;
}
+my $record_processor = Koha::RecordProcessor->new({ filters => 'ViewPolicy' });
+my $record_filtered = $record_unfiltered->clone();
+my $record = $record_processor->process($record_filtered);
+
# open template
my ( $template, $loggedinuser, $cookie ) = get_template_and_user(
{
my ($bt_tag,$bt_subtag) = GetMarcFromKohaField('biblio.title',$itemtype);
$template->param(
bibliotitle => $biblio->{title},
-) if $tagslib->{$bt_tag}->{$bt_subtag}->{hidden} <= 0; #<=0 is OPAC visible.
+) if $tagslib->{$bt_tag}->{$bt_subtag}->{hidden} <= 0 && # <=0 OPAC visible.
+ $tagslib->{$bt_tag}->{$bt_subtag}->{hidden} > -8; # except -8;
# get biblionumbers stored in the cart
if(my $cart_list = $query->cookie("bib_list")){
use C4::Circulation;
use C4::Auth;
use C4::Output;
+use Koha::RecordProcessor;
my $query = new CGI;
}
}
-
+my $record_processor = Koha::RecordProcessor->new({ filters => 'ViewPolicy' });
foreach my $biblionumber ( @bibs ) {
$template->param( biblionumber => $biblionumber );
my $dat = &GetBiblioData($biblionumber);
next unless $dat;
- my $record = &GetMarcBiblio($biblionumber);
+ my $record_unfiltered = &GetMarcBiblio($biblionumber);
+ my $record_filtered = $record_unfiltered->clone();
+ my $record = $record_processor->process($record_filtered);
next unless $record;
my $marcnotesarray = GetMarcNotes( $record, $marcflavour );
my $marcauthorsarray = GetMarcAuthors( $record, $marcflavour );
use C4::Output;
use C4::Record;
use C4::Ris;
-
use Koha::CsvProfiles;
+use Koha::RecordProcessor;
use utf8;
my $query = new CGI;
# Other formats
} else {
+ my $record_processor = Koha::RecordProcessor->new({
+ filters => 'ViewPolicy'
+ });
foreach my $biblio (@bibs) {
- my $record = GetMarcBiblio($biblio, 1);
+ my $record_unfiltered = GetMarcBiblio($biblio, 1);
+ my $record_filtered = $record_unfiltered->clone();
+ my $record =
+ $record_processor->process($record_filtered);
+
next unless $record;
if ($format eq 'iso2709') {
$output .= marc2bibtex($record, $biblio);
}
elsif ( $format eq 'isbd' ) {
- $output .= GetISBDView($biblio, "opac");
+ my $framework = GetFrameworkCode( $biblio );
+ $output .= GetISBDView({
+ 'record' => $record,
+ 'template' => 'opac',
+ 'framework' => $framework,
+ });
$extension = "txt";
$type = "text/plain";
}
use C4::Output;
use C4::Record;
use C4::Ris;
-
use Koha::CsvProfiles;
+use Koha::RecordProcessor;
use Koha::Virtualshelves;
use utf8;
$output = marc2csv(\@biblios, $format);
# Other formats
} else {
+ my $record_processor = Koha::RecordProcessor->new({
+ filters => 'ViewPolicy'
+ });
while ( my $content = $contents->next ) {
my $biblionumber = $content->biblionumber->biblionumber;
- my $record = GetMarcBiblio($biblionumber, 1);
+ my $record_unfiltered = GetMarcBiblio($biblionumber, 1);
+ my $record_filtered = $record_unfiltered->clone();
+ my $record = $record_processor->process($record_filtered);
next unless $record;
if ($format eq 'iso2709') {
$output .= marc2bibtex($record, $biblionumber);
}
elsif ( $format eq 'isbd' ) {
- $output .= GetISBDView($biblionumber, "opac");
+ my $framework = GetFrameworkCode( $biblionumber );
+ $output .= GetISBDView({
+ 'record' => $record,
+ 'template' => 'opac',
+ 'framework' => $framework,
+ });
$extension = "txt";
$type = "text/plain";
}
$format = 'marcstd';
}
elsif ( $format =~ /isbd/ ) {
- $marc = GetISBDView($biblionumber, "opac");
+ my $framework = GetFrameworkCode( $biblionumber );
+ $marc = GetISBDView({
+ 'record' => $marc,
+ 'template' => 'opac',
+ 'framework' => $framework,
+ });
$format = 'isbd';
}
else {
use C4::Tags qw( get_tags );
use C4::XSLT;
use Koha::Virtualshelves;
+use Koha::RecordProcessor;
my $query = new CGI;
my $lang = $xslfile ? C4::Languages::getlanguage() : undef;
my $sysxml = $xslfile ? C4::XSLT::get_xslt_sysprefs() : undef;
+ my $record_processor = Koha::RecordProcessor->new({ filters => 'ViewPolicy' });
my @items;
while ( my $content = $contents->next ) {
my $biblionumber = $content->biblionumber->biblionumber;
my $this_item = GetBiblioData($biblionumber);
- my $record = GetMarcBiblio($biblionumber);
+ my $record_unfiltered = GetMarcBiblio($biblionumber);
+ my $record_filtered = $record_unfiltered->clone();
+ my $record = $record_processor->process($record_filtered);
if ( $xslfile ) {
$this_item->{XSLTBloc} = XSLTParse4Display( $biblionumber, $record, "OPACXSLTListsDisplay",