@@ -, +, @@ cataloguing/value_builder/normarc*.pl. (Ignore substr and uninitialized warnings; these are not in the scope of this patch.) (See note 2.) --- cataloguing/value_builder/normarc_field_007.pl | 206 ++++++++++++------------ cataloguing/value_builder/normarc_field_008.pl | 70 ++++---- cataloguing/value_builder/normarc_leader.pl | 104 ++++++------ 3 files changed, 199 insertions(+), 181 deletions(-) --- a/cataloguing/value_builder/normarc_field_007.pl +++ a/cataloguing/value_builder/normarc_field_007.pl @@ -1,5 +1,7 @@ #!/usr/bin/perl +# Converted to new plugin style (Bug 13437) + # Copyright 2009 Magnus Enger Libriotech # # This file is part of Koha. @@ -17,125 +19,127 @@ # You should have received a copy of the GNU General Public License # along with Koha; if not, see . -use strict; -use C4::Auth; +use Modern::Perl; use CGI qw ( -utf8 ); -use C4::Context; -use C4::Search; +use C4::Auth; +use C4::Context; use C4::Output; -sub plugin_javascript { -my ($dbh,$record,$tagslib,$field_number,$tabloop) = @_; -my $function_name= $field_number; -my $res=" +my $builder = sub { + my ( $params ) = @_; + my $function_name = $params->{id}; + my $res=" "; + return $res; +}; -return ($function_name,$res); -} -sub plugin { -my ($input) = @_; - my $index= $input->param('index'); - my $result= $input->param('result'); - +my $launcher = sub { + my ( $params ) = @_; + my $input = $params->{cgi}; + my $index= $input->param('index'); + my $result= $input->param('result'); - my $dbh = C4::Context->dbh; + my $dbh = C4::Context->dbh; -my ($template, $loggedinuser, $cookie) - = get_template_and_user({template_name => "cataloguing/value_builder/normarc_field_007.tt", - query => $input, - type => "intranet", - authnotrequired => 0, - flagsrequired => {editcatalogue => 1}, - debug => 1, - }); - $result = "ta" unless $result; - my $f0 = substr($result,0,1); - my $f1 = substr($result,1,4); + my ($template, $loggedinuser, $cookie) = get_template_and_user({ + template_name => "cataloguing/value_builder/normarc_field_007.tt", + query => $input, + type => "intranet", + authnotrequired => 0, + flagsrequired => {editcatalogue => 1}, + debug => 1, + }); + $result = "ta" unless $result; + my $f0 = substr($result,0,1); + my $f1 = substr($result,1,4); #added new parameters to allow for all material types - my $f2 = substr($result,2,1); - my $f3 = substr($result,3,1); - my $f4 = substr($result,4,1); - my $f5 = substr($result,5,1); - my $f6 = substr($result,6,1); - my $f7 = substr($result,7,1); - my $f8 = substr($result,8,1); - my $f9 = substr($result,9,1); - my $f10 = substr($result,10,1); - my $f11 = substr($result,11,1); - my $f12 = substr($result,12,1); - my $f13 = substr($result,13,1); - my $f14 = substr($result,14,1); - my $f15 = substr($result,15,1); - my $f16 = substr($result,16,1); - my $f17 = substr($result,17,1); - my $f18 = substr($result,18,1); - my $f19 = substr($result,19,1); - my $f20 = substr($result,20,1); - my $f21 = substr($result,21,1); - my $f22 = substr($result,22,1); + my $f2 = substr($result,2,1); + my $f3 = substr($result,3,1); + my $f4 = substr($result,4,1); + my $f5 = substr($result,5,1); + my $f6 = substr($result,6,1); + my $f7 = substr($result,7,1); + my $f8 = substr($result,8,1); + my $f9 = substr($result,9,1); + my $f10 = substr($result,10,1); + my $f11 = substr($result,11,1); + my $f12 = substr($result,12,1); + my $f13 = substr($result,13,1); + my $f14 = substr($result,14,1); + my $f15 = substr($result,15,1); + my $f16 = substr($result,16,1); + my $f17 = substr($result,17,1); + my $f18 = substr($result,18,1); + my $f19 = substr($result,19,1); + my $f20 = substr($result,20,1); + my $f21 = substr($result,21,1); + my $f22 = substr($result,22,1); #FIXME: There is probably a more-elegant way to do this! #FIXME: Two of the material types treat position 06, 07, and 08 as a single #three-char field. This script works fine for creating values and sending them #back to the MARC, but if there is already a value in the 007, it won't send #it properly to the value builder for those two instances. Not sure how to solve. - $template->param( index => $index, - f0 => $f0, - "f0$f0" => $f0, - f1 => $f1, - "f1$f1" => $f1, - f2 => $f2, - "f2$f2" => $f2, - f3 => $f3, - "f3$f3" => $f3, - f4 => $f4, - "f4$f4" => $f4, - f5 => $f5, - "f5$f5" => $f5, - f6 => $f6, - "f6$f6" => $f6, - f7 => $f7, - "f7$f7" => $f7, - f8 => $f8, - "f8$f8" => $f8, - f9 => $f9, - "f9$f9" => $f9, - f10 => $f10, - "f10$f10" => $f10, - f11 => $f11, - "f11$f11" => $f11, - f12 => $f12, - "f12$f12" => $f12, - f13 => $f13, - "f13$f13" => $f13, - f14 => $f14, - "f14$f14" => $f14, - f15 => $f15, - "f15$f15" => $f15, - f16 => $f16, - "f16$f16" => $f16, - f17 => $f17, - "f17$f17" => $f17, - f18 => $f18, - "f18$f18" => $f18, - f19 => $f19, - "f19$f19" => $f19, - f20 => $f20, - "f20$f20" => $f20, - f21 => $f21, - "f21$f21" => $f21, - f22 => $f22, - "f22$f22" => $f22, - ); - output_html_with_http_headers $input, $cookie, $template->output; -} + $template->param( + index => $index, + f0 => $f0, + "f0$f0" => $f0, + f1 => $f1, + "f1$f1" => $f1, + f2 => $f2, + "f2$f2" => $f2, + f3 => $f3, + "f3$f3" => $f3, + f4 => $f4, + "f4$f4" => $f4, + f5 => $f5, + "f5$f5" => $f5, + f6 => $f6, + "f6$f6" => $f6, + f7 => $f7, + "f7$f7" => $f7, + f8 => $f8, + "f8$f8" => $f8, + f9 => $f9, + "f9$f9" => $f9, + f10 => $f10, + "f10$f10" => $f10, + f11 => $f11, + "f11$f11" => $f11, + f12 => $f12, + "f12$f12" => $f12, + f13 => $f13, + "f13$f13" => $f13, + f14 => $f14, + "f14$f14" => $f14, + f15 => $f15, + "f15$f15" => $f15, + f16 => $f16, + "f16$f16" => $f16, + f17 => $f17, + "f17$f17" => $f17, + f18 => $f18, + "f18$f18" => $f18, + f19 => $f19, + "f19$f19" => $f19, + f20 => $f20, + "f20$f20" => $f20, + f21 => $f21, + "f21$f21" => $f21, + f22 => $f22, + "f22$f22" => $f22, + ); + output_html_with_http_headers $input, $cookie, $template->output; +}; + +return { builder => $builder, launcher => $launcher }; --- a/cataloguing/value_builder/normarc_field_008.pl +++ a/cataloguing/value_builder/normarc_field_008.pl @@ -1,5 +1,7 @@ #!/usr/bin/perl +# Converted to new plugin style (Bug 13437) + # Copyright 2009 Magnus Enger Libriotech # # This file is part of Koha. @@ -17,61 +19,67 @@ # You should have received a copy of the GNU General Public License # along with Koha; if not, see . -use strict; -use C4::Auth; +use Modern::Perl; use CGI qw ( -utf8 ); -use C4::Context; -use C4::Search; +use C4::Auth; +use C4::Context; use C4::Output; -# find today's date -my ($sec, $min, $hour, $mday, $mon, $year, $wday, $yday, $isdst) = localtime(time); +sub date_entered { + # find today's date + my ($sec, $min, $hour, $mday, $mon, $year, $wday, $yday, $isdst) = + localtime(time); + $year += 1900; + $mon += 1; + return substr($year, 2, 2) . sprintf("%0.2d", $mon) . + sprintf("%0.2d", $mday); +} -$year += 1900; -$mon += 1; -my $dateentered = substr($year, 2, 2) . sprintf("%0.2d", $mon) . sprintf("%0.2d", $mday); +my $builder = sub { + my ( $params ) = @_; + my $function_name = $params->{id}; + my $dateentered = date_entered(); -sub plugin_javascript { my $lang = C4::Context->preference('DefaultLanguageField008' ); $lang = "eng" unless $lang; $lang = pack("A3", $lang); - my ($dbh, $record, $tagslib, $field_number, $tabloop) = @_; - my $function_name = $field_number; - my $res = " + my $res = " "; + return $res; +}; - return ($function_name, $res); -} +my $launcher = sub { + my ( $params ) = @_; + my $input = $params->{cgi}; + my $index = $input->param('index'); + my $result = $input->param('result'); + my $dateentered = date_entered(); -sub plugin { my $lang = C4::Context->preference('DefaultLanguageField008' ); $lang = "eng" unless $lang; $lang = pack("A3", $lang); - my ($input) = @_; - my $index = $input->param('index'); - my $result = $input->param('result'); my $dbh = C4::Context->dbh; @@ -85,7 +93,7 @@ sub plugin { } ); - # $result = " t xxu 00 0 eng d" unless $result; + # $result = " t xxu 00 0 eng d" unless $result; $result = "$dateentered" . "t no ||||| |||| 00| 0 $lang d" unless $result; my $f1 = substr($result, 0, 6); my $f6 = substr($result, 6, 1); @@ -170,4 +178,6 @@ sub plugin { "f39$f39" => $f39, ); output_html_with_http_headers $input, $cookie, $template->output; -} +}; + +return { builder => $builder, launcher => $launcher }; --- a/cataloguing/value_builder/normarc_leader.pl +++ a/cataloguing/value_builder/normarc_leader.pl @@ -1,5 +1,6 @@ #!/usr/bin/perl +# Converted to new plugin style (Bug 13437) # Copyright 2000-2002 Katipo Communications # @@ -18,73 +19,76 @@ # You should have received a copy of the GNU General Public License # along with Koha; if not, see . -use strict; -use C4::Auth; +use Modern::Perl; use CGI qw ( -utf8 ); -use C4::Context; -use C4::Search; +use C4::Auth; +use C4::Context; use C4::Output; -sub plugin_javascript { -my ($dbh,$record,$tagslib,$field_number,$tabloop) = @_; -my $function_name= $field_number; -my $res=" - "; -return ($function_name,$res); -} -sub plugin { -my ($input) = @_; - my $index= $input->param('index'); - my $result= $input->param('result'); + return $res; +}; +my $launcher = sub { + my ( $params ) = @_; + my $input = $params->{cgi}; + my $index= $input->param('index'); + my $result= $input->param('result'); - my $dbh = C4::Context->dbh; + my $dbh = C4::Context->dbh; -my ($template, $loggedinuser, $cookie) - = get_template_and_user({template_name => "cataloguing/value_builder/normarc_leader.tt", - query => $input, - type => "intranet", - authnotrequired => 0, - flagsrequired => {editcatalogue => 1}, - debug => 1, - }); - $result = " nam a22 1 4500" unless $result; - my $f5 = substr($result,5,1); - my $f6 = substr($result,6,1); - my $f7 = substr($result,7,1); - my $f8 = substr($result,8,1); - my $f17 = substr($result,17,1); - my $f18 = substr($result,18,1); - my $f19 = substr($result,19,1); - my $f2023 = substr($result,20,4); - $template->param(index => $index, - "f5$f5" => 1, - "f6$f6" => 1, - "f7$f7" => 1, - "f8$f8" => 1, - "f17$f17" => 1, - "f18$f18" => 1, - "f19$f19" => 1, - "f2023" => $f2023, - ); - output_html_with_http_headers $input, $cookie, $template->output; -} + my ($template, $loggedinuser, $cookie) = get_template_and_user({ + template_name => "cataloguing/value_builder/normarc_leader.tt", + query => $input, + type => "intranet", + authnotrequired => 0, + flagsrequired => {editcatalogue => 1}, + debug => 1, + }); + + $result = " nam a22 1 4500" unless $result; + my $f5 = substr($result,5,1); + my $f6 = substr($result,6,1); + my $f7 = substr($result,7,1); + my $f8 = substr($result,8,1); + my $f17 = substr($result,17,1); + my $f18 = substr($result,18,1); + my $f19 = substr($result,19,1); + my $f2023 = substr($result,20,4); + $template->param(index => $index, + "f5$f5" => 1, + "f6$f6" => 1, + "f7$f7" => 1, + "f8$f8" => 1, + "f17$f17" => 1, + "f18$f18" => 1, + "f19$f19" => 1, + "f2023" => $f2023, + ); + output_html_with_http_headers $input, $cookie, $template->output; +}; + +return { builder => $builder, launcher => $launcher }; --