Lines 25-30
use Exporter;
Link Here
|
25 |
|
25 |
|
26 |
use C4::Context; |
26 |
use C4::Context; |
27 |
use Module::Load::Conditional qw( check_install ); |
27 |
use Module::Load::Conditional qw( check_install ); |
|
|
28 |
use Koha::Tags; |
29 |
use Koha::Tags::Approvals; |
30 |
use Koha::Tags::Indexes; |
28 |
#use Data::Dumper; |
31 |
#use Data::Dumper; |
29 |
use constant TAG_FIELDS => qw(tag_id borrowernumber biblionumber term language date_created); |
32 |
use constant TAG_FIELDS => qw(tag_id borrowernumber biblionumber term language date_created); |
30 |
use constant TAG_SELECT => "SELECT " . join(',', TAG_FIELDS) . "\n FROM tags_all\n"; |
33 |
use constant TAG_SELECT => "SELECT " . join(',', TAG_FIELDS) . "\n FROM tags_all\n"; |
Lines 38-46
BEGIN {
Link Here
|
38 |
add_tag |
41 |
add_tag |
39 |
add_tag_approval |
42 |
add_tag_approval |
40 |
add_tag_index |
43 |
add_tag_index |
41 |
delete_tag_row_by_id |
|
|
42 |
remove_tag |
44 |
remove_tag |
43 |
delete_tag_rows_by_ids |
|
|
44 |
get_approval_rows |
45 |
get_approval_rows |
45 |
blacklist |
46 |
blacklist |
46 |
whitelist |
47 |
whitelist |
Lines 126-170
sub remove_tag {
Link Here
|
126 |
my $tags = get_tags({term=>$row->{term}, biblionumber=>$row->{biblionumber}}); |
127 |
my $tags = get_tags({term=>$row->{term}, biblionumber=>$row->{biblionumber}}); |
127 |
my $index = shift(@$tags); |
128 |
my $index = shift(@$tags); |
128 |
if ($index->{weight} <= 1) { |
129 |
if ($index->{weight} <= 1) { |
129 |
delete_tag_index($row->{term},$row->{biblionumber}); |
130 |
Koha::Tags::Indexes->search({ term => $row->{term}, biblionumber => $row->{biblionumber} })->delete; |
130 |
} else { |
131 |
} else { |
131 |
decrement_weight($row->{term},$row->{biblionumber}); |
132 |
decrement_weight($row->{term},$row->{biblionumber}); |
132 |
} |
133 |
} |
133 |
if ($index->{weight_total} <= 1) { |
134 |
if ($index->{weight_total} <= 1) { |
134 |
delete_tag_approval($row->{term}); |
135 |
Koha::Tags::Approvals->search({ term => $row->{term} })->delete; |
135 |
} else { |
136 |
} else { |
136 |
decrement_weight_total($row->{term}); |
137 |
decrement_weight_total($row->{term}); |
137 |
} |
138 |
} |
138 |
delete_tag_row_by_id($tag_id); |
139 |
Koha::Tags->search({ tag_id => $tag_id })->delete; |
139 |
} |
|
|
140 |
|
141 |
sub delete_tag_index { |
142 |
(@_) or return; |
143 |
my $sth = C4::Context->dbh->prepare("DELETE FROM tags_index WHERE term = ? AND biblionumber = ? LIMIT 1"); |
144 |
$sth->execute(@_); |
145 |
return $sth->rows || 0; |
146 |
} |
147 |
sub delete_tag_approval { |
148 |
(@_) or return; |
149 |
my $sth = C4::Context->dbh->prepare("DELETE FROM tags_approval WHERE term = ? LIMIT 1"); |
150 |
$sth->execute(shift); |
151 |
return $sth->rows || 0; |
152 |
} |
153 |
sub delete_tag_row_by_id { |
154 |
(@_) or return; |
155 |
my $sth = C4::Context->dbh->prepare("DELETE FROM tags_all WHERE tag_id = ? LIMIT 1"); |
156 |
$sth->execute(shift); |
157 |
return $sth->rows || 0; |
158 |
} |
159 |
sub delete_tag_rows_by_ids { |
160 |
(@_) or return; |
161 |
my $i=0; |
162 |
foreach(@_) { |
163 |
$i += delete_tag_row_by_id($_); |
164 |
} |
165 |
($i == scalar(@_)) or |
166 |
warn sprintf "delete_tag_rows_by_ids tried %s tag_ids, only succeeded on $i", scalar(@_); |
167 |
return $i; |
168 |
} |
140 |
} |
169 |
|
141 |
|
170 |
sub get_tag_rows { |
142 |
sub get_tag_rows { |
171 |
- |
|
|