koha-cvs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Koha-cvs] koha C4/AuthoritiesMarc.pm C4/Biblioadd.pm auth... [rel_TG]


From: Tumer Garip
Subject: [Koha-cvs] koha C4/AuthoritiesMarc.pm C4/Biblioadd.pm auth... [rel_TG]
Date: Wed, 28 Mar 2007 02:50:28 +0000

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/"/&quot;/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   => address@hidden,
-                               -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/"/&quot;/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} = 
address@hidden;
-                                               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} = 
address@hidden;
-                                               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} = 
address@hidden;
-                                                                       
$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} = 
address@hidden;
-                                               $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} = 
address@hidden;
-                                               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} = 
address@hidden;
-                                                       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} = 
address@hidden;
-                                       $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;
-            address@hidden;
-            push @BIG_LOOP,\%big_loop_line;
-            }  
-#              $template->param($tabloop."XX" =>address@hidden);
-               $template->param(BIG_LOOP => address@hidden);
-}## 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,   );




reply via email to

[Prev in Thread] Current Thread [Next in Thread]