[Koha-patches] [PATCH 3/6] bug 2641, 3263: Staff Search Results Interface Changes
Galen Charlton
galen.charlton at liblime.com
Wed May 27 20:10:44 CEST 2009
From: Rick Welykochy <rick at praxis.com.au>
New detail view: labeled MARC
New bib record view in the staff interface that
displays the MARC record in a single page.
Featured sponsored by MassCat.
Signed-off-by: Galen Charlton <galen.charlton at liblime.com>
---
catalogue/labeledMARCdetail.pl | 114 ++++++++++++++++++++
.../en/modules/catalogue/labeledMARCdetail.tmpl | 59 ++++++++++
2 files changed, 173 insertions(+), 0 deletions(-)
create mode 100755 catalogue/labeledMARCdetail.pl
create mode 100644 koha-tmpl/intranet-tmpl/prog/en/modules/catalogue/labeledMARCdetail.tmpl
diff --git a/catalogue/labeledMARCdetail.pl b/catalogue/labeledMARCdetail.pl
new file mode 100755
index 0000000..2e2cc80
--- /dev/null
+++ b/catalogue/labeledMARCdetail.pl
@@ -0,0 +1,114 @@
+#!/usr/bin/perl
+
+# Copyright 2000-2002 Katipo Communications
+#
+# This file is part of Koha.
+#
+# Koha is free software; you can redistribute it and/or modify it under the
+# terms of the GNU General Public License as published by the Free Software
+# Foundation; either version 2 of the License, or (at your option) any later
+# version.
+#
+# Koha is distributed in the hope that it will be useful, but WITHOUT ANY
+# WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR
+# A PARTICULAR PURPOSE. See the GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License along with
+# Koha; if not, write to the Free Software Foundation, Inc., 59 Temple Place,
+# Suite 330, Boston, MA 02111-1307 USA
+
+use strict;
+use warnings;
+use CGI;
+use MARC::Record;
+use C4::Auth;
+use C4::Context;
+use C4::Output;
+use C4::Biblio;
+use C4::Search; # enabled_staff_search_views
+
+my $query = new CGI;
+my $dbh = C4::Context->dbh;
+my $biblionumber = $query->param('biblionumber');
+my $frameworkcode = $query->param('frameworkcode');
+$frameworkcode = GetFrameworkCode( $biblionumber ) unless ($frameworkcode);
+my $popup =
+ $query->param('popup')
+ ; # if set to 1, then don't insert links, it's just to show the biblio
+
+my $tagslib = GetMarcStructure(1,$frameworkcode);
+my $record = GetMarcBiblio($biblionumber);
+my $biblio = GetBiblioData($biblionumber);
+# open template
+my ( $template, $loggedinuser, $cookie ) = get_template_and_user(
+ {
+ template_name => "catalogue/labeledMARCdetail.tmpl",
+ query => $query,
+ type => "intranet",
+ authnotrequired => 0,
+ flagsrequired => { catalogue => 1 },
+ debug => 1,
+ }
+);
+
+$template->param( count => 1, bibliotitle => $biblio->{title} );
+
+#Getting the list of all frameworks
+my $queryfwk =
+ $dbh->prepare("select frameworktext, frameworkcode from biblio_framework");
+$queryfwk->execute;
+my %select_fwk;
+my @select_fwk;
+my $curfwk;
+push @select_fwk, "Default";
+$select_fwk{"Default"} = "Default";
+
+while ( my ( $description, $fwk ) = $queryfwk->fetchrow ) {
+ push @select_fwk, $fwk;
+ $select_fwk{$fwk} = $description;
+}
+$curfwk=$frameworkcode;
+my $framework=CGI::scrolling_list( -name => 'Frameworks',
+ -id => 'Frameworks',
+ -default => $curfwk,
+ -OnChange => 'Changefwk(this);',
+ -values => \@select_fwk,
+ -labels => \%select_fwk,
+ -size => 1,
+ -multiple => 0 );
+$template->param(framework => $framework);
+
+my @marc_data;
+my $prevlabel = '';
+for my $field ($record->fields)
+{
+ my $tag = $field->tag;
+ next if ! exists $tagslib->{$tag}->{lib};
+ my $label = $tagslib->{$tag}->{lib};
+ if ($label eq $prevlabel)
+ {
+ $label = '';
+ }
+ else
+ {
+ $prevlabel = $label;
+ }
+ my $value = $tag < 10
+ ? $field->data
+ : join ' ', map { $_->[1] } $field->subfields;
+ push @marc_data, {
+ label => $label,
+ value => $value,
+ };
+}
+
+$template->param (
+ marc_data => \@marc_data,
+ biblionumber => $biblionumber,
+ popup => $popup,
+ labeledmarcview => 1,
+ z3950_search_params => C4::Search::z3950_search_args($biblio),
+ C4::Search::enabled_staff_search_views,
+);
+
+output_html_with_http_headers $query, $cookie, $template->output;
diff --git a/koha-tmpl/intranet-tmpl/prog/en/modules/catalogue/labeledMARCdetail.tmpl b/koha-tmpl/intranet-tmpl/prog/en/modules/catalogue/labeledMARCdetail.tmpl
new file mode 100644
index 0000000..523744c
--- /dev/null
+++ b/koha-tmpl/intranet-tmpl/prog/en/modules/catalogue/labeledMARCdetail.tmpl
@@ -0,0 +1,59 @@
+<!-- TMPL_INCLUDE NAME="doc-head-open.inc" -->
+
+ <title>Koha › Catalog › Labeled MARC Details for <!-- TMPL_VAR NAME="bibliotitle" --></title>
+
+ <!-- TMPL_INCLUDE NAME="doc-head-close.inc" -->
+
+ <script type="text/javascript">
+ //<![CDATA[
+ function Changefwk(FwkList)
+ {
+ var fwk = FwkList.options[FwkList.selectedIndex].value;
+ window.location = "labeledMARCdetail.pl?biblionumber=<!--TMPL_VAR Name="biblionumber"-->&frameworkcode="+fwk;
+ }
+ //]]>
+ </script>
+</head>
+
+<body>
+ <!-- TMPL_INCLUDE NAME="header.inc" -->
+ <!-- TMPL_INCLUDE NAME="cat-search.inc" -->
+
+ <div id="breadcrumbs">
+ <a href="/cgi-bin/koha/mainpage.pl">Home</a>
+ › <a href="/cgi-bin/koha/catalogue/search.pl">Catalog</a>
+ › MARC Details for <i><!-- TMPL_VAR NAME="bibliotitle" --></i>
+ </div>
+
+ <div id="doc3" class="yui-t2">
+ <div id="bd">
+ <div id="yui-main">
+ <div class="yui-b">
+
+ <!-- TMPL_INCLUDE NAME="cat-toolbar.inc" -->
+
+ <!-- TMPL_UNLESS name="popup" -->
+ <h1>Labeled MARC biblio : <!-- TMPL_VAR NAME="biblionumber" --> ( <!-- TMPL_VAR NAME="bibliotitle" --> )</h1>
+ <!-- /TMPL_UNLESS -->
+ <p><b>With Framework :<!--TMPL_VAR Name="framework" --></b></p>
+ <!-- div id="bibliotabs" class="toptabs numbered" -->
+ <div>
+ <table class="labeledmarc-table">
+ <!-- TMPL_LOOP NAME="marc_data" -->
+ <tr>
+ <td class="labeledmarc-label"><!-- TMPL_VAR NAME="label" --></td>
+ <td class="labeledmarc-value"><!-- TMPL_VAR NAME="value" --></td>
+ </tr>
+ <!-- /TMPL_LOOP -->
+ </table>
+ </div>
+ </div>
+ </div>
+ <div class="yui-b">
+
+ <!-- TMPL_INCLUDE NAME="biblio-view-menu.inc" -->
+
+ </div>
+ </div>
+ </div>
+ <!-- TMPL_INCLUDE NAME="intranet-bottom.inc" -->
--
1.5.6.5
More information about the Koha-patches
mailing list