[Koha-cvs] CVS: koha/value_builder unimarc_field_4XX.pl,1.1,1.2

Henri-Damien LAURENT hdl at users.sourceforge.net
Wed Mar 16 17:24:41 CET 2005


Update of /cvsroot/koha/koha/value_builder
In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv26147/value_builder

Modified Files:
	unimarc_field_4XX.pl 
Log Message:
Automatic input filling for 4XX Unimarc fields on plugin selections 

Index: unimarc_field_4XX.pl
===================================================================
RCS file: /cvsroot/koha/koha/value_builder/unimarc_field_4XX.pl,v
retrieving revision 1.1
retrieving revision 1.2
diff -C2 -r1.1 -r1.2
*** unimarc_field_4XX.pl	12 Mar 2005 16:45:50 -0000	1.1
--- unimarc_field_4XX.pl	16 Mar 2005 16:24:38 -0000	1.2
***************
*** 29,35 ****
--- 29,37 ----
  use C4::Database;
  use C4::Biblio;
+ #use C4::SimpleMarc;
  use C4::SearchMarc;
  use C4::Acquisition;
  use C4::Koha;
+ use MARC::Record;
  
  sub plugin_parameters {
***************
*** 78,82 ****
  	my $searchdesc;
  	
! 	if ($op eq "do_search") {
  		my @marclist = $query->param('marclist');
  		my @and_or = $query->param('and_or');
--- 80,212 ----
  	my $searchdesc;
  	
! 	if ($op eq "fillinput"){
! 		my $bibnum = $query->param('bibnum');
! 		my $index = $query->param('index');
! 		my $marcrecord;
! # open template
! 		($template, $loggedinuser, $cookie)= get_template_and_user({template_name => "value_builder/unimarc_field_4XX.tmpl",
! 			     query => $query,
! 			     type => "intranet",
! 			     authnotrequired => 0,
! 			     flagsrequired => {catalogue => 1},
! 			     debug => 1,
! 			    });
! 		#get bibid
! 		my $bibid;
! 		my $req= $dbh->prepare("SELECT distinctrow bibid,biblionumber FROM `marc_biblio` WHERE biblionumber= ?");
! 		$req->execute($bibnum);
! 		($bibid,$bibnum) = $req->fetchrow;
! 		warn "bibid :".$bibid;
! 		#get marc record
! 		$marcrecord = MARCgetbiblio($dbh,$bibid);
! 		warn "record : ".$marcrecord->as_formatted;
! # 		my @loop_data =();
! # 		my $tag;
! # 		my @loop_data =();
! # 		my @subfields_data;
! 		
! 		my $subfield_value_9=$bibid;
! 		my $subfield_value_0=$marcrecord->field('001');
! 		my $subfield_value_a;
! 		if ($marcrecord->field('200')){
! 			$subfield_value_a=$marcrecord->field('200')->subfield("f");
! 		} elsif ($marcrecord->field('700')){
! 			$subfield_value_a=$marcrecord->field('700')->subfield("a");
! 		} elsif ($marcrecord->field('701')){
! 			$subfield_value_a=$marcrecord->field('701')->subfield("a");
! 		}
! 		my $subfield_value_c = $marcrecord->field('210')->subfield("d") if ($marcrecord->field('210'));
! 		my $subfield_value_d;
! 		if ($marcrecord->field('100')){
! 			my $publicationdate;
! 			warn "date de publication 1".substr($marcrecord->field('100')->subfield("a"),9,4)."   date de publication 2 ".substr($marcrecord->field('100')->subfield("a"),12,4);
! 			$publicationdate = substr($marcrecord->field('100')->subfield("a"),9,4);
! 			if (substr($marcrecord->field('100')->subfield("a"),12,4)>$publicationdate){
! 			$publicationdate=substr($marcrecord->field('100')->subfield("a"),12,4);
! 			}
! 			$subfield_value_d=$publicationdate;
! 		}
! 		my $subfield_value_e= $marcrecord->field('205')->subfield("a") if ($marcrecord->field('205'));
! 		
! 		my $subfield_value_h; 
! 		if (($marcrecord->field('200')) && ($marcrecord->field('200')->subfield("h"))){
! 			$subfield_value_h = $marcrecord->field('200')->subfield("h") ;
! 		} elsif (($marcrecord->field('225')) && ($marcrecord->field('225')->subfield("h"))) {
! 			$subfield_value_h = $marcrecord->field('225')->subfield("h") ;
! 		} elsif (($marcrecord->field('500')) && ($marcrecord->field('500')->subfield("h"))) {
! 			$subfield_value_h = $marcrecord->field('500')->subfield("h") ;
! 		}
! 		
! 		my $subfield_value_i;
! 		if (($marcrecord->field('200')) && ($marcrecord->field('200')->subfield("i"))){
! 			$subfield_value_i = $marcrecord->field('200')->subfield("i") ;
! 		} elsif (($marcrecord->field('225')) && ($marcrecord->field('225')->subfield("i"))) {
! 			$subfield_value_i = $marcrecord->field('225')->subfield("i") ;
! 		} elsif (($marcrecord->field('500')) && ($marcrecord->field('500')->subfield("i"))) {
! 			$subfield_value_i = $marcrecord->field('500')->subfield("i") ;
! 		}
! 
! 		my $subfield_value_p = $marcrecord->field('215')->subfield("a") if ($marcrecord->field('215'));
! 		
! 		my $subfield_value_t;
! 		if (($marcrecord->field('200')) && ($marcrecord->field('200')->subfield("a"))){
! 			$subfield_value_t = $marcrecord->field('200')->subfield("a") ;
! 		} elsif (($marcrecord->field('225')) && ($marcrecord->field('225')->subfield("a"))) {
! 			$subfield_value_t = $marcrecord->field('225')->subfield("a") ;
! 		} elsif (($marcrecord->field('500')) && ($marcrecord->field('500')->subfield("a"))) {
! 			$subfield_value_t = $marcrecord->field('500')->subfield("a") ;
! 		}
! 		
! 		my $subfield_value_u = $marcrecord->field('856')->subfield("p") if ($marcrecord->field('856'));
! 		
! 		my $subfield_value_v;
! 		if (($marcrecord->field('225')) && ($marcrecord->field('225')->subfield("v"))){
! 			$subfield_value_v = $marcrecord->field('225')->subfield("v") ;
! 		} elsif (($marcrecord->field('200')) && ($marcrecord->field('200')->subfield("h"))) {
! 			$subfield_value_v = $marcrecord->field('200')->subfield("h") ;
! 		}
! 		my $subfield_value_x = $marcrecord->field('011')->subfield("a") if ($marcrecord->field('011') and not (($marcrecord->field('011')->subfield("y")) or ($marcrecord->field('011')->subfield("z"))));
! 		my $subfield_value_y = $marcrecord->field('013')->subfield("a") if ($marcrecord->field('013'));
! 		if ($marcrecord->field('010')){
! 			my $subfield_value_y = $marcrecord->field('010')->subfield("a");
! 		}
! # 		my @subf;
! # 		#=(a,c,d,e,h,i,p,t,u,v,x,y,0,9);
! # 			# loop through each subfield
! # 		for my $i (0..$#subf) {
! # 			$subf[$i][0] = "@" unless $subf[$i][0];
! # 			my %subfield_data;
! # 			$subfield_data{marc_value}=$subf[$i][1];
! # 			$subfield_data{marc_subfield}=$subf[$i][0];
! # 			$subfield_data{marc_tag}="";#$field->tag();
! # 			push(@subfields_data, \%subfield_data);
! # 		}
! # 		if ($#subfields_data>=0) {
! # 			my %tag_data;
! # 			$tag_data{tag}="";#$field->tag().' -'. "";
! # 			$tag_data{subfield} = \@subfields_data;
! # 			push (@loop_data, \%tag_data);
! # 		}
! #		$template->param("0XX" =>\@loop_data);
! 		$template->param(fillinput => 1,
! 						index => $query->param('index')."",
! 						bibid=>$bibid?$bibid:"",
! 						subfield_value_9=>$subfield_value_9,
! 						subfield_value_0=>$subfield_value_0,
! 						subfield_value_a=>$subfield_value_a,
! 						subfield_value_c=>$subfield_value_c,
! 						subfield_value_d=>$subfield_value_d,
! 						subfield_value_e=>$subfield_value_e,
! 						subfield_value_h=>$subfield_value_h,
! 						subfield_value_i=>$subfield_value_i,
! 						subfield_value_p=>$subfield_value_p,
! 						subfield_value_t=>$subfield_value_t,
! 						subfield_value_u=>$subfield_value_u,
! 						subfield_value_v=>$subfield_value_v,
! 						subfield_value_x=>$subfield_value_x,
! 						subfield_value_y=>$subfield_value_y,
! 						);
! ###############################################################	
! 	}elsif ($op eq "do_search") {
  		my @marclist = $query->param('marclist');
  		my @and_or = $query->param('and_or');
***************
*** 115,120 ****
  											\@excluding, \@operator, \@value,
  											$startfrom*$resultsperpage, $resultsperpage,$orderby, $desc_or_asc);
! 		warn " biblio count : ".$total;
! 		warn " biblio count : ".$total;
  		
  		($template, $loggedinuser, $cookie)
--- 245,249 ----
  											\@excluding, \@operator, \@value,
  											$startfrom*$resultsperpage, $resultsperpage,$orderby, $desc_or_asc);
! #		warn " biblio count : ".$total;
  		
  		($template, $loggedinuser, $cookie)
***************
*** 260,263 ****
--- 389,393 ----
  						CGIbranch => $CGIbranch,
  						CGIPublisher => $CGIpublisher,
+ 						index=>$query->param('index'),
  						Search =>1,
  		);





More information about the Koha-cvs mailing list