[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 &rsaquo; Catalog &rsaquo; 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>
+		&rsaquo; <a href="/cgi-bin/koha/catalogue/search.pl">Catalog</a>
+		&rsaquo; 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