[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Koha-cvs] koha/C4 AuthoritiesMarc.pm [rel_2_2]
From: |
paul poulain |
Subject: |
[Koha-cvs] koha/C4 AuthoritiesMarc.pm [rel_2_2] |
Date: |
Wed, 15 Mar 2006 10:46:31 +0000 |
CVSROOT: /cvsroot/koha
Module name: koha
Branch: rel_2_2
Changes by: paul poulain <address@hidden> 06/03/15 10:46:31
Modified files:
C4 : AuthoritiesMarc.pm
Log message:
removing hardcoded link in summary of authority (on $heading) : it can
be set in the template (in the # of biblios column) :
<a
href="/cgi-bin/koha/opac-search.pl?type=opac&op=do_search&marclist=<!--
TMPL_VAR NAME="biblio_fields" -->&operator==&value=<!-- TMPL_VAR
NAME="authid" -->&and_or=and&excluding="><!-- TMPL_VAR NAME="used"
--></a> <!-- TMPL_VAR NAME="used" -->
that's what I did for css templates, it work like a charm. It's better
I think because when the library defines it's own summary, the hardcoded link
didn't appear.
CVSWeb URLs:
http://cvs.savannah.gnu.org/viewcvs/koha/koha/C4/AuthoritiesMarc.pm.diff?only_with_tag=rel_2_2&tr1=1.9.2.12&tr2=1.9.2.13&r1=text&r2=text
Patches:
Index: koha/C4/AuthoritiesMarc.pm
diff -u koha/C4/AuthoritiesMarc.pm:1.9.2.12 koha/C4/AuthoritiesMarc.pm:1.9.2.13
--- koha/C4/AuthoritiesMarc.pm:1.9.2.12 Thu Mar 9 01:45:14 2006
+++ koha/C4/AuthoritiesMarc.pm Wed Mar 15 10:46:31 2006
@@ -149,118 +149,9 @@
#FIXME: all of this should be moved to the template eventually
my $authtypecode =
AUTHfind_authtypecode($dbh,$result[$counter]);
my $authref = getauthtype($authtypecode);
- my $heading; # = $authref->{summary};
- my $altheading;
- my $seeheading;
- my $see;
- my $authtype;
- # KADOS : why do you handle hardcoded $authtype, as you have it
in $authref ?
-# if ($record->field('.00')) {
-# $authtype.= "Personal Name";
-# }
-# if ($record->field('.10')) {
-# $authtype.= "Corporate Name";
-# }
-# if ($record->field('.11')) {
-# $authtype.= "Meeting Name";
-# }
-# if ($record->field('.30')) {
-# $authtype.= "Uniform Title";
-# }
-# if ($record->field('.48')) {
-# $authtype.= "Chronological Term";
-# }
-# if ($record->field('.50')) {
-# $authtype.= "Topical Term";
-# }
-# if ($record->field('.51')) {
-# $authtype.= "Geographic Name";
-# }
-# if ($record->field('.55')) {
-# $authtype = "Genre/Form Term";
-# }
- $authtype=$authref->{authtypetext};
-
- my @fields = $record->fields();
- my $summary; #.="<b>".$heading."</b><br />";
- if (C4::Context->preference('marcflavour') eq 'UNIMARC') {
- # construct UNIMARC summary, that is quite different from
MARC21 one
- # accepted form
- foreach my $field ($record->field('2..')) {
- $heading.= $field->as_string();
- }
- # rejected form(s)
- foreach my $field ($record->field('4..')) {
- $summary.=
" <i>".$field->as_string()."</i><br/>";
- $summary.=
" <i>see:</i> ".$heading."<br/>";
- }
- # see :
- foreach my $field ($record->field('5..')) {
- $summary.=
" <i>".$field->as_string()."</i><br/>";
- $summary.=
" <i>see:</i> ".$heading."<br/>";
- }
- # // form
- foreach my $field ($record->field('7..')) {
- $seeheading.=
" <i>see also:</i>
".$field->as_string()."<br />";
- $altheading.=
" ".$field->as_string()."<br />";
- $altheading.=
" <i>see also:</i> ".$heading."<br />";
- }
- } else {
- # construct MARC21 summary
- foreach my $field ($record->field('1..')) {
- if ($record->field('100')) {
- $heading.=
$field->as_string('abcdefghjklmnopqrstvxyz68');
- } elsif ($record->field('110')) {
- $heading.=
$field->as_string('abcdefghklmnoprstvxyz68');
- } elsif ($record->field('111')) {
- $heading.=
$field->as_string('acdefghklnpqstvxyz68');
- } elsif ($record->field('130')) {
- $heading.=
$field->as_string('adfghklmnoprstvxyz68');
- } elsif ($record->field('148')) {
- $heading.=
$field->as_string('abvxyz68');
- } elsif ($record->field('150')) {
- $heading.=
$field->as_string('abvxyz68');
- } elsif ($record->field('151')) {
- $heading.=
$field->as_string('avxyz68');
- } elsif ($record->field('155')) {
- $heading.=
$field->as_string('abvxyz68');
- } elsif ($record->field('180')) {
- $heading.= $field->as_string('vxyz68');
- } elsif ($record->field('181')) {
- $heading.= $field->as_string('vxyz68');
- } elsif ($record->field('182')) {
- $heading.= $field->as_string('vxyz68');
- } elsif ($record->field('185')) {
- $heading.= $field->as_string('vxyz68');
- } else {
- $heading.= $field->as_string();
- }
- }
- foreach my $field ($record->field('4..')) {
- $summary.=
" ".$field->as_string()."<br />";
- $summary.=
" <i>see:</i> ".$heading."<br />";
- }
- foreach my $field ($record->field('5..')) {
- $seeheading.=
" <i>see also:</i>
".$field->as_string()."<br />";
- $altheading.=
" ".$field->as_string()."<br />";
- $altheading.=
" <i>see also:</i> ".$heading."<br />";
- }
- }
- foreach my $field (@fields) {
- my $tag = $field->tag();
- if ($tag<10) {
- } else {
- my @subf = $field->subfields;
- for my $i (0..$#subf) {
- my $subfieldcode = $subf[$i][0];
- my $subfieldvalue = $subf[$i][1];
- my $tagsubf = $tag.$subfieldcode;
- }
- }
- }
-
+ my $authtype =$authref->{authtypetext};
+ my $summary = $authref->{summary};
# find biblio MARC field using this authtypecode (to jump to
biblio)
- my $authtypecode =
AUTHfind_authtypecode($dbh,$result[$counter]);
my $sth = $dbh->prepare("select distinct tagfield from
marc_subfield_structure where authtypecode=?");
$sth->execute($authtypecode);
my $tags_using_authtype;
@@ -269,7 +160,69 @@
$tags_using_authtype.= $tagfield."9,";
}
chop $tags_using_authtype;
- $summary = "<b><a
href='/cgi-bin/koha/opac-search.pl?type=opac&op=do_search&marclist=$tags_using_authtype&operator==&value=$result[$counter]&and_or=and&excluding='>".$heading."</a></b><br
/>".$seeheading.$altheading.$summary;
+ # if the library has a summary defined, use it. Otherwise,
build a standard one
+ if ($summary) {
+ my @fields = $record->fields();
+ foreach my $field (@fields) {
+ my $tag = $field->tag();
+ if ($tag<10) {
+ } else {
+ my @subf = $field->subfields;
+ for my $i (0..$#subf) {
+ my $subfieldcode = $subf[$i][0];
+ my $subfieldvalue =
$subf[$i][1];
+ my $tagsubf =
$tag.$subfieldcode;
+ $summary =~
s/\[(.?.?.?.?)$tagsubf(.*?)]/$1$subfieldvalue$2\[$1$tagsubf$2]/g;
+ }
+ }
+ }
+ $summary =~ s/\[(.*?)]//g;
+ $summary =~ s/\n/<br>/g;
+ } else {
+ my $heading; # = $authref->{summary};
+ my $altheading;
+ my $seeheading;
+ my $see;
+ my @fields = $record->fields();
+ if (C4::Context->preference('marcflavour') eq
'UNIMARC') {
+ # construct UNIMARC summary, that is quite different
from MARC21 one
+ # accepted form
+ foreach my $field ($record->field('2..')) {
+ $heading.= $field->as_string();
+ }
+ # rejected form(s)
+ foreach my $field ($record->field('4..')) {
+ $summary.=
" <i>".$field->as_string()."</i><br/>";
+ $summary.=
" <i>see:</i> ".$heading."<br/>";
+ }
+ # see :
+ foreach my $field ($record->field('5..')) {
+ $summary.=
" <i>".$field->as_string()."</i><br/>";
+ $summary.=
" <i>see:</i> ".$heading."<br/>";
+ }
+ # // form
+ foreach my $field ($record->field('7..')) {
+ $seeheading.=
" <i>see also:</i>
".$field->as_string()."<br />";
+ $altheading.=
" ".$field->as_string()."<br />";
+ $altheading.=
" <i>see also:</i> ".$heading."<br />";
+ }
+ $summary = "<b>".$heading."</b><br
/>".$seeheading.$altheading.$summary;
+ } else {
+ # construct MARC21 summary
+ foreach my $field ($record->field('1..')) {
+ $heading.= $field->as_string();
+ }
+ foreach my $field ($record->field('4..')) {
+ $summary.=
" ".$field->as_string()."<br />";
+ $summary.=
" <i>see:</i> ".$heading."<br />";
+ }
+ foreach my $field ($record->field('5..')) {
+ $seeheading.=
" <i>see also:</i>
".$field->as_string()."<br />";
+ $altheading.=
" ".$field->as_string()."<br />";
+ $altheading.=
" <i>see also:</i> ".$heading."<br />";
+ }
+ }
+ }
# then add a line for the template loop
my %newline;
$newline{summary} = $summary;
@@ -1088,8 +1041,14 @@
=cut
-# $Id: AuthoritiesMarc.pm,v 1.9.2.12 2006/03/09 01:45:14 kados Exp $
+# $Id: AuthoritiesMarc.pm,v 1.9.2.13 2006/03/15 10:46:31 tipaul Exp $
# $Log: AuthoritiesMarc.pm,v $
+# Revision 1.9.2.13 2006/03/15 10:46:31 tipaul
+# removing hardcoded link in summary of authority (on $heading) : it can be
set in the template (in the # of biblios column) :
+# <a
href="/cgi-bin/koha/opac-search.pl?type=opac&op=do_search&marclist=<!--
TMPL_VAR NAME="biblio_fields" -->&operator==&value=<!-- TMPL_VAR
NAME="authid" -->&and_or=and&excluding="><!-- TMPL_VAR NAME="used"
--></a> <!-- TMPL_VAR NAME="used" -->
+#
+# that's what I did for css templates, it work like a charm. It's better I
think because when the library defines it's own summary, the hardcoded link
didn't appear.
+#
# Revision 1.9.2.12 2006/03/09 01:45:14 kados
# Refining list of appropriate subfields to display for the authorized
# heading.