-my $frameworkcode = $input->param('frameworkcode'); # set to select framework
-$frameworkcode="" unless $frameworkcode;
-my $existingframeworkcode = $input->param('existingframeworkcode'); # set when we have to create a new framework (in frameworkcode) by copying an old one (in existingframeworkcode)
-$existingframeworkcode = "" unless $existingframeworkcode;
+my $frameworkcode = $input->param('frameworkcode') || ''; # set to select framework
+my $existingframeworkcode = $input->param('existingframeworkcode') || '';
+my $searchfield = $input->param('searchfield') || 0;
+# set when we have to create a new framework (in frameworkcode) by copying an old one (in existingframeworkcode)
- my $selected = 1 if $thisframeworkcode eq $frameworkcode;
- my %row =(value => $thisframeworkcode,
- selected => $selected,
- frameworktext => $frameworks->{$thisframeworkcode}->{'frameworktext'},
- );
- push @frameworkloop, \%row;
+ push @frameworkloop, {
+ value => $thisframeworkcode,
+ selected => ($thisframeworkcode eq $frameworkcode) ? 1 : 0,
+ frameworktext => $frameworks->{$thisframeworkcode}->{'frameworktext'},
+ };
}
# check that framework is defined in marc_tag_structure
my $sth=$dbh->prepare("select count(*) from marc_tag_structure where frameworkcode=?");
$sth->execute($frameworkcode);
my ($frameworkexist) = $sth->fetchrow;
}
# check that framework is defined in marc_tag_structure
my $sth=$dbh->prepare("select count(*) from marc_tag_structure where frameworkcode=?");
$sth->execute($frameworkcode);
my ($frameworkexist) = $sth->fetchrow;
# if frameworkcode does not exists, then OP must be changed to "create framework" if we are not on the way to create it
# (op = itemtyp_create_confirm)
if ($op eq "framework_create_confirm") {
duplicate_framework($frameworkcode, $existingframeworkcode);
# if frameworkcode does not exists, then OP must be changed to "create framework" if we are not on the way to create it
# (op = itemtyp_create_confirm)
if ($op eq "framework_create_confirm") {
duplicate_framework($frameworkcode, $existingframeworkcode);
-$template->param(frameworkloop => \@frameworkloop,
- frameworkcode => $frameworkcode,
- frameworktext => $frameworkinfo->{frameworktext});
-if ($op) {
-$template->param(script_name => $script_name,
- $op => 1); # we show only the TMPL_VAR names $op
-} else {
-$template->param(script_name => $script_name,
- else => 1); # we show only the TMPL_VAR names $op
-}
+$template->param(
+ frameworkloop => \@frameworkloop,
+ frameworkcode => $frameworkcode,
+ frameworktext => $frameworkinfo->{frameworktext},
+ script_name => $script_name,
+ ($op||'else') => 1,
+);
$sth=$dbh->prepare("select tagfield,liblibrarian,libopac,repeatable,mandatory,authorised_value from marc_tag_structure where tagfield=? and frameworkcode=?");
$sth->execute($searchfield,$frameworkcode);
$data=$sth->fetchrow_hashref;
$sth=$dbh->prepare("select tagfield,liblibrarian,libopac,repeatable,mandatory,authorised_value from marc_tag_structure where tagfield=? and frameworkcode=?");
$sth->execute($searchfield,$frameworkcode);
$data=$sth->fetchrow_hashref;
my $authorised_value = CGI::scrolling_list(-name=>'authorised_value',
-values=> \@authorised_values,
-size=>1,
my $authorised_value = CGI::scrolling_list(-name=>'authorised_value',
-values=> \@authorised_values,
-size=>1,
repeatable => CGI::checkbox(-name=>'repeatable',
-checked=> $data->{'repeatable'}?'checked':'',
-value=> 1,
repeatable => CGI::checkbox(-name=>'repeatable',
-checked=> $data->{'repeatable'}?'checked':'',
-value=> 1,
-label => '',
-id=> 'repeatable'),
mandatory => CGI::checkbox(-name => 'mandatory',
-checked => $data->{'mandatory'}?'checked':'',
-value => 1,
-label => '',
-id=> 'repeatable'),
mandatory => CGI::checkbox(-name => 'mandatory',
-checked => $data->{'mandatory'}?'checked':'',
-value => 1,
-label => '',
-id => 'mandatory'),
authorised_value => $authorised_value,
frameworkcode => $frameworkcode,
-label => '',
-id => 'mandatory'),
authorised_value => $authorised_value,
frameworkcode => $frameworkcode,
# END $OP eq ADD_FORM
################## ADD_VALIDATE ##################################
# called by add_form, used to insert/modify data in DB
} elsif ($op eq 'add_validate') {
# END $OP eq ADD_FORM
################## ADD_VALIDATE ##################################
# called by add_form, used to insert/modify data in DB
} elsif ($op eq 'add_validate') {
- my $tagfield =$input->param('tagfield');
- my $liblibrarian = $input->param('liblibrarian');
- my $libopac =$input->param('libopac');
- my $repeatable =$input->param('repeatable');
- my $mandatory =$input->param('mandatory');
- my $authorised_value =$input->param('authorised_value');
- if ($input->param('modif')) {
- $sth=$dbh->prepare("UPDATE marc_tag_structure SET liblibrarian=? ,libopac=? ,repeatable=? ,mandatory=? ,authorised_value=? WHERE frameworkcode=? AND tagfield=?");
- unless (C4::Context->config('demo') eq 1) {
+ my $tagfield = $input->param('tagfield');
+ my $liblibrarian = $input->param('liblibrarian');
+ my $libopac = $input->param('libopac');
+ my $repeatable = $input->param('repeatable') ? 1 : 0;
+ my $mandatory = $input->param('mandatory') ? 1 : 0;
+ my $authorised_value = $input->param('authorised_value');
+ unless (C4::Context->config('demo') == 1) {
+ if ($input->param('modif')) {
+ $sth = $dbh->prepare(
+ "UPDATE marc_tag_structure SET liblibrarian=? ,libopac=? ,repeatable=? ,mandatory=? ,authorised_value=? WHERE frameworkcode=? AND tagfield=?"
+ );
- );
- }
- $sth->finish;
- } else {
- $sth=$dbh->prepare("INSERT INTO marc_tag_structure (tagfield,liblibrarian,libopac,repeatable,mandatory,authorised_value,frameworkcode) values (?,?,?,?,?,?,?)");
- unless (C4::Context->config('demo') eq 1) {
+ );
+ } else {
+ $sth = $dbh->prepare(
+ "INSERT INTO marc_tag_structure (tagfield,liblibrarian,libopac,repeatable,mandatory,authorised_value,frameworkcode) values (?,?,?,?,?,?,?)"
+ );
exit;
# END $OP eq ADD_VALIDATE
################## DELETE_CONFIRM ##################################
# called by default form, used to confirm deletion of data in DB
} elsif ($op eq 'delete_confirm') {
$sth=$dbh->prepare("select tagfield,liblibrarian,libopac,repeatable,mandatory,authorised_value from marc_tag_structure where tagfield=? and frameworkcode=?");
exit;
# END $OP eq ADD_VALIDATE
################## DELETE_CONFIRM ##################################
# called by default form, used to confirm deletion of data in DB
} elsif ($op eq 'delete_confirm') {
$sth=$dbh->prepare("select tagfield,liblibrarian,libopac,repeatable,mandatory,authorised_value from marc_tag_structure where tagfield=? and frameworkcode=?");
- $sth->execute($searchfield,$frameworkcode);
- my $data=$sth->fetchrow_hashref;
- $sth->finish;
- $template->param(liblibrarian => $data->{'liblibrarian'},
- searchfield => $searchfield,
- frameworkcode => $frameworkcode,
- );
+ $sth->execute($searchfield, $frameworkcode);
+ my $data = $sth->fetchrow_hashref;
+ $template->param(
+ liblibrarian => $data->{'liblibrarian'},
+ searchfield => $searchfield,
+ frameworkcode => $frameworkcode,
+ );
# END $OP eq DELETE_CONFIRM
################## DELETE_CONFIRMED ##################################
# called by delete_confirm, used to effectively confirm deletion of data in DB
} elsif ($op eq 'delete_confirmed') {
# END $OP eq DELETE_CONFIRM
################## DELETE_CONFIRMED ##################################
# called by delete_confirm, used to effectively confirm deletion of data in DB
} elsif ($op eq 'delete_confirmed') {
- unless (C4::Context->config('demo') eq 1) {
- $dbh->do("delete from marc_tag_structure where tagfield='$searchfield' and frameworkcode='$frameworkcode'");
- $dbh->do("delete from marc_subfield_structure where tagfield='$searchfield' and frameworkcode='$frameworkcode'");
+ unless (C4::Context->config('demo') == 1) {
+ my $sth1 = $dbh->prepare("DELETE FROM marc_tag_structure WHERE tagfield=? AND frameworkcode=?");
+ my $sth2 = $dbh->prepare("DELETE FROM marc_subfield_structure WHERE tagfield=? AND frameworkcode=?");
+ $sth1->execute($searchfield, $frameworkcode);
+ $sth2->execute($searchfield, $frameworkcode);
# END $OP eq DELETE_CONFIRMED
################## ITEMTYPE_CREATE ##################################
# called automatically if an unexisting frameworkis selected
# END $OP eq DELETE_CONFIRMED
################## ITEMTYPE_CREATE ##################################
# called automatically if an unexisting frameworkis selected
my @existingframeworkloop;
while (my ($tot,$thisframeworkcode,$frameworktext) = $sth->fetchrow) {
if ($tot>0) {
my @existingframeworkloop;
while (my ($tot,$thisframeworkcode,$frameworktext) = $sth->fetchrow) {
if ($tot>0) {
- my %line = ( value => $thisframeworkcode,
- frameworktext => $frameworktext,
- );
- push @existingframeworkloop,\%line;
+ push @existingframeworkloop, {
+ value => $thisframeworkcode,
+ frameworktext => $frameworktext,
+ };
################## DEFAULT ##################################
} else { # DEFAULT
# here, $op can be unset or set to "framework_create_confirm".
################## DEFAULT ##################################
} else { # DEFAULT
# here, $op can be unset or set to "framework_create_confirm".
- $row_data{tagfield} = $results[$i]->{'mts_tagfield'};
- $row_data{liblibrarian} = $results[$i]->{'mts_liblibrarian'};
- $row_data{repeatable} = $results[$i]->{'mts_repeatable'};
- $row_data{mandatory} = $results[$i]->{'mts_mandatory'};
+ $row_data{tagfield} = $results[$i]->{'mts_tagfield'};
+ $row_data{liblibrarian} = $results[$i]->{'mts_liblibrarian'};
+ $row_data{repeatable} = $results[$i]->{'mts_repeatable'};
+ $row_data{mandatory} = $results[$i]->{'mts_mandatory'};
- $row_data{subfield_link} ="marc_subfields_structure.pl?op=add_form&tagfield=".$results[$i]->{'mts_tagfield'}."&frameworkcode=".$frameworkcode;
- $row_data{edit} = "$script_name?op=add_form&searchfield=".$results[$i]->{'mts_tagfield'}."&frameworkcode=".$frameworkcode;
- $row_data{delete} = "$script_name?op=delete_confirm&searchfield=".$results[$i]->{'mts_tagfield'}."&frameworkcode=".$frameworkcode;
- $row_data{toggle} = $toggle;
+ $row_data{subfield_link} = "marc_subfields_structure.pl?op=add_form&tagfield=".$results[$i]->{'mts_tagfield'}."&frameworkcode=".$frameworkcode;
+ $row_data{edit} = "$script_name?op=add_form&searchfield=" .$results[$i]->{'mts_tagfield'}."&frameworkcode=".$frameworkcode;
+ $row_data{delete} = "$script_name?op=delete_confirm&searchfield=" .$results[$i]->{'mts_tagfield'}."&frameworkcode=".$frameworkcode;
- $subfield_data{tagsubfield} = $results[$j]->{'tagsubfield'};
- $subfield_data{liblibrarian} = $results[$j]->{'liblibrarian'};
- $subfield_data{kohafield} = $results[$j]->{'kohafield'};
- $subfield_data{repeatable} = $results[$j]->{'repeatable'};
- $subfield_data{mandatory} = $results[$j]->{'mandatory'};
- $subfield_data{tab} = $results[$j]->{'tab'};
- $subfield_data{seealso} = $results[$j]->{'seealso'};
+ $subfield_data{tagsubfield} = $results[$j]->{'tagsubfield'};
+ $subfield_data{liblibrarian} = $results[$j]->{'liblibrarian'};
+ $subfield_data{kohafield} = $results[$j]->{'kohafield'};
+ $subfield_data{repeatable} = $results[$j]->{'repeatable'};
+ $subfield_data{mandatory} = $results[$j]->{'mandatory'};
+ $subfield_data{tab} = $results[$j]->{'tab'};
+ $subfield_data{seealso} = $results[$j]->{'seealso'};
- $subfield_data{authtypecode}= $results[$j]->{'authtypecode'};
- $subfield_data{value_builder}= $results[$j]->{'value_builder'};
- $subfield_data{toggle} = $toggle;
+ $subfield_data{authtypecode} = $results[$j]->{'authtypecode'};
+ $subfield_data{value_builder} = $results[$j]->{'value_builder'};
# warn "tagfield : ".$results[$j]->{'tagfield'}." tagsubfield :".$results[$j]->{'tagsubfield'};
push @internal_loop,\%subfield_data;
$j++;
}
$row_data{'subfields'}=\@internal_loop;
push(@loop_data, \%row_data);
# warn "tagfield : ".$results[$j]->{'tagfield'}." tagsubfield :".$results[$j]->{'tagsubfield'};
push @internal_loop,\%subfield_data;
$j++;
}
$row_data{'subfields'}=\@internal_loop;
push(@loop_data, \%row_data);
} else {
#here, normal old style : display every tags
my ($count,$results)=StringSearch($searchfield,$frameworkcode);
$cnt = $count;
} else {
#here, normal old style : display every tags
my ($count,$results)=StringSearch($searchfield,$frameworkcode);
$cnt = $count;
- $row_data{tagfield} = $results->[$i]{'tagfield'};
- $row_data{liblibrarian} = $results->[$i]{'liblibrarian'};
- $row_data{repeatable} = $results->[$i]{'repeatable'};
- $row_data{mandatory} = $results->[$i]{'mandatory'};
+ $row_data{tagfield} = $results->[$i]{'tagfield'};
+ $row_data{liblibrarian} = $results->[$i]{'liblibrarian'};
+ $row_data{repeatable} = $results->[$i]{'repeatable'};
+ $row_data{mandatory} = $results->[$i]{'mandatory'};
- $row_data{subfield_link} ="marc_subfields_structure.pl?tagfield=".$results->[$i]{'tagfield'}."&frameworkcode=".$frameworkcode;
- $row_data{edit} = "$script_name?op=add_form&searchfield=".$results->[$i]{'tagfield'}."&frameworkcode=".$frameworkcode;
- $row_data{delete} = "$script_name?op=delete_confirm&searchfield=".$results->[$i]{'tagfield'}."&frameworkcode=".$frameworkcode;
- $row_data{toggle} = $toggle;
+ $row_data{subfield_link} = "marc_subfields_structure.pl?tagfield=" .$results->[$i]{'tagfield'}."&frameworkcode=".$frameworkcode;
+ $row_data{edit} = "$script_name?op=add_form&searchfield=" .$results->[$i]{'tagfield'}."&frameworkcode=".$frameworkcode;
+ $row_data{delete} = "$script_name?op=delete_confirm&searchfield=".$results->[$i]{'tagfield'}."&frameworkcode=".$frameworkcode;
push(@loop_data, \%row_data);
}
$template->param(loop => \@loop_data);
}
if ($offset>0) {
push(@loop_data, \%row_data);
}
$template->param(loop => \@loop_data);
}
if ($offset>0) {
searchfield => $searchfield,
script_name => $script_name,
frameworkcode => $frameworkcode,
);
}
if ($offset+$pagesize<$cnt) {
searchfield => $searchfield,
script_name => $script_name,
frameworkcode => $frameworkcode,
);
}
if ($offset+$pagesize<$cnt) {
searchfield => $searchfield,
script_name => $script_name,
frameworkcode => $frameworkcode,
searchfield => $searchfield,
script_name => $script_name,
frameworkcode => $frameworkcode,
#
# the sub used for searches
#
sub StringSearch {
my ($searchstring,$frameworkcode)=@_;
#
# the sub used for searches
#
sub StringSearch {
my ($searchstring,$frameworkcode)=@_;
- my $dbh = C4::Context->dbh;
- $searchstring=~ s/\'/\\\'/g;
- my @data=split(' ',$searchstring);
- my $count=@data;
- my $sth=$dbh->prepare("Select tagfield,liblibrarian,libopac,repeatable,mandatory,authorised_value from marc_tag_structure where (tagfield >= ? and frameworkcode=?) order by tagfield");
- $sth->execute($data[0], $frameworkcode);
- my @results;
- while (my $data=$sth->fetchrow_hashref){
- push(@results,$data);
- }
- # $sth->execute;
- $sth->finish;
- return (scalar(@results),\@results);
+ my $sth = C4::Context->dbh->prepare("
+ SELECT tagfield,liblibrarian,libopac,repeatable,mandatory,authorised_value
+ FROM marc_tag_structure
+ WHERE (tagfield >= ? and frameworkcode=?)
+ ORDER BY tagfield
+ ");
+ $sth->execute($searchstring, $frameworkcode);
+ my $results = $sth->fetchall_arrayref({});
+ return (scalar(@$results), $results);