|
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 |
- |
|
|