|
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 |
- |
|
|