- # get today date & replace YYYY, MM, DD if provided in the default value
- my ( $year, $month, $day ) = Today();
- $month = sprintf( "%02d", $month );
- $day = sprintf( "%02d", $day );
- $value =~ s/YYYY/$year/g;
- $value =~ s/MM/$month/g;
- $value =~ s/DD/$day/g;
- }
- my $dbh = C4::Context->dbh;
- my %subfield_data = (
- tag => $tag,
- subfield => $subfield,
- marc_lib => substr( $tagslib->{$tag}->{$subfield}->{lib}, 0, 22 ),
- marc_lib_plain => $tagslib->{$tag}->{$subfield}->{lib},
- tag_mandatory => $tagslib->{$tag}->{mandatory},
- mandatory => $tagslib->{$tag}->{$subfield}->{mandatory},
- repeatable => $tagslib->{$tag}->{$subfield}->{repeatable},
- kohafield => $tagslib->{$tag}->{$subfield}->{kohafield},
- index => $index_tag,
- id => "tag_".$tag."_subfield_".$subfield."_".$index_tag."_".$index_subfield,
- value => $value,
- );
- if($subfield eq '@'){
- $subfield_data{id} = "tag_".$tag."_subfield_00_".$index_tag."_".$index_subfield;
- } else {
- $subfield_data{id} = "tag_".$tag."_subfield_".$subfield."_".$index_tag."_".$index_subfield;
- }
-
-
- $subfield_data{visibility} = "display:none;"
- if ( ($tagslib->{$tag}->{$subfield}->{hidden} % 2 == 1) and $value ne ''
- or ($value eq '' and !$tagslib->{$tag}->{$subfield}->{mandatory})
- );
-
- # it's an authorised field
- if ( $tagslib->{$tag}->{$subfield}->{authorised_value} ) {
- $subfield_data{marc_value} =
- build_authorized_values_list( $tag, $subfield, $value, $dbh,
- $authorised_values_sth,$index_tag,$index_subfield );
-
- # it's a thesaurus / authority field
- }
- elsif ( $tagslib->{$tag}->{$subfield}->{authtypecode} ) {
- $subfield_data{marc_value} =
- "<input type=\"text\"
- id=\"".$subfield_data{id}."\"
- name=\"".$subfield_data{id}."\"
- value=\"$value\"
- class=\"input_marceditor\"
- tabindex=\"1\"
- DISABLE READONLY \/>
- <span class=\"buttonDot\"
- onclick=\"Dopop('/cgi-bin/koha/authorities/auth_finder.pl?authtypecode=".$tagslib->{$tag}->{$subfield}->{authtypecode}."&index=$subfield_data{id}','$subfield_data{id}')\">...</span>
- ";
- # it's a plugin field
- }
- elsif ( $tagslib->{$tag}->{$subfield}->{'value_builder'} ) {
-
- # opening plugin. Just check wether we are on a developper computer on a production one
- # (the cgidir differs)
- my $cgidir = C4::Context->intranetdir . "/cgi-bin/cataloguing/value_builder";
- unless ( opendir( DIR, "$cgidir" ) ) {
- $cgidir = C4::Context->intranetdir . "/cataloguing/value_builder";
- }
- my $plugin = $cgidir . "/" . $tagslib->{$tag}->{$subfield}->{'value_builder'};
- do $plugin || die "Plugin Failed: ".$plugin;
- my $extended_param = plugin_parameters( $dbh, $rec, $tagslib, $subfield_data{id}, $tabloop );
- my ( $function_name, $javascript ) = plugin_javascript( $dbh, $rec, $tagslib, $subfield_data{id}, $tabloop );
-# my ( $function_name, $javascript,$extended_param );
-
- $subfield_data{marc_value} =
- "<input tabindex=\"1\"
- type=\"text\"
- id=".$subfield_data{id}."
- name=".$subfield_data{id}."
- value=\"$value\"
- class=\"input_marceditor\"
- onfocus=\"javascript:Focus$function_name($index_tag)\"
- onblur=\"javascript:Blur$function_name($index_tag); \" \/>
- <span class=\"buttonDot\"
- onclick=\"Clic$function_name('$subfield_data{id}')\">...</a>
- $javascript";
- # it's an hidden field
- }
- elsif ( $tag eq '' ) {
- $subfield_data{marc_value} =
- "<input tabindex=\"1\"
- type=\"hidden\"
- id=".$subfield_data{id}."
- name=".$subfield_data{id}."
- value=\"$value\" \/>
- ";
- }
- elsif ( $tagslib->{$tag}->{$subfield}->{'hidden'} ) {
- $subfield_data{marc_value} =
- "<input type=\"text\"
- id=".$subfield_data{id}."
- name=".$subfield_data{id}."
- class=\"input_marceditor\"
- tabindex=\"1\"
- value=\"$value\"
- \/>";
-
- # it's a standard field
- }
- else {
- if (
- length($value) > 100
- or
- ( C4::Context->preference("marcflavour") eq "UNIMARC" && $tag >= 300
- and $tag < 400 && $subfield eq 'a' )
- or ( $tag >= 500
- and $tag < 600
- && C4::Context->preference("marcflavour") eq "MARC21" )
- )
- {
- $subfield_data{marc_value} =
- "<textarea cols=\"70\"
- rows=\"4\"
- id=".$subfield_data{id}."
- name=".$subfield_data{id}."
- class=\"input_marceditor\"
- tabindex=\"1\"
- >$value</textarea>
- ";
- }
- else {
- $subfield_data{marc_value} =
- "<input type=\"text\"
- id=".$subfield_data{id}."
- name=".$subfield_data{id}."
- value=\"$value\"
- tabindex=\"1\"
- class=\"input_marceditor\"
- \/>
- ";
- }
- }
- $subfield_data{'index_subfield'} = $index_subfield;
- return \%subfield_data;
-}
-
-=item CreateKey
-
- Create a random value to set it into the input name
-
-=cut
-
-sub CreateKey(){
- return int(rand(1000000));
-}
-
-sub build_tabs ($$$$$) {