[Koha-cvs] koha C4/AuthoritiesMarc.pm C4/Biblioadd.pm auth... [rel_TG]
Tumer Garip
tgarip at neu.edu.tr
Wed Mar 28 04:50:28 CEST 2007
CVSROOT: /sources/koha
Module name: koha
Branch: rel_TG
Changes by: Tumer Garip <tgarip1957> 07/03/28 02:50:28
Modified files:
C4 : AuthoritiesMarc.pm Biblioadd.pm
authorities : authorities.pl
Log message:
removing subs from authorities-- using biblioadd.pm
CVSWeb URLs:
http://cvs.savannah.gnu.org/viewcvs/koha/C4/AuthoritiesMarc.pm?cvsroot=koha&only_with_tag=rel_TG&r1=1.37.2.2&r2=1.37.2.3
http://cvs.savannah.gnu.org/viewcvs/koha/C4/Biblioadd.pm?cvsroot=koha&only_with_tag=rel_TG&r1=1.1.2.1&r2=1.1.2.2
http://cvs.savannah.gnu.org/viewcvs/koha/authorities/authorities.pl?cvsroot=koha&only_with_tag=rel_TG&r1=1.18.2.2&r2=1.18.2.3
Patches:
Index: C4/AuthoritiesMarc.pm
===================================================================
RCS file: /sources/koha/koha/C4/AuthoritiesMarc.pm,v
retrieving revision 1.37.2.2
retrieving revision 1.37.2.3
diff -u -b -r1.37.2.2 -r1.37.2.3
--- C4/AuthoritiesMarc.pm 25 Mar 2007 23:46:14 -0000 1.37.2.2
+++ C4/AuthoritiesMarc.pm 28 Mar 2007 02:50:28 -0000 1.37.2.3
@@ -121,7 +121,7 @@
$length=10 unless $length;
my @oAuth;
my $i;
- $oAuth[0]=C4::Context->Zconn("authorityserver");
+ $oAuth[0]=C4::Context->Zconn("authorityserver","xml","F");
my ($mainentry)=MARCfind_attr_from_kohafield("mainentry");
my ($allentry)=MARCfind_attr_from_kohafield("allentry");
@@ -849,7 +849,7 @@
=cut
-# $Id: AuthoritiesMarc.pm,v 1.37.2.2 2007/03/25 23:46:14 tgarip1957 Exp $
+# $Id: AuthoritiesMarc.pm,v 1.37.2.3 2007/03/28 02:50:28 tgarip1957 Exp $
# Revision 1.30 2006/09/06 16:21:03 tgarip1957
# Clean up before final commits
Index: C4/Biblioadd.pm
===================================================================
RCS file: /sources/koha/koha/C4/Attic/Biblioadd.pm,v
retrieving revision 1.1.2.1
retrieving revision 1.1.2.2
diff -u -b -r1.1.2.1 -r1.1.2.2
--- C4/Biblioadd.pm 25 Mar 2007 23:46:14 -0000 1.1.2.1
+++ C4/Biblioadd.pm 28 Mar 2007 02:50:28 -0000 1.1.2.2
@@ -25,7 +25,7 @@
use MARC::File::USMARC;
use C4::Biblio;
use Data::Dumper;
-use vars qw( $tagslib);
+#use vars qw( $tagslib);
use vars qw( $authorised_values_sth);
my $format="USMARC";
@@ -209,7 +209,7 @@
builds the <input ...> entry for a subfield.
=cut
sub create_input {
- my ($tag,$subfield,$value,$i,$tabloop,$rec,$authorised_values_sth,$id,$tagslib) = @_;
+ my ($tag,$subfield,$value,$i,$tabloop,$rec,$authorised_values_sth,$id,$tagslib,$authority) = @_;
my $dbh=C4::Context->dbh;
$value =~ s/"/"/g;
my %subfield_data;
@@ -226,10 +226,13 @@
if ($tagslib->{$tag}->{$subfield}->{authorised_value}) {
$subfield_data{marc_value}= build_authorized_values_list($tag, $subfield, $value, $dbh,$authorised_values_sth,$tagslib);
# it's an authority field
- } elsif ($tagslib->{$tag}->{$subfield}->{authtypecode}) {
+ } elsif ($tagslib->{$tag}->{$subfield}->{authtypecode} && !$authority) {
$subfield_data{marc_value}="<input onblur=\"this.style.backgroundColor='#ffffff';\" onfocus=\"this.style.backgroundColor='#ffffff;'\"\" tabindex=\"1\" type=\"text\" name=\"field_value\" id=\"field_value$id\" value=\"$value\" size=\"40\" maxlength=\"255\" DISABLE READONLY> <a style=\"cursor: help;\" href=\"javascript:Dopop('../authorities/auth_finder.pl?authtypecode=".$tagslib->{$tag}->{$subfield}->{authtypecode}."&index=$id',$id);\">...</a>";
# it's a plugin field
+ } elsif ($tagslib->{$tag}->{$subfield}->{link} && $authority) {
+ $subfield_data{marc_value}="<input onblur=\"this.style.backgroundColor='#ffffff';\" onfocus=\"this.style.backgroundColor='#ffffff;'\" tabindex=\"1\" type=\"text\" name=\"field_value\" id=\"field_value$id\" value=\"$value\" size=\"40\" maxlength=\"255\" DISABLE READONLY> <a style=\"cursor: help;\" href=\"javascript:Dopop('../authorities/auth_linker.pl?index=$id',$id);\">...</a>";
+
} elsif ($tagslib->{$tag}->{$subfield}->{'value_builder'}) {
# opening plugin. Just check wether we are on a developper computer on a production one
# (the cgidir differs)
@@ -260,14 +263,15 @@
}
sub build_tabs {
- my($template, $xmlhash, $dbh,$addedfield,$tagslib,$authorised_values_sth) = @_;
+ my($template, $xmlhash, $dbh,$addedfield,$tagslib,$authorised_values_sth,$authority) = @_;
# fill arrays
my @loop_data =();
my $tag;
my $i=0;
my $id=100;
-
-my ($biblionumtagfield,$biblionumtagsubfield) = &MARCfind_marc_from_kohafield($dbh,"biblionumber","biblios");
+my ($biblionumtagfield,$biblionumtagsubfield);
+ ($biblionumtagfield,$biblionumtagsubfield) = &MARCfind_marc_from_kohafield("biblionumber","biblios") unless $authority;
+ ($biblionumtagfield,$biblionumtagsubfield)=MARCfind_marc_from_kohafield("authid","authorities") if $authority;
my $biblio;
my $controlfields;
@@ -314,7 +318,7 @@
my $value=$code->{'content'};
$definedsubfields{$tag.$subfield}=1 ;
$built{$tag}=1;
- push(@subfields_data, &create_input($tag,$subfield,$value,$i,$tabloop,$xmlhash,$authorised_values_sth,$id,$tagslib)) ;
+ push(@subfields_data, &create_input($tag,$subfield,$value,$i,$tabloop,$xmlhash,$authorised_values_sth,$id,$tagslib,$authority)) ;
$i++ ;
}
} ##each subfield
@@ -329,7 +333,7 @@
next if ($tagslib->{$tag}->{$subfield}->{tab} ne $tabloop);
next if ((substr($tagslib->{$tag}->{$subfield}->{hidden},2,1) gt "1") ); #check for visibility flag
next if ($definedsubfields{$tag.$subfield} );
- push(@subfields_data, &create_input($tag,$subfield,'',$i,$tabloop,$xmlhash,$authorised_values_sth,$id,$tagslib));
+ push(@subfields_data, &create_input($tag,$subfield,'',$i,$tabloop,$xmlhash,$authorised_values_sth,$id,$tagslib,$authority));
$definedsubfields{$tag.$subfield}=1;
$i++;
}
@@ -354,7 +358,7 @@
my @subfields_data;
my $value=$leader->[0] if $leader->[0];
$tagdefined{$tag}=1 ;
- push(@subfields_data, &create_input($tag,$subfield,$value,$i,$tabloop,$xmlhash,$authorised_values_sth,$id,$tagslib));
+ push(@subfields_data, &create_input($tag,$subfield,$value,$i,$tabloop,$xmlhash,$authorised_values_sth,$id,$tagslib,$authority));
$i++;
if ($#subfields_data >= 0) {
my %tag_data;
@@ -374,7 +378,7 @@
$tagdefined{$tag}=1 ;
my $value=$control->{'content'} ;
$definedsubfields{$tag.'@'}=1;
- push(@subfields_data, &create_input($tag,$subfield,$value,$i,$tabloop,$xmlhash,$authorised_values_sth,$id,$tagslib));
+ push(@subfields_data, &create_input($tag,$subfield,$value,$i,$tabloop,$xmlhash,$authorised_values_sth,$id,$tagslib,$authority));
$i++;
$built{$tag}=1;
@@ -404,7 +408,7 @@
next if ($tagslib->{$tag}->{$subfield}->{tab} ne $tabloop);
next if ((substr($tagslib->{$tag}->{$subfield}->{hidden},2,1) gt "1") ); #check for visibility flag
- push(@subfields_data, &create_input($tag,$subfield,'',$i,$tabloop,$xmlhash,$authorised_values_sth,$id,$tagslib));
+ push(@subfields_data, &create_input($tag,$subfield,'',$i,$tabloop,$xmlhash,$authorised_values_sth,$id,$tagslib,$authority));
$tagdefined{$tag.$subfield}=1;
$i++;
}
@@ -433,7 +437,7 @@
next if ($tagslib->{$tag}->{$subfield}->{tab} ne $tabloop);
next if ((substr($tagslib->{$tag}->{$subfield}->{hidden},2,1) gt "1") ); #check for visibility flag
$addedfield="";
- push(@subfields_data, &create_input($tag,$subfield,'',$i,$tabloop,$xmlhash,$authorised_values_sth,$id,$tagslib));
+ push(@subfields_data, &create_input($tag,$subfield,'',$i,$tabloop,$xmlhash,$authorised_values_sth,$id,$tagslib,$authority));
$i++;
}
if ($#subfields_data >= 0) {
@@ -458,7 +462,7 @@
next if (length $subfield !=1);
next if ((substr($tagslib->{$tag}->{$subfield}->{hidden},2,1) gt "1") ); #check for visibility flag
next if ($tagslib->{$tag}->{$subfield}->{tab} ne $tabloop);
- push(@subfields_data, &create_input($tag,$subfield,'',$i,$tabloop,$xmlhash,$authorised_values_sth,$id,$tagslib));
+ push(@subfields_data, &create_input($tag,$subfield,'',$i,$tabloop,$xmlhash,$authorised_values_sth,$id,$tagslib,$authority));
$i++;
}
if ($#subfields_data >= 0) {
Index: authorities/authorities.pl
===================================================================
RCS file: /sources/koha/koha/authorities/authorities.pl,v
retrieving revision 1.18.2.2
retrieving revision 1.18.2.3
diff -u -b -r1.18.2.2 -r1.18.2.3
--- authorities/authorities.pl 26 Mar 2007 02:19:21 -0000 1.18.2.2
+++ authorities/authorities.pl 28 Mar 2007 02:50:28 -0000 1.18.2.3
@@ -1,6 +1,6 @@
#!/usr/bin/perl
-# $Id: authorities.pl,v 1.18.2.2 2007/03/26 02:19:21 tgarip1957 Exp $
+# $Id: authorities.pl,v 1.18.2.3 2007/03/28 02:50:28 tgarip1957 Exp $
# Copyright 2000-2002 Katipo Communications
#
@@ -29,404 +29,14 @@
use C4::Context;
use C4::Koha; # XXX subfield_is_koha_internal_p
use Encode;
+use C4::Biblioadd;
-use vars qw( $tagslib);
-use vars qw( $authorised_values_sth);
-use vars qw( $is_a_modif );
my $input = new CGI;
my $z3950 = $input->param('z3950');
my $logstatus=C4::Context->preference('Activate_log');
my $xml;
my $itemtype; # created here because it can be used in build_authorized_values_list sub
-
-
-
-
-
-=item build_authorized_values_list
-
-=cut
-
-sub build_authorized_values_list ($$$$$) {
- my($tag, $subfield, $value, $dbh,$authorised_values_sth) = @_;
-
- my @authorised_values;
- my %authorised_lib;
-
- # builds list, depending on authorised value...
-
- #---- branch
- if ($tagslib->{$tag}->{$subfield}->{'authorised_value'} eq "branches" ) {
- my $sth=$dbh->prepare("select branchcode,branchname from branches order by branchname");
- $sth->execute;
- push @authorised_values, ""
- unless ($tagslib->{$tag}->{$subfield}->{mandatory});
-
- while (my ($branchcode,$branchname) = $sth->fetchrow_array) {
- push @authorised_values, $branchcode;
- $authorised_lib{$branchcode}=$branchname;
- }
-
- #----- itemtypes
- } elsif ($tagslib->{$tag}->{$subfield}->{authorised_value} eq "itemtypes") {
- my $sth=$dbh->prepare("select itemtype,description from itemtypes order by description");
- $sth->execute;
- push @authorised_values, "" unless ($tagslib->{$tag}->{$subfield}->{mandatory});
-
- while (my ($itemtype,$description) = $sth->fetchrow_array) {
- push @authorised_values, $itemtype;
- $authorised_lib{$itemtype}=$description;
- }
- $value=$itemtype unless ($value);
-
- #---- "true" authorised value
- } else {
- $authorised_values_sth->execute($tagslib->{$tag}->{$subfield}->{authorised_value});
-
- push @authorised_values, "" unless ($tagslib->{$tag}->{$subfield}->{mandatory});
-
- while (my ($value,$lib) = $authorised_values_sth->fetchrow_array) {
- push @authorised_values, $value;
- $authorised_lib{$value}=$lib;
- }
- }
- return CGI::scrolling_list( -name => 'field_value',
- -values => \@authorised_values,
- -default => $value,
- -labels => \%authorised_lib,
- -override => 1,
- -size => 1,
- -multiple => 0 );
-}
-
-
-=item create_input
- builds the <input ...> entry for a subfield.
-=cut
-sub create_input () {
- my ($tag,$subfield,$value,$i,$tabloop,$rec,$authorised_values_sth,$id) = @_;
- my $dbh=C4::Context->dbh;
- $value =~ s/"/"/g;
- my %subfield_data;
- $subfield_data{id}=$id;
- $subfield_data{tag}=$tag;
- $subfield_data{subfield}=$subfield;
- $subfield_data{marc_lib}="<span id=\"error$i\">".$tagslib->{$tag}->{$subfield}->{lib}."</span>";
- $subfield_data{marc_lib_plain}=$tagslib->{$tag}->{$subfield}->{lib};
- $subfield_data{tag_mandatory}=$tagslib->{$tag}->{mandatory};
- $subfield_data{mandatory}=$tagslib->{$tag}->{$subfield}->{mandatory};
- $subfield_data{repeatable}=$tagslib->{$tag}->{$subfield}->{repeatable};
- $subfield_data{index} = $i;
- $subfield_data{visibility} = "display:none" if (substr($tagslib->{$tag}->{$subfield}->{hidden},2,1) gt "0") ; #check parity
- # it's an authorised field
- if ($tagslib->{$tag}->{$subfield}->{authorised_value}) {
- $subfield_data{marc_value}= build_authorized_values_list($tag, $subfield, $value, $dbh,$authorised_values_sth);
- # it's linking authority field to another authority
- } elsif ($tagslib->{$tag}->{$subfield}->{link}) {
- $subfield_data{marc_value}="<input onblur=\"this.style.backgroundColor='#ffffff';\" onfocus=\"this.style.backgroundColor='#ffffff;'\" tabindex=\"1\" type=\"text\" name=\"field_value\" id=\"field_value$id\" value=\"$value\" size=\"40\" maxlength=\"255\" DISABLE READONLY> <a style=\"cursor: help;\" href=\"javascript:Dopop('../authorities/auth_linker.pl?index=$id',$id);\">...</a>";
-
- # it's a plugin field
- } elsif ($tagslib->{$tag}->{$subfield}->{'value_builder'}) {
- # opening plugin. Just check wether we are on a developper computer on a production one
- # (the cgidir differs)
- my $cgidir = C4::Context->intranetdir ."/cgi-bin/value_builder";
- unless (opendir(DIR, "$cgidir")) {
- $cgidir = C4::Context->intranetdir."/value_builder";
- }
- my $plugin=$cgidir."/".$tagslib->{$tag}->{$subfield}->{'value_builder'};
- require $plugin;
- my $extended_param = plugin_parameters($dbh,$rec,$tagslib,$i,$tabloop);
- my ($function_name,$javascript) = plugin_javascript($dbh,$rec,$tagslib,$i,$tabloop);
- $subfield_data{marc_value}="<input tabindex=\"1\" type=\"text\" name=\"field_value\" id=\"field_value$id\" value=\"$value\" size=\"40\" maxlength=\"255\" DISABLE READONLY OnFocus=\"javascript:Focus$function_name($i)\" OnBlur=\"javascript:Blur$function_name($i); \"> <a style=\"cursor: help;\" href=\"javascript:Clic$function_name($i)\">...</a> $javascript";
- # it's an hidden field
- } elsif ($tag eq '') {
- $subfield_data{marc_value}="<input onblur=\"this.style.backgroundColor='#ffffff';\" onfocus=\"this.style.backgroundColor='#ffffff'; \" tabindex=\"1\" type=\"hidden\" name=\"field_value\" id=\"field_value$id\" value=\"$value\">";
- } elsif (substr($tagslib->{$tag}->{$subfield}->{'hidden'},2,1) gt "1") {
-
- $subfield_data{marc_value}="<input onblur=\"this.style.backgroundColor='#ffffff';\" onfocus=\"this.style.backgroundColor='#ffffff'; \" tabindex=\"1\" type=\"text\" name=\"field_value\" id=\"field_value$id\" value=\"$value\" size=\"40\" maxlength=\"255\" >";
- # it's a standard field
- } else {
- if (length($value) >100) {
- $subfield_data{marc_value}="<textarea tabindex=\"1\" name=\"field_value\" id=\"field_value$id\" cols=\"40\" rows=\"5\" >$value</textarea>";
- } else {
- $subfield_data{marc_value}="<input onblur=\"this.style.backgroundColor='#ffffff';\" onfocus=\"this.style.backgroundColor='#ffffff'; \" tabindex=\"1\" type=\"text\" name=\"field_value\" id=\"field_value$id\" value=\"$value\" size=\"50\">"; #"
- }
- }
- return \%subfield_data;
-}
-
-sub build_tabs ($$$;$){
- my($template, $xmlhash, $dbh,$addedfield) = @_;
- # fill arrays
- my @loop_data =();
- my $tag;
- my $i=0;
-my $id=100;
-my ($authidtagfield,$authidtagsubfield)=MARCfind_marc_from_kohafield("authid","authorities");
- my $authorised_values_sth = $dbh->prepare("select authorised_value,lib
- from authorised_values
- where category=? order by lib");
-my $author;
-my $controlfields;
-my $leader;
-if ($xmlhash){
- $author=$xmlhash->{'datafield'};
- $controlfields=$xmlhash->{'controlfield'};
- $leader=$xmlhash->{'leader'};
-}
- my @BIG_LOOP;
-my %built;
-# loop through each tab 0 through 9
- for (my $tabloop = 0; $tabloop <= 9; $tabloop++) {
- my @loop_data = ();
- foreach my $tag (sort(keys (%{$tagslib}))) {
- my $indicator;
- # if MARC::Record is not empty => use it as master loop, then add missing subfields that should be in the tab.
- # if MARC::Record is empty => use tab as master loop.
- if ($xmlhash) {
- ####
-
- my %tagdefined;
- my %definedsubfields;
- my $hiddenrequired;
- my ($ind1,$ind2);
-
- if ($tag>9){
- next if ($tag eq $authidtagfield); #we do not want authid to duplicate
-
- foreach my $data (@$author){
- $hiddenrequired=0;
- my @subfields_data;
- undef %definedsubfields;
- if ($data->{'tag'} eq $tag){
- $tagdefined{$tag}=1 ;
- if ($built{$tag}==1){
- $hiddenrequired=1;
- }
- $ind1=" ";
- $ind2=" ";
- foreach my $subfieldcode ( $data->{'subfield'}){
- foreach my $code ( @$subfieldcode){
- next if ($tagslib->{$tag}->{$code->{'code'}}->{tab} ne $tabloop);
- my $subfield=$code->{'code'} ;
- my $value=$code->{'content'};
- $definedsubfields{$tag.$subfield}=1 ;
- $built{$tag}=1;
- push(@subfields_data, &create_input($tag,$subfield,$value,$i,$tabloop,$xmlhash,$authorised_values_sth,$id)) ;
- $i++ ;
- }
- } ##each subfield
- $ind1=$data->{'ind1'};
- $ind2= $data->{'ind2'};
-
- if ($hiddenrequired && $#loop_data >=0 && $loop_data[$#loop_data]->{'tag'} eq $tag) {
- my @hiddensubfields_data;
- my %tag_data;
- push(@hiddensubfields_data, &create_input('','','',$i,$tabloop,$xmlhash,$authorised_values_sth,$id));
- $tag_data{tag} = '';
- $tag_data{tag_lib} = '';
- $tag_data{indicator} = '';
- $tag_data{subfield_loop} = \@hiddensubfields_data;
- push (@loop_data, \%tag_data);
- $i++;
- }
- # now, loop again to add parameter subfield that are not in the MARC::Record
-
- foreach my $subfield (sort( keys %{$tagslib->{$tag}})) {
- next if (length $subfield !=1);
- next if ($tagslib->{$tag}->{$subfield}->{tab} ne $tabloop);
- next if ((substr($tagslib->{$tag}->{$subfield}->{hidden},2,1) >1) ); #check for visibility flag
- next if ($definedsubfields{$tag.$subfield} );
- push(@subfields_data, &create_input($tag,$subfield,'',$i,$tabloop,$xmlhash,$authorised_values_sth,$id));
- $definedsubfields{$tag.$subfield}=1;
- $i++;
- }
- if ($#subfields_data >= 0) {
- my %tag_data;
- $tag_data{tag} = $tag;
- $tag_data{tag_lib} = $tagslib->{$tag}->{lib};
- $tag_data{repeatable} = $tagslib->{$tag}->{repeatable};
- $tag_data{indicator} = $ind1.$ind2 if ($tag>=10);
- $tag_data{subfield_loop} = \@subfields_data;
- push (@loop_data, \%tag_data);
-
- }
- $id++;
- }## if tag matches
-
- }#eachdata
- }else{ ## tag <10
- next if ($tag eq $authidtagfield); #we do not want authid to duplicate
-
- if ($tag eq "000" || $tag eq "LDR"){
- my $subfield="@";
- next if ($tagslib->{$tag}->{$subfield}->{tab} ne $tabloop);
- my @subfields_data;
- my $value=$leader->[0] if $leader->[0];
- $tagdefined{$tag}=1 ;
- push(@subfields_data, &create_input($tag,$subfield,$value,$i,$tabloop,$xmlhash,$authorised_values_sth,$id));
- $i++;
- if ($#subfields_data >= 0) {
- my %tag_data;
- $tag_data{tag} = $tag;
- $tag_data{tag_lib} = $tagslib->{$tag}->{lib};
- $tag_data{repeatable} = $tagslib->{$tag}->{repeatable};
- $tag_data{subfield_loop} = \@subfields_data;
- $tag_data{fixedfield} = 1;
- push (@loop_data, \%tag_data);
- }
- }else{
- foreach my $control (@$controlfields){
- my $subfield="@";
- next if ($tagslib->{$tag}->{$subfield}->{tab} ne $tabloop);
- next if ($tagslib->{$tag} eq $authidtagfield);
- my @subfields_data;
- if ($control->{'tag'} eq $tag){
- $hiddenrequired=0;
- $tagdefined{$tag}=1;
- if ($built{$tag}==1){$hiddenrequired=1;}
- my $value=$control->{'content'} ;
- $definedsubfields{$tag.'@'}=1;
- push(@subfields_data, &create_input($tag,$subfield,$value,$i,$tabloop,$xmlhash,$authorised_values_sth,$id));
- $i++;
-
- $built{$tag}=1;
- ###hiddenrequired
- if ($#subfields_data >= 0) {
- my %tag_data;
- $tag_data{tag} = $tag;
- $tag_data{tag_lib} = $tagslib->{$tag}->{lib};
- $tag_data{repeatable} = $tagslib->{$tag}->{repeatable};
- $tag_data{subfield_loop} = \@subfields_data;
- $tag_data{fixedfield} = 1;
- push (@loop_data, \%tag_data);
- }
- $id++;
- }## tag matches
- }# each control
- }
- }##tag >9
-
-
- ##### Any remaining tag
- my @subfields_data;
- # now, loop again to add parameter subfield that are not in the MARC::Record
- foreach my $subfield (sort( keys %{$tagslib->{$tag}})) {
- next if ($tagdefined{$tag} );
- next if (length $subfield !=1);
- next if ($tagslib->{$tag}->{$subfield}->{tab} ne $tabloop);
- next if ((substr($tagslib->{$tag}->{$subfield}->{hidden},2,1) > 1) ); #check for visibility flag
- push(@subfields_data, &create_input($tag,$subfield,'',$i,$tabloop,$xmlhash,$authorised_values_sth,$id));
- $tagdefined{$tag.$subfield}=1;
- $i++;
- }
- if ($#subfields_data >= 0) {
- my %tag_data;
- $tag_data{tag} = $tag;
- $tag_data{tag_lib} = $tagslib->{$tag}->{lib};
- $tag_data{repeatable} = $tagslib->{$tag}->{repeatable};
- $tag_data{indicator} = $ind1.$ind2 if ($tag>=10);
- $tag_data{subfield_loop} = \@subfields_data;
- if ($tag<10) {
- $tag_data{fixedfield} = 1;
- }
-
- push (@loop_data, \%tag_data);
- }
-
-
- if ($addedfield eq $tag) {
- my %tag_data;
- my @subfields_data;
- $id++;
- $tagdefined{$tag}=1 ;
- foreach my $subfield (sort( keys %{$tagslib->{$tag}})) {
- next if (length $subfield !=1);
- next if ($tagslib->{$tag}->{$subfield}->{tab} ne $tabloop);
- next if ((substr($tagslib->{$tag}->{$subfield}->{hidden},2,1) >1) ); #check for visibility flag
- $addedfield="";
- push(@subfields_data, &create_input($tag,$subfield,'',$i,$tabloop,$xmlhash,$authorised_values_sth,$id));
- $i++;
- }
- if ($#subfields_data >= 0) {
- $tag_data{tag} = $tag;
- $tag_data{tag_lib} = $tagslib->{$tag}->{lib};
- $tag_data{repeatable} = $tagslib->{$tag}->{repeatable};
- $tag_data{indicator} = ' ' if ($tag>=10);
- $tag_data{subfield_loop} = \@subfields_data;
- if ($tag<10) {
- $tag_data{fixedfield} = 1;
- }
- push (@loop_data, \%tag_data);
-
- }
-
- }
-
- # if breeding is empty
- } else {
- my @subfields_data;
- foreach my $subfield (sort(keys %{$tagslib->{$tag}})) {
- next if (length $subfield !=1);
- next if ((substr($tagslib->{$tag}->{$subfield}->{hidden},2,1) >1) ); #check for visibility flag
- next if ($tagslib->{$tag}->{$subfield}->{tab} ne $tabloop);
- push(@subfields_data, &create_input($tag,$subfield,'',$i,$tabloop,$xmlhash,$authorised_values_sth,$id));
- $i++;
- }
- if ($#subfields_data >= 0) {
- my %tag_data;
- $tag_data{tag} = $tag;
- $tag_data{tag_lib} = $tagslib->{$tag}->{lib};
- $tag_data{repeatable} = $tagslib->{$tag}->{repeatable};
- $tag_data{indicator} = $indicator;
- $tag_data{subfield_loop} = \@subfields_data;
- $tag_data{tagfirstsubfield} = $tag_data{subfield_loop}[0];
- if ($tag<10) {
- $tag_data{fixedfield} = 1;
- }
- push (@loop_data, \%tag_data);
- }
- }
- $id++;
- }
- if ($#loop_data >=0) {
- my %big_loop_line;
- $big_loop_line{number}=$tabloop;
- $big_loop_line{innerloop}=\@loop_data;
- push @BIG_LOOP,\%big_loop_line;
- }
-# $template->param($tabloop."XX" =>\@loop_data);
- $template->param(BIG_LOOP => \@BIG_LOOP);
-}## tab loop
-}
-
-
-sub build_hidden_data () {
- # build hidden data =>
- # we store everything, even if we show only requested subfields.
-
- my @loop_data =();
- my $i=0;
- foreach my $tag (keys %{$tagslib}) {
- my $previous_tag = '';
-
- # loop through each subfield
- foreach my $subfield (keys %{$tagslib->{$tag}}) {
- next if ($subfield eq 'lib');
- next if ($subfield eq 'tab');
- next if ($subfield eq 'mandatory');
- next if ($subfield eq 'repeatable');
- next if ($tagslib->{$tag}->{$subfield}->{'tab'} ne "-1");
- my %subfield_data;
- $subfield_data{marc_lib}=$tagslib->{$tag}->{$subfield}->{lib};
- $subfield_data{marc_mandatory}=$tagslib->{$tag}->{$subfield}->{mandatory};
- $subfield_data{marc_repeatable}=$tagslib->{$tag}->{$subfield}->{repeatable};
- $subfield_data{marc_value}="<input type=\"hidden\" name=\"field_value[]\">";
- push(@loop_data, \%subfield_data);
- $i++
- }
- }
-}
+my $addedfield;
# ========================
# MAIN
@@ -442,6 +52,9 @@
my $authtypecode = $input->param('authtypecode');
my $dbh = C4::Context->dbh;
+my $authorised_values_sth = $dbh->prepare("select authorised_value,lib
+ from authorised_values
+ where category=? order by lib");
$authtypecode = &AUTHfind_authtypecode($dbh,$authid) if !$authtypecode;
@@ -454,7 +67,7 @@
debug => 1,
});
$template->param(nonav => $nonav,index=>$myindex,authtypecode=>$authtypecode,);
-$tagslib = AUTHgettagslib($dbh,1,$authtypecode);
+my $tagslib = AUTHgettagslib($dbh,1,$authtypecode);
my $xmlhash;
my $xml;
@@ -463,7 +76,7 @@
my ($oldauthnumtagfield,$oldauthnumtagsubfield);
my ($oldauthtypetagfield,$oldauthtypetagsubfield);
-$is_a_modif=0;
+my $is_a_modif=0;
if ($authid) {
$is_a_modif=1;
($oldauthnumtagfield,$oldauthnumtagsubfield) = MARCfind_marc_from_kohafield("authid","authorities");
@@ -520,8 +133,9 @@
FINAL:
#warn "duplicate";
# it may be a duplicate, warn the user and do nothing
- build_tabs ($template, $xmlhash, $dbh);
- build_hidden_data;
+ build_tabs ($template, $xmlhash, $dbh,$addedfield,$tagslib,$authorised_values_sth,1);
+ $tagslib=build_hidden_data($tagslib);
+
$template->param(authid =>$authid,
duplicateauthid => $duplicateauthid,
duplicateauthvalue => $duplicateauthvalue,
@@ -541,8 +155,9 @@
$xml='<?xml version="1.0" encoding="UTF-8"?>'.$xml;
my $xmlhash=XML_xml2hash_onerecord($xml);
# adding an empty field
- build_tabs ($template, $xmlhash, $dbh,$addedfield);
- build_hidden_data;
+ build_tabs ($template, $xmlhash, $dbh,$addedfield,$tagslib,$authorised_values_sth,1);
+ $tagslib=build_hidden_data($tagslib);
+
$template->param(
authid => $authid,);
@@ -560,8 +175,8 @@
{
$authid = "";
}
- build_tabs ($template, $xmlhash, $dbh);
- build_hidden_data;
+ build_tabs($template, $xmlhash, $dbh,$addedfield,$tagslib,$authorised_values_sth,1);
+ $tagslib=build_hidden_data($tagslib);
$template->param(oldauthtypetagfield=>$oldauthtypetagfield, oldauthtypetagsubfield=>$oldauthtypetagsubfield,
oldauthnumtagfield=>$oldauthnumtagfield, oldauthnumtagsubfield=>$oldauthnumtagsubfield,
authid => $authid , authtypecode=>$authtypecode, );
More information about the Koha-cvs
mailing list