- elsif ( $tagslib->{$tag}->{$subfield}->{'value_builder'} ) {
-
- # opening plugin. Just check whether we are on a developer computer on a production one
- # (the cgidir differs)
- my $cgidir = C4::Context->intranetdir . "/cgi-bin/cataloguing/value_builder";
- unless (-r $cgidir and -d $cgidir) {
- $cgidir = C4::Context->intranetdir . "/cataloguing/value_builder";
+ elsif ( $tagslib->{$tag}->{$subfield}->{'value_builder'} ) { # plugin
+ require Koha::FrameworkPlugin;
+ my $plugin = Koha::FrameworkPlugin->new({
+ name => $tagslib->{$tag}->{$subfield}->{'value_builder'},
+ });
+ my $pars= { dbh => $dbh, record => $rec, tagslib =>$tagslib,
+ id => $subfield_data{id}, tabloop => $tabloop };
+ $plugin->build( $pars );
+ if( !$plugin->errstr ) {
+ $subfield_data{marc_value} = {
+ type => 'text2',
+ id => $subfield_data{id},
+ name => $subfield_data{id},
+ value => $value,
+ maxlength => $max_length,
+ javascript => $plugin->javascript,
+ noclick => $plugin->noclick,
+ };
+ } else { # warn and supply default field
+ warn $plugin->errstr;
+ $subfield_data{marc_value} = {
+ type => 'text',
+ id => $subfield_data{id},
+ name => $subfield_data{id},
+ value => $value,
+ maxlength => $max_length,
+ };