[Koha-cvs] CVS: koha/acqui.simple addbiblio.pl,1.4,1.5

Paul POULAIN tipaul at users.sourceforge.net
Fri Oct 25 12:55:49 CEST 2002


Update of /cvsroot/koha/koha/acqui.simple
In directory usw-pr-cvs1:/tmp/cvs-serv15970/acqui.simple

Modified Files:
	addbiblio.pl 
Log Message:
Road to 1.3.2
* bugfixes and improvements
* manage mandatory MARC subfields
* new table : authorised_values. this table contains categories and authorised values for the category. On MARC management, you can map a subfield to a authorised_values category. If you do this, the subfield can only be filled with a authorised_value of the selected category.
this submit contains everything needed :
* updatedatabase
* admin screens
* "links" management
* creation of a html-list if a subfield is mapped to an authorised value.

Note this is different from authorities support, which will come soon.
The authorised_values is supposed to contains a "small" number of authorised values for a category (less than 50-100). If you enter more authorised values than this, it should be hard to find what you want in a BIG list...

Index: addbiblio.pl
===================================================================
RCS file: /cvsroot/koha/koha/acqui.simple/addbiblio.pl,v
retrieving revision 1.4
retrieving revision 1.5
diff -C2 -r1.4 -r1.5
*** addbiblio.pl	22 Oct 2002 15:50:23 -0000	1.4
--- addbiblio.pl	25 Oct 2002 10:55:47 -0000	1.5
***************
*** 83,87 ****
  
  my $record = MARCgetbiblio($dbh,$bibid) if ($oldbiblionumber);
! #my $record = MARCfindbreeding($dbh,$isbn) if ($isbn);
  
  #------------------------------------------------------------------------------------------------------------------------------
--- 83,87 ----
  
  my $record = MARCgetbiblio($dbh,$bibid) if ($oldbiblionumber);
! my $record = MARCfindbreeding($dbh,$isbn) if ($isbn);
  
  #------------------------------------------------------------------------------------------------------------------------------
***************
*** 105,108 ****
--- 105,109 ----
  			next if ($subfield eq 'tab');
  			next if ($tagslib->{$tag}->{$subfield}->{'tab'}  ne "10");
+ 			$i++;
  			my %subfield_data;
  			$subfield_data{tag}=$tag;
***************
*** 111,117 ****
  			$subfield_data{marc_mandatory}=$tagslib->{$tag}->{$subfield}->{mandatory};
  			$subfield_data{marc_repeatable}=$tagslib->{$tag}->{$subfield}->{repeatable};
! 			$subfield_data{marc_value}="<input type=\"text\" name=\"value[]\">";
  			push(@loop_data, \%subfield_data);
- 			$i++
  		}
  	}
--- 112,117 ----
  			$subfield_data{marc_mandatory}=$tagslib->{$tag}->{$subfield}->{mandatory};
  			$subfield_data{marc_repeatable}=$tagslib->{$tag}->{$subfield}->{repeatable};
! 			$subfield_data{marc_value}="<input type=\"text\" name=\"field_value\">";
  			push(@loop_data, \%subfield_data);
  		}
  	}
***************
*** 185,189 ****
  			$subfield_data{marc_mandatory}=$tagslib->{$tag}->{$subfield}->{mandatory};
  			$subfield_data{marc_repeatable}=$tagslib->{$tag}->{$subfield}->{repeatable};
! 			$subfield_data{marc_value}="<input type=\"text\" name=\"value[]\">";
  			push(@loop_data, \%subfield_data);
  			$i++
--- 185,189 ----
  			$subfield_data{marc_mandatory}=$tagslib->{$tag}->{$subfield}->{mandatory};
  			$subfield_data{marc_repeatable}=$tagslib->{$tag}->{$subfield}->{repeatable};
! 			$subfield_data{marc_value}="<input type=\"text\" name=\"field_value\">";
  			push(@loop_data, \%subfield_data);
  			$i++
***************
*** 202,205 ****
--- 202,207 ----
  	my @loop_data =();
  	my $tag;
+ 	my $i=0;
+ 	my $authorised_values_sth = $dbh->prepare("select authorised_value from authorised_values where category=?");
  	# loop through each tab 0 through 9
  	for (my $tabloop = 0; $tabloop<=9;$tabloop++) {
***************
*** 218,231 ****
  				$subfield_data{tag}=$tag;
  				$subfield_data{subfield}=$subfield;
! 				$subfield_data{marc_lib}=$tagslib->{$tag}->{$subfield}->{lib};
  				$subfield_data{mandatory}=$tagslib->{$tag}->{$subfield}->{mandatory};
  				$subfield_data{repeatable}=$tagslib->{$tag}->{$subfield}->{repeatable};
  				if ($record ne -1) {
! 					my $value ="";# &find_value($tag,$subfield,$record);
! 					$subfield_data{marc_value}="<input type=\"text\" name=\"value[]\" value=\"$value\">";
  				} else {
! 					$subfield_data{marc_value}="<input type=\"text\" name=\"value[]\">";
  				}
  				push(@subfields_data, \%subfield_data);
  			}
  			if ($#subfields_data>=0) {
--- 220,263 ----
  				$subfield_data{tag}=$tag;
  				$subfield_data{subfield}=$subfield;
! 				$subfield_data{marc_lib}="<DIV id=\"error$i\">".$tagslib->{$tag}->{$subfield}->{lib}."</div>";
  				$subfield_data{mandatory}=$tagslib->{$tag}->{$subfield}->{mandatory};
  				$subfield_data{repeatable}=$tagslib->{$tag}->{$subfield}->{repeatable};
  				if ($record ne -1) {
! 					my $value = find_value($tag,$subfield,$record);
! 					if ($tagslib->{$tag}->{$subfield}->{authorised_value}) {
! 						$authorised_values_sth->execute($tagslib->{$tag}->{$subfield}->{authorised_value});
! 						my @authorised_values;
! 						push @authorised_values, "" unless ($subfield_data{mandatory});
! 						while ((my $value) = $authorised_values_sth->fetchrow_array) {
! 							push @authorised_values, $value;
! 						}
! 						$subfield_data{marc_value}= CGI::scrolling_list(-name=>'field_value',
! 																					-values=> \@authorised_values,
! 																					-default=>"$value",
! 																					-size=>1,
! 																					-multiple=>0,
! 																					);
! 					} else {
! 						$subfield_data{marc_value}="<input type=\"text\" name=\"field_value\" value=\"$value\">";
! 					}
  				} else {
! 					if ($tagslib->{$tag}->{$subfield}->{authorised_value}) {
! 						$authorised_values_sth->execute($tagslib->{$tag}->{$subfield}->{authorised_value});
! 						my @authorised_values;
! 						push @authorised_values, "" unless ($subfield_data{mandatory});
! 						while ((my $value) = $authorised_values_sth->fetchrow_array) {
! 							push @authorised_values, $value;
! 						}
! 						$subfield_data{marc_value}= CGI::scrolling_list(-name=>'field_value',
! 																					-values=> \@authorised_values,
! 																					-size=>1,
! 																					-multiple=>0,
! 																					);
! 					} else {
! 						$subfield_data{marc_value}="<input type=\"text\" name=\"field_value\">";
! 					}
  				}
  				push(@subfields_data, \%subfield_data);
+ 				$i++;
  			}
  			if ($#subfields_data>=0) {
***************
*** 252,256 ****
  			$subfield_data{marc_mandatory}=$tagslib->{$tag}->{$subfield}->{mandatory};
  			$subfield_data{marc_repeatable}=$tagslib->{$tag}->{$subfield}->{repeatable};
! 			$subfield_data{marc_value}="<input type=\"hidden\" name=\"value[]\">";
  			push(@loop_data, \%subfield_data);
  			$i++
--- 284,288 ----
  			$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++





More information about the Koha-cvs mailing list