Main Koha release repository https://koha-community.org
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

107 lines
2.4 KiB

package Koha::Item::Search::Field;
use Modern::Perl;
use base qw( Exporter );
our @EXPORT_OK = qw(
AddItemSearchField
ModItemSearchField
DelItemSearchField
GetItemSearchField
GetItemSearchFields
);
use C4::Context;
sub AddItemSearchField {
my ($field) = @_;
my ( $name, $label, $tagfield, $tagsubfield, $av_category ) =
@$field{qw(name label tagfield tagsubfield authorised_values_category)};
my $dbh = C4::Context->dbh;
my $query = q{
INSERT INTO items_search_fields (name, label, tagfield, tagsubfield, authorised_values_category)
VALUES (?, ?, ?, ?, ?)
};
my $sth = $dbh->prepare($query);
my $rv = $sth->execute($name, $label, $tagfield, $tagsubfield, $av_category);
return ($rv) ? $field : undef;
}
sub ModItemSearchField {
my ($field) = @_;
my ( $name, $label, $tagfield, $tagsubfield, $av_category ) =
@$field{qw(name label tagfield tagsubfield authorised_values_category)};
my $dbh = C4::Context->dbh;
my $query = q{
UPDATE items_search_fields
SET label = ?,
tagfield = ?,
tagsubfield = ?,
authorised_values_category = ?
WHERE name = ?
};
my $sth = $dbh->prepare($query);
my $rv = $sth->execute($label, $tagfield, $tagsubfield, $av_category, $name);
return ($rv) ? $field : undef;
}
sub DelItemSearchField {
my ($name) = @_;
my $dbh = C4::Context->dbh;
my $query = q{
DELETE FROM items_search_fields
WHERE name = ?
};
my $sth = $dbh->prepare($query);
my $rv = $sth->execute($name);
my $is_deleted = $rv ? int($rv) : 0;
if (!$is_deleted) {
warn "DelItemSearchField: Field '$name' doesn't exist";
}
return $is_deleted;
}
sub GetItemSearchField {
my ($name) = @_;
my $dbh = C4::Context->dbh;
my $query = q{
SELECT * FROM items_search_fields
WHERE name = ?
};
my $sth = $dbh->prepare($query);
my $rv = $sth->execute($name);
my $field;
if ($rv) {
$field = $sth->fetchrow_hashref;
}
return $field;
}
sub GetItemSearchFields {
my $dbh = C4::Context->dbh;
my $query = q{
SELECT * FROM items_search_fields
};
my $sth = $dbh->prepare($query);
my $rv = $sth->execute();
my @fields;
if ($rv) {
my $fields = $sth->fetchall_arrayref( {} );
@fields = @$fields;
}
return @fields;
}