X-Git-Url: http://koha-dev.rot13.org:8081/gitweb/?a=blobdiff_plain;f=cataloguing%2Fvalue_builder%2Fmarc21_field_008_authorities.pl;h=414d9ff688bf23969ce6e0ac1c6476355cbbc04c;hb=6f204fdf96f16340da184aa27142a391871dcc37;hp=9da4ae2cc3e6fd2bb8c8fd3e2ee420ba3fd6913d;hpb=b9c20fa9cf37f5bb16202c400e92bad74f141390;p=koha-ffzg.git diff --git a/cataloguing/value_builder/marc21_field_008_authorities.pl b/cataloguing/value_builder/marc21_field_008_authorities.pl index 9da4ae2cc3..414d9ff688 100755 --- a/cataloguing/value_builder/marc21_field_008_authorities.pl +++ b/cataloguing/value_builder/marc21_field_008_authorities.pl @@ -1,149 +1,104 @@ #!/usr/bin/perl +# Converted to new plugin style (Bug 13437) # Copyright 2000-2002 Katipo Communications # # This file is part of Koha. # -# Koha is free software; you can redistribute it and/or modify it under the -# terms of the GNU General Public License as published by the Free Software -# Foundation; either version 2 of the License, or (at your option) any later -# version. +# Koha is free software; you can redistribute it and/or modify it +# under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 3 of the License, or +# (at your option) any later version. # -# Koha is distributed in the hope that it will be useful, but WITHOUT ANY -# WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR -# A PARTICULAR PURPOSE. See the GNU General Public License for more details. +# Koha is distributed in the hope that it will be useful, but +# WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. # -# You should have received a copy of the GNU General Public License along with -# Koha; if not, write to the Free Software Foundation, Inc., 59 Temple Place, -# Suite 330, Boston, MA 02111-1307 USA +# You should have received a copy of the GNU General Public License +# along with Koha; if not, see . -use strict; +use Modern::Perl; use C4::Auth; -use CGI; +use CGI qw ( -utf8 ); use C4::Context; use C4::Search; use C4::Output; - -=head1 - -plugin_parameters : other parameters added when the plugin is called by the dopop function - -=cut -# find today's date -my ($sec,$min,$hour,$mday,$mon,$year,$wday,$yday,$isdst) = localtime(time); -$year = substr($year,1,2); -$mon +=1; -my $date = "$year-$mon-$mday"; -my $res = ""; -if (length($mon)==1) { - $mon='0'.$mon; -} -if (length($mday)==1) { - $mday='0'.$mday; +use Koha::Util::FrameworkPlugin qw|date_entered|; + +use constant FIXLEN_DATA_ELTS => '|| aca||aabn | a|a d'; +use constant PREF_008 => 'MARCAuthorityControlField008'; + +my $builder = sub { + my ( $params ) = @_; + my $function_name = $params->{id}; + my $dateentered = date_entered(); + my $defaultval = substr( C4::Context->preference(PREF_008) || FIXLEN_DATA_ELTS, 0, 34 ); + my $res=" + "; -return ($function_name,$res); -} -sub plugin { -my ($input) = @_; - my $index= $input->param('index'); - my $result= $input->param('result'); - - - my $dbh = C4::Context->dbh; - -my ($template, $loggedinuser, $cookie) - = get_template_and_user({template_name => "cataloguing/value_builder/marc21_field_008_authorities.tmpl", - query => $input, - type => "intranet", - authnotrequired => 0, - flagsrequired => {editcatalogue => 1}, - debug => 1, - }); -# $result = " t xxu 00 0 eng d" unless $result; - $result = " t xxu||||| |||| 00| 0 eng d" unless $result; - my $f6 = substr($result,6,1); - my $f710 = substr($result,7,4); - my $f1114 = substr($result,11,4); - my $f1517 = substr($result,15,3); - my $f1821 = substr($result,18,4); - my $f22 = substr($result,22,1); - my $f23 = substr($result,23,1); - my $f2427 = substr($result,24,4); - my $f28 = substr($result,28,1); - my $f29 = substr($result,29,1); - my $f30 = substr($result,30,1); - my $f31 = substr($result,31,1); - my $f33 = substr($result,33,1); - my $f34 = substr($result,34,1); - my $f3537 = substr($result,35,3); - my $f38 = substr($result,38,1); - my $f39 = substr($result,39,1); - - $template->param( index => $index, - dateentered => $dateentered, - f6 => $f6, - "f6$f6" => $f6, - f710 => $f710, - f1114 => $f1114, - f1517 => $f1517, - f1821 => $f1821, - f22 => $f22, - "f22$f22" => $f22, - f23 => $f23, - "f23$f23" => $f23, - f2427 => $f2427, - "f24$f2427" => $f2427, - f28 => $f28, - "f28$f28" => $f28, - f29 => $f29, - "f29$f29" => $f29, - f30 => $f30, - "f230$f30" => $f30, - f31 => $f31, - "f31$f31" => $f31, - f33 => $f33, - "f33$f33" => $f33, - f34 => $f34, - "f34$f34" => $f34, - f3537 => $f3537, - f38 => $f38, - "f38$f38" => $f38, - f39 => $f39, - "f39$f39" => $f39, - ); - output_html_with_http_headers $input, $cookie, $template->output; -} - -1; + return $res; +}; + +my $launcher = sub { + my ( $params ) = @_; + my $input = $params->{cgi}; + my $index= $input->param('index'); + my $result= $input->param('result'); + my $authtype= $input->param('authtypecode')||''; + + my $defaultval = substr( C4::Context->preference(PREF_008) || FIXLEN_DATA_ELTS, 0, 34 ); + substr($defaultval,14-6,1)='b' if $authtype=~ /TOPIC_TERM|GENRE.FORM|CHRON_TERM/; + + my $dbh = C4::Context->dbh; + + my ($template, $loggedinuser, $cookie) + = get_template_and_user({template_name => "cataloguing/value_builder/marc21_field_008_authorities.tt", + query => $input, + type => "intranet", + flagsrequired => {editcatalogue => '*'}, + }); + my $dateentered = date_entered(); + $result = "$dateentered$defaultval" unless $result; + my @f; + for(0,6..17,28,29,31..33,38,39) { + $f[$_]=substr($result,$_,$_==0?6:1); + } + $template->param(index => $index); + + $f[0]= $dateentered if !$f[0] || $f[0]=~/\s/; + $template->param(f1 => $f[0]); + + for(6..17,28,29,31..33,38,39) { + $template->param( + "f$_" => $f[$_], + "f$_".($f[$_] eq '|'? 'pipe': $f[$_]) => $f[$_], + ); + } + output_html_with_http_headers $input, $cookie, $template->output; +}; + +return { builder => $builder, launcher => $launcher };