Lines 41-46
use MARC::File::XML;
Link Here
|
41 |
use URI::Escape; |
41 |
use URI::Escape; |
42 |
|
42 |
|
43 |
our $dbh = C4::Context->dbh; |
43 |
our $dbh = C4::Context->dbh; |
|
|
44 |
our $building_plugin={}; |
45 |
#hashref { record => .., subfieldid => .., } |
46 |
#used in building the new cataloging plugins (without redefinitions) |
47 |
#plugin script should add function and javascript to hash |
44 |
|
48 |
|
45 |
sub find_value { |
49 |
sub find_value { |
46 |
my ($tagfield,$insubfield,$record) = @_; |
50 |
my ($tagfield,$insubfield,$record) = @_; |
Lines 241-259
sub generate_subfield_form {
Link Here
|
241 |
elsif ( $subfieldlib->{value_builder} ) { |
245 |
elsif ( $subfieldlib->{value_builder} ) { |
242 |
# opening plugin |
246 |
# opening plugin |
243 |
my $plugin = C4::Context->intranetdir . "/cataloguing/value_builder/" . $subfieldlib->{'value_builder'}; |
247 |
my $plugin = C4::Context->intranetdir . "/cataloguing/value_builder/" . $subfieldlib->{'value_builder'}; |
244 |
if (do $plugin) { |
248 |
my ( $function_name, $javascript ) = _new_plugin_builder( $plugin, $temp, $subfield_data{id} ); #no tabno passed for items |
245 |
my $extended_param = plugin_parameters( $dbh, $temp, $tagslib, $subfield_data{id}, $loop_data ); |
249 |
if( $function_name ) { |
246 |
my ( $function_name, $javascript ) = plugin_javascript( $dbh, $temp, $tagslib, $subfield_data{id}, $loop_data ); |
250 |
my $change = index($javascript, 'function Change') > -1 ? |
247 |
my $change = index($javascript, 'function Change') > -1 ? |
251 |
"return Change$function_name($subfield_data{random}, '$subfield_data{id}');" : |
248 |
"return Change$function_name($subfield_data{random}, '$subfield_data{id}');" : |
252 |
'return 1;'; |
249 |
'return 1;'; |
|
|
250 |
$subfield_data{marc_value} = qq[<input type="text" $attributes |
253 |
$subfield_data{marc_value} = qq[<input type="text" $attributes |
251 |
onfocus="Focus$function_name($subfield_data{random}, '$subfield_data{id}');" |
254 |
onfocus="Focus$function_name($subfield_data{random}, '$subfield_data{id}');" |
252 |
onchange=" $change" |
255 |
onchange=" $change" |
253 |
onblur=" Blur$function_name($subfield_data{random}, '$subfield_data{id}');" /> |
256 |
onblur=" Blur$function_name($subfield_data{random}, '$subfield_data{id}');" /> |
254 |
<a href="#" class="buttonDot" onclick="Clic$function_name('$subfield_data{id}'); return false;" title="Tag Editor">...</a> |
257 |
<a href="#" class="buttonDot" onclick="Clic$function_name('$subfield_data{id}'); return false;" title="Tag Editor">...</a> |
255 |
$javascript]; |
258 |
$javascript]; |
256 |
} else { |
259 |
} |
|
|
260 |
else { |
257 |
warn "Plugin Failed: $plugin"; |
261 |
warn "Plugin Failed: $plugin"; |
258 |
$subfield_data{marc_value} = "<input type=\"text\" $attributes />"; # supply default input form |
262 |
$subfield_data{marc_value} = "<input type=\"text\" $attributes />"; # supply default input form |
259 |
} |
263 |
} |
Lines 280-285
sub generate_subfield_form {
Link Here
|
280 |
return \%subfield_data; |
284 |
return \%subfield_data; |
281 |
} |
285 |
} |
282 |
|
286 |
|
|
|
287 |
sub _new_plugin_builder { |
288 |
my ($plugin, $record, $subfieldid) = @_; |
289 |
|
290 |
$building_plugin = { |
291 |
record => $record, |
292 |
subfieldid => $subfieldid, |
293 |
}; |
294 |
do $plugin || return; |
295 |
|
296 |
#first, try the new way without redefines using building_plugin hash |
297 |
if( defined $building_plugin->{function} && |
298 |
defined $building_plugin->{javascript} ) { |
299 |
return ($building_plugin->{function}, |
300 |
$building_plugin->{javascript} ); |
301 |
} |
302 |
|
303 |
#arriving here, we try the old way with redefines: we are PHASING this OUT |
304 |
#next call is of no use, commented |
305 |
#my $extended_param = plugin_parameters( $dbh, $rec, $tagslib, $subfield_data{id}, $tabloop ); |
306 |
my ( $function_name, $javascript ) = plugin_javascript( undef, $record, undef, $subfieldid ); #no tabno passed for items, same for tagslib |
307 |
#first param was dbh, not needed: use C4::Context->dbh in plugin |
308 |
return ( $function_name, $javascript ); |
309 |
#caller tests if function_name is defined |
310 |
} |
311 |
|
283 |
# Removes some subfields when prefilling items |
312 |
# Removes some subfields when prefilling items |
284 |
# This function will remove any subfield that is not in the SubfieldsToUseWhenPrefill syspref |
313 |
# This function will remove any subfield that is not in the SubfieldsToUseWhenPrefill syspref |
285 |
sub removeFieldsForPrefill { |
314 |
sub removeFieldsForPrefill { |
286 |
- |
|
|