use Modern::Perl;
use CGI qw ( -utf8 );
-use C4::Auth;
-use C4::Koha;
+use C4::Auth qw( get_template_and_user );
use C4::Context;
-use C4::Output;
+use C4::Output qw( output_html_with_http_headers );
use C4::Context;
use Koha::Caches;
use Koha::BiblioFrameworks;
# retrieve parameters
-my $input = new CGI;
+my $input = CGI->new;
my $frameworkcode = $input->param('frameworkcode') || ''; # set to select framework
my $existingframeworkcode = $input->param('existingframeworkcode') || '';
my $searchfield = $input->param('searchfield') || 0;
= get_template_and_user({template_name => "admin/marctagstructure.tt",
query => $input,
type => "intranet",
- authnotrequired => 0,
flagsrequired => { parameters => 'manage_marc_frameworks' },
- debug => 1,
});
my $frameworks = Koha::BiblioFrameworks->search({}, { order_by => ['frameworktext'] });
#---- if primkey exists, it's a modify action, so read values to modify...
my $data;
if ($searchfield) {
- $sth=$dbh->prepare("select tagfield,liblibrarian,libopac,repeatable,mandatory,authorised_value,ind1_defaultvalue,ind2_defaultvalue from marc_tag_structure where tagfield=? and frameworkcode=?");
+ $sth=$dbh->prepare("select tagfield,liblibrarian,libopac,repeatable,mandatory,important,authorised_value,ind1_defaultvalue,ind2_defaultvalue from marc_tag_structure where tagfield=? and frameworkcode=?");
$sth->execute($searchfield,$frameworkcode);
$data=$sth->fetchrow_hashref;
}
if ($searchfield) {
$template->param(searchfield => $searchfield);
- $template->param(action => "Modify tag");
$template->param('heading_modify_tag_p' => 1);
} else {
- $template->param(action => "Add tag");
$template->param('heading_add_tag_p' => 1);
}
$template->param('use_heading_flags_p' => 1);
libopac => $data->{'libopac'},
repeatable => $data->{'repeatable'},
mandatory => $data->{'mandatory'},
+ important => $data->{'important'},
authorised_value => $data->{authorised_value},
ind1_defaultvalue => $data->{'ind1_defaultvalue'},
ind2_defaultvalue => $data->{'ind2_defaultvalue'}
my $libopac = $input->param('libopac');
my $repeatable = $input->param('repeatable') ? 1 : 0;
my $mandatory = $input->param('mandatory') ? 1 : 0;
+ my $important = $input->param('important') ? 1 : 0;
my $authorised_value = $input->param('authorised_value');
my $ind1_defaultvalue = $input->param('ind1_defaultvalue');
my $ind2_defaultvalue = $input->param('ind2_defaultvalue');
if ($input->param('modif')) {
$sth = $dbh->prepare(
- "UPDATE marc_tag_structure SET liblibrarian=? ,libopac=? ,repeatable=? ,mandatory=? ,authorised_value=?, ind1_defaultvalue=?, ind2_defaultvalue=? WHERE frameworkcode=? AND tagfield=?"
+ "UPDATE marc_tag_structure SET liblibrarian=? ,libopac=? ,repeatable=? ,mandatory=? ,important=? ,authorised_value=?, ind1_defaultvalue=?, ind2_defaultvalue=? WHERE frameworkcode=? AND tagfield=?"
);
$sth->execute( $liblibrarian,
$libopac,
$repeatable,
$mandatory,
+ $important,
$authorised_value,
$ind1_defaultvalue,
$ind2_defaultvalue,
);
} else {
$sth = $dbh->prepare(
- "INSERT INTO marc_tag_structure (tagfield,liblibrarian,libopac,repeatable,mandatory,authorised_value,ind1_defaultvalue,ind2_defaultvalue,frameworkcode) values (?,?,?,?,?,?,?,?,?)"
+ "INSERT INTO marc_tag_structure (tagfield,liblibrarian,libopac,repeatable,mandatory,important,authorised_value,ind1_defaultvalue,ind2_defaultvalue,frameworkcode) values (?,?,?,?,?,?,?,?,?,?)"
);
$sth->execute($tagfield,
$liblibrarian,
$libopac,
$repeatable,
$mandatory,
+ $important,
$authorised_value,
$ind1_defaultvalue,
$ind2_defaultvalue,
}
$cache->clear_from_cache("MarcStructure-0-$frameworkcode");
$cache->clear_from_cache("MarcStructure-1-$frameworkcode");
- $cache->clear_from_cache("default_value_for_mod_marc-");
$cache->clear_from_cache("MarcSubfieldStructure-$frameworkcode");
+ $cache->clear_from_cache("MarcCodedFields-$frameworkcode");
print $input->redirect("/cgi-bin/koha/admin/marctagstructure.pl?searchfield=$tagfield&frameworkcode=$frameworkcode");
exit;
# END $OP eq ADD_VALIDATE
$sth2->execute($searchfield, $frameworkcode);
$cache->clear_from_cache("MarcStructure-0-$frameworkcode");
$cache->clear_from_cache("MarcStructure-1-$frameworkcode");
- $cache->clear_from_cache("default_value_for_mod_marc-");
$cache->clear_from_cache("MarcSubfieldStructure-$frameworkcode");
+ $cache->clear_from_cache("MarcCodedFields-$frameworkcode");
$template->param( searchfield => $searchfield );
# END $OP eq DELETE_CONFIRMED
################## ITEMTYPE_CREATE ##################################
# called automatically if an unexisting frameworkis selected
} elsif ($op eq 'framework_create') {
- $sth = $dbh->prepare("select count(*),marc_tag_structure.frameworkcode,frameworktext from marc_tag_structure,biblio_framework where biblio_framework.frameworkcode=marc_tag_structure.frameworkcode group by marc_tag_structure.frameworkcode");
- $sth->execute;
- my @existingframeworkloop;
- while (my ($tot,$thisframeworkcode,$frameworktext) = $sth->fetchrow) {
- if ($tot>0) {
- push @existingframeworkloop, {
- value => $thisframeworkcode,
- frameworktext => $frameworktext,
- };
- }
- }
- $template->param( existingframeworkloop => \@existingframeworkloop );
+ my $frameworks = Koha::BiblioFrameworks->search(
+ {
+ 'marc_tag_structure.frameworkcode' => { '!=' => undef }
+ },
+ {
+ join => 'marc_tag_structure',
+ distinct => 1
+ }
+ );
+ $template->param( existing_frameworks => $frameworks );
################## DEFAULT ##################################
} else { # DEFAULT
marc_tag_structure.libopac as mts_libopac,
marc_tag_structure.repeatable as mts_repeatable,
marc_tag_structure.mandatory as mts_mandatory,
+ marc_tag_structure.important as mts_important,
marc_tag_structure.authorised_value as mts_authorized_value,
marc_tag_structure.ind1_defaultvalue as mts_ind1_defaultvalue,
marc_tag_structure.ind1_defaultvalue as mts_ind2_defaultvalue,
$row_data{liblibrarian} = $results[$i]->{'mts_liblibrarian'};
$row_data{repeatable} = $results[$i]->{'mts_repeatable'};
$row_data{mandatory} = $results[$i]->{'mts_mandatory'};
+ $row_data{important} = $results[$i]->{'mts_important'};
$row_data{authorised_value} = $results[$i]->{'mts_authorised_value'};
$row_data{ind1_defaultvalue} = $results[$i]->{'mts_ind1_defaultvalue'};
$row_data{ind2_defaultvalue} = $results[$i]->{'mts_ind2_defaultvalue'};
$subfield_data{kohafield} = $results[$j]->{'kohafield'};
$subfield_data{repeatable} = $results[$j]->{'repeatable'};
$subfield_data{mandatory} = $results[$j]->{'mandatory'};
+ $subfield_data{important} = $results[$j]->{'important'};
$subfield_data{tab} = $results[$j]->{'tab'};
$subfield_data{seealso} = $results[$j]->{'seealso'};
$subfield_data{authorised_value} = $results[$j]->{'authorised_value'};
$row_data{liblibrarian} = $results->[$i]{'liblibrarian'};
$row_data{repeatable} = $results->[$i]{'repeatable'};
$row_data{mandatory} = $results->[$i]{'mandatory'};
+ $row_data{important} = $results->[$i]{'important'};
$row_data{authorised_value} = $results->[$i]{'authorised_value'};
$row_data{ind1_defaultvalue} = $results->[$i]{'ind1_defaultvalue'};
$row_data{ind2_defaultvalue} = $results->[$i]{'ind2_defaultvalue'};
sub StringSearch {
my ($searchstring,$frameworkcode)=@_;
my $sth = C4::Context->dbh->prepare("
- SELECT tagfield,liblibrarian,libopac,repeatable,mandatory,authorised_value,ind1_defaultvalue,ind2_defaultvalue
+ SELECT tagfield,liblibrarian,libopac,repeatable,mandatory,important,authorised_value,ind1_defaultvalue,ind2_defaultvalue
FROM marc_tag_structure
WHERE (tagfield >= ? and frameworkcode=?)
ORDER BY tagfield
# the sub used to duplicate a framework from an existing one in MARC parameters tables.
#
sub duplicate_framework {
- my ($newframeworkcode,$oldframeworkcode) = @_;
- my $dbh = C4::Context->dbh;
- $dbh->do(q|INSERT INTO marc_tag_structure (tagfield, liblibrarian, libopac, repeatable, mandatory, authorised_value, ind1_defaultvalue, ind2_defaultvalue, frameworkcode)
- SELECT tagfield,liblibrarian,libopac,repeatable,mandatory,authorised_value, ind1_defaultvalue, ind2_defaultvalue, ? from marc_tag_structure where frameworkcode=?|, undef, $newframeworkcode, $oldframeworkcode );
+ my ($newframeworkcode,$oldframeworkcode) = @_;
+ my $dbh = C4::Context->dbh;
+ $dbh->do(q|INSERT INTO marc_tag_structure (tagfield, liblibrarian, libopac, repeatable, mandatory, important, authorised_value, ind1_defaultvalue, ind2_defaultvalue, frameworkcode)
+ SELECT tagfield,liblibrarian,libopac,repeatable,mandatory,important,authorised_value, ind1_defaultvalue, ind2_defaultvalue, ? from marc_tag_structure where frameworkcode=?|, undef, $newframeworkcode, $oldframeworkcode );
- $dbh->do(q|INSERT INTO marc_subfield_structure (frameworkcode,tagfield,tagsubfield,liblibrarian,libopac,repeatable,mandatory,kohafield,tab,authorised_value,authtypecode,value_builder,seealso,hidden)
- SELECT ?,tagfield,tagsubfield,liblibrarian,libopac,repeatable,mandatory,kohafield,tab,authorised_value,authtypecode,value_builder,seealso,hidden from marc_subfield_structure where frameworkcode=?
+ $dbh->do(q|INSERT INTO marc_subfield_structure (frameworkcode,tagfield,tagsubfield,liblibrarian,libopac,repeatable,mandatory,important,kohafield,tab,authorised_value,authtypecode,value_builder,isurl,seealso,hidden,link,defaultvalue,maxlength)
+ SELECT ?,tagfield,tagsubfield,liblibrarian,libopac,repeatable,mandatory,important,kohafield,tab,authorised_value,authtypecode,value_builder,isurl,seealso,hidden,link,defaultvalue,maxlength from marc_subfield_structure where frameworkcode=?
|, undef, $newframeworkcode, $oldframeworkcode );
}