Koha/cataloguing/value_builder/marc21_leader.pl
Marcel de Rooy 964fae60ee Bug 13437: Conversion of marc21 cataloguing plugins to new style
This patch converts marc21 plugins to new style by making the following
modifications:

[1] Replace use strict with use Modern::Perl. This implies that we now
re-enabled warnings. There are no redefine warnings anymore, but note that
we need to silence some warnings from individual plugins that were covered
by disabling the warnings pragma until now. Silencing these individual
warnings is outside the scope of this report.
[2] Sub plugin_javascript is replaced by an anonymous subroutine $builder.
[3] The parameters of $builder are combined in a params hashref. In most
cases we only need $params->{id} for the function name.
[4] Javascript function Clicxxx is renamed to Clickxxx.
[5] The builder does no longer return function_name.
[6] Sub plugin is replaced by subroutine $launcher.
[7] The parameters of $launcher are combined in a params hashref. We only
use $params->{cgi}. Mostly we save that to $input. One exception: $query.
[8] The plugins returns a hash with $builder and/or $launcher.

Test plan:
[1] Run t/db_dependent/FrameworkPlugin.t -incl cataloguing/value_builder/
marc21*.pl. This should catch compile errors and general problems when
building or launching these plugins.
NOTE: You will see several initialize warnings from individual plugins that
were hidden until now by disabling warnings. This is fine; we will be
able to address these warnings now on new reports.
[2] Check behavior of several plugins in the marc editor.

Signed-off-by: Marcel de Rooy <m.de.rooy@rijksmuseum.nl>
Checked all marc21 plugins. Attached unused plugins to some field.
Some plugins (unused by default) may need some further attention, but
also outside the scope of this report.

Signed-off-by: Bernardo Gonzalez Kriegel <bgkriegel@gmail.com>
New warnigs, but all seems to work.
No errors.

Signed-off-by: Katrin Fischer <katrin.fischer.83@web.de>
Signed-off-by: Tomas Cohen Arazi <tomascohen@gmail.com>
2015-06-10 12:51:27 -03:00

97 lines
No EOL
2.8 KiB
Perl
Executable file

#!/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 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.
#
# You should have received a copy of the GNU General Public License
# along with Koha; if not, see <http://www.gnu.org/licenses>.
use Modern::Perl;
use C4::Auth;
use CGI qw ( -utf8 );
use C4::Context;
use C4::Search;
use C4::Output;
my $builder = sub {
my ( $params ) = @_;
my $function_name = $params->{id};
my $res = "
<script type=\"text/javascript\">
//<![CDATA[
function Focus$function_name(subfield_managed) {
if(!document.getElementById(\"$params->{id}\").value){
document.getElementById(\"$params->{id}\").value = ' nam a22 7a 4500';
}
return 1;
}
function Click$function_name(i) {
defaultvalue=document.getElementById(\"$params->{id}\").value;
newin=window.open(\"../cataloguing/plugin_launcher.pl?plugin_name=marc21_leader.pl&index=$params->{id}&result=\"+defaultvalue,\"tag_editor\",'width=1000,height=600,toolbar=false,scrollbars=yes');
}
//]]>
</script>
";
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 ( $template, $loggedinuser, $cookie ) = get_template_and_user(
{ template_name => "cataloguing/value_builder/marc21_leader.tt",
query => $input,
type => "intranet",
authnotrequired => 0,
flagsrequired => { editcatalogue => '*' },
debug => 1,
}
);
$result = " nam a22 7a 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 };