View | Details | Raw Unified | Return to bug 6679
Collapse All | Expand All

(-)a/C4/Tags.pm (-26 / +27 lines)
Lines 21-26 use Exporter; Link Here
21
21
22
use C4::Context;
22
use C4::Context;
23
use C4::Debug;
23
use C4::Debug;
24
#use Data::Dumper;
24
25
25
use vars qw($VERSION @ISA @EXPORT @EXPORT_OK %EXPORT_TAGS);
26
use vars qw($VERSION @ISA @EXPORT @EXPORT_OK %EXPORT_TAGS);
26
use vars qw($ext_dict $select_all @fields);
27
use vars qw($ext_dict $select_all @fields);
Lines 63-69 INIT { Link Here
63
	$select_all = "SELECT " . join(',',@fields) . "\n FROM   tags_all\n";
64
	$select_all = "SELECT " . join(',',@fields) . "\n FROM   tags_all\n";
64
}
65
}
65
66
66
sub get_filters (;$) {
67
sub get_filters {
67
	my $query = "SELECT * FROM tags_filters ";
68
	my $query = "SELECT * FROM tags_filters ";
68
	my ($sth);
69
	my ($sth);
69
	if (@_) {
70
	if (@_) {
Lines 79-85 sub get_filters (;$) { Link Here
79
# 	(SELECT count(*) FROM tags_all     ) as tags_all,
80
# 	(SELECT count(*) FROM tags_all     ) as tags_all,
80
# 	(SELECT count(*) FROM tags_index   ) as tags_index,
81
# 	(SELECT count(*) FROM tags_index   ) as tags_index,
81
82
82
sub approval_counts () { 
83
sub approval_counts { 
83
	my $query = "SELECT
84
	my $query = "SELECT
84
		(SELECT count(*) FROM tags_approval WHERE approved= 1) as approved_count,
85
		(SELECT count(*) FROM tags_approval WHERE approved= 1) as approved_count,
85
		(SELECT count(*) FROM tags_approval WHERE approved=-1) as rejected_count,
86
		(SELECT count(*) FROM tags_approval WHERE approved=-1) as rejected_count,
Lines 111-117 sub get_count_by_tag_status { Link Here
111
  return $sth->fetchrow;
112
  return $sth->fetchrow;
112
}
113
}
113
114
114
sub remove_tag ($;$) {
115
sub remove_tag {
115
	my $tag_id  = shift or return undef;
116
	my $tag_id  = shift or return undef;
116
	my $user_id = (@_) ? shift : undef;
117
	my $user_id = (@_) ? shift : undef;
117
	my $rows = (defined $user_id) ?
118
	my $rows = (defined $user_id) ?
Lines 139-163 sub remove_tag ($;$) { Link Here
139
	delete_tag_row_by_id($tag_id);
140
	delete_tag_row_by_id($tag_id);
140
}
141
}
141
142
142
sub delete_tag_index ($$) {
143
sub delete_tag_index {
143
	(@_) or return undef;
144
	(@_) or return undef;
144
	my $sth = C4::Context->dbh->prepare("DELETE FROM tags_index WHERE term = ? AND biblionumber = ? LIMIT 1");
145
	my $sth = C4::Context->dbh->prepare("DELETE FROM tags_index WHERE term = ? AND biblionumber = ? LIMIT 1");
145
	$sth->execute(@_);
146
	$sth->execute(@_);
146
	return $sth->rows || 0;
147
	return $sth->rows || 0;
147
}
148
}
148
sub delete_tag_approval ($) {
149
sub delete_tag_approval {
149
	(@_) or return undef;
150
	(@_) or return undef;
150
	my $sth = C4::Context->dbh->prepare("DELETE FROM tags_approval WHERE term = ? LIMIT 1");
151
	my $sth = C4::Context->dbh->prepare("DELETE FROM tags_approval WHERE term = ? LIMIT 1");
151
	$sth->execute(shift);
152
	$sth->execute(shift);
152
	return $sth->rows || 0;
153
	return $sth->rows || 0;
153
}
154
}
154
sub delete_tag_row_by_id ($) {
155
sub delete_tag_row_by_id {
155
	(@_) or return undef;
156
	(@_) or return undef;
156
	my $sth = C4::Context->dbh->prepare("DELETE FROM tags_all WHERE tag_id = ? LIMIT 1");
157
	my $sth = C4::Context->dbh->prepare("DELETE FROM tags_all WHERE tag_id = ? LIMIT 1");
157
	$sth->execute(shift);
158
	$sth->execute(shift);
158
	return $sth->rows || 0;
159
	return $sth->rows || 0;
159
}
160
}
160
sub delete_tag_rows_by_ids (@) {
161
sub delete_tag_rows_by_ids {
161
	(@_) or return undef;
162
	(@_) or return undef;
162
	my $i=0;
163
	my $i=0;
163
	foreach(@_) {
164
	foreach(@_) {
Lines 168-174 sub delete_tag_rows_by_ids (@) { Link Here
168
	return $i;
169
	return $i;
169
}
170
}
170
171
171
sub get_tag_rows ($) {
172
sub get_tag_rows {
172
	my $hash = shift || {};
173
	my $hash = shift || {};
173
	my @ok_fields = @fields;
174
	my @ok_fields = @fields;
174
	push @ok_fields, 'limit';	# push the limit! :)
175
	push @ok_fields, 'limit';	# push the limit! :)
Lines 209-215 sub get_tag_rows ($) { Link Here
209
	return $sth->fetchall_arrayref({});
210
	return $sth->fetchall_arrayref({});
210
}
211
}
211
212
212
sub get_tags (;$) {		# i.e., from tags_index
213
sub get_tags {		# i.e., from tags_index
213
	my $hash = shift || {};
214
	my $hash = shift || {};
214
	my @ok_fields = qw(term biblionumber weight limit sort approved);
215
	my @ok_fields = qw(term biblionumber weight limit sort approved);
215
	my $wheres;
216
	my $wheres;
Lines 278-284 sub get_tags (;$) { # i.e., from tags_index Link Here
278
	return $sth->fetchall_arrayref({});
279
	return $sth->fetchall_arrayref({});
279
}
280
}
280
281
281
sub get_approval_rows (;$) {		# i.e., from tags_approval
282
sub get_approval_rows {		# i.e., from tags_approval
282
	my $hash = shift || {};
283
	my $hash = shift || {};
283
	my @ok_fields = qw(term approved date_approved approved_by weight_total limit sort borrowernumber);
284
	my @ok_fields = qw(term approved date_approved approved_by weight_total limit sort borrowernumber);
284
	my $wheres;
285
	my $wheres;
Lines 353-359 sub get_approval_rows (;$) { # i.e., from tags_approval Link Here
353
	return $sth->fetchall_arrayref({});
354
	return $sth->fetchall_arrayref({});
354
}
355
}
355
356
356
sub is_approved ($) {
357
sub is_approved {
357
	my $term = shift or return undef;
358
	my $term = shift or return undef;
358
	my $sth = C4::Context->dbh->prepare("SELECT approved FROM tags_approval WHERE term = ?");
359
	my $sth = C4::Context->dbh->prepare("SELECT approved FROM tags_approval WHERE term = ?");
359
	$sth->execute($term);
360
	$sth->execute($term);
Lines 364-370 sub is_approved ($) { Link Here
364
	return $sth->fetchrow;
365
	return $sth->fetchrow;
365
}
366
}
366
367
367
sub get_tag_index ($;$) {
368
sub get_tag_index {
368
	my $term = shift or return undef;
369
	my $term = shift or return undef;
369
	my $sth;
370
	my $sth;
370
	if (@_) {
371
	if (@_) {
Lines 428-434 sub remove_filter { Link Here
428
	return scalar @_;
429
	return scalar @_;
429
}
430
}
430
431
431
sub add_tag_approval ($;$$) {	# or disapproval
432
sub add_tag_approval {	# or disapproval
432
	$debug and warn "add_tag_approval(" . join(", ",map {defined($_) ? $_ : 'UNDEF'} @_) . ")";
433
	$debug and warn "add_tag_approval(" . join(", ",map {defined($_) ? $_ : 'UNDEF'} @_) . ")";
433
	my $term = shift or return undef;
434
	my $term = shift or return undef;
434
	my $query = "SELECT * FROM tags_approval WHERE term = ?";
435
	my $query = "SELECT * FROM tags_approval WHERE term = ?";
Lines 453-459 sub add_tag_approval ($;$$) { # or disapproval Link Here
453
	return $sth->rows;
454
	return $sth->rows;
454
}
455
}
455
456
456
sub mod_tag_approval ($$$) {
457
sub mod_tag_approval {
457
	my $operator = shift;
458
	my $operator = shift;
458
	defined $operator or return undef; # have to test defined to allow =0 (kohaadmin)
459
	defined $operator or return undef; # have to test defined to allow =0 (kohaadmin)
459
	my $term     = shift or return undef;
460
	my $term     = shift or return undef;
Lines 464-470 sub mod_tag_approval ($$$) { Link Here
464
	$sth->execute($operator,$approval,$term);
465
	$sth->execute($operator,$approval,$term);
465
}
466
}
466
467
467
sub add_tag_index ($$;$) {
468
sub add_tag_index {
468
	my $term         = shift or return undef;
469
	my $term         = shift or return undef;
469
	my $biblionumber = shift or return undef;
470
	my $biblionumber = shift or return undef;
470
	my $query = "SELECT * FROM tags_index WHERE term = ? AND biblionumber = ?";
471
	my $query = "SELECT * FROM tags_index WHERE term = ? AND biblionumber = ?";
Lines 478-491 sub add_tag_index ($$;$) { Link Here
478
	return $sth->rows;
479
	return $sth->rows;
479
}
480
}
480
481
481
sub get_tag ($) {		# by tag_id
482
sub get_tag {		# by tag_id
482
	(@_) or return undef;
483
	(@_) or return undef;
483
	my $sth = C4::Context->dbh->prepare("$select_all WHERE tag_id = ?");
484
	my $sth = C4::Context->dbh->prepare("$select_all WHERE tag_id = ?");
484
	$sth->execute(shift);
485
	$sth->execute(shift);
485
	return $sth->fetchrow_hashref;
486
	return $sth->fetchrow_hashref;
486
}
487
}
487
488
488
sub rectify_weights (;$) {
489
sub rectify_weights {
489
	my $dbh = C4::Context->dbh;
490
	my $dbh = C4::Context->dbh;
490
	my $sth;
491
	my $sth;
491
	my $query = "
492
	my $query = "
Lines 512-538 sub rectify_weights (;$) { Link Here
512
	return ($results,\%tally);
513
	return ($results,\%tally);
513
}
514
}
514
515
515
sub increment_weights ($$) {
516
sub increment_weights {
516
	increment_weight(@_);
517
	increment_weight(@_);
517
	increment_weight_total(shift);
518
	increment_weight_total(shift);
518
}
519
}
519
sub decrement_weights ($$) {
520
sub decrement_weights {
520
	decrement_weight(@_);
521
	decrement_weight(@_);
521
	decrement_weight_total(shift);
522
	decrement_weight_total(shift);
522
}
523
}
523
sub increment_weight_total ($) {
524
sub increment_weight_total {
524
	_set_weight_total('weight_total+1',shift);
525
	_set_weight_total('weight_total+1',shift);
525
}
526
}
526
sub increment_weight ($$) {
527
sub increment_weight {
527
	_set_weight('weight+1',shift,shift);
528
	_set_weight('weight+1',shift,shift);
528
}
529
}
529
sub decrement_weight_total ($) {
530
sub decrement_weight_total {
530
	_set_weight_total('weight_total-1',shift);
531
	_set_weight_total('weight_total-1',shift);
531
}
532
}
532
sub decrement_weight ($$) {
533
sub decrement_weight {
533
	_set_weight('weight-1',shift,shift);
534
	_set_weight('weight-1',shift,shift);
534
}
535
}
535
sub _set_weight_total ($$) {
536
sub _set_weight_total {
536
	my $sth = C4::Context->dbh->prepare("
537
	my $sth = C4::Context->dbh->prepare("
537
	UPDATE tags_approval
538
	UPDATE tags_approval
538
	SET    weight_total=" . (shift) . "
539
	SET    weight_total=" . (shift) . "
Lines 540-546 sub _set_weight_total ($$) { Link Here
540
	");						# note: CANNOT use "?" for weight_total (see the args above).
541
	");						# note: CANNOT use "?" for weight_total (see the args above).
541
	$sth->execute(shift);	# just the term
542
	$sth->execute(shift);	# just the term
542
}
543
}
543
sub _set_weight ($$$) {
544
sub _set_weight {
544
	my $dbh = C4::Context->dbh;
545
	my $dbh = C4::Context->dbh;
545
	my $sth = $dbh->prepare("
546
	my $sth = $dbh->prepare("
546
	UPDATE tags_index
547
	UPDATE tags_index
Lines 551-557 sub _set_weight ($$$) { Link Here
551
	$sth->execute(@_);
552
	$sth->execute(@_);
552
}
553
}
553
554
554
sub add_tag ($$;$$) {	# biblionumber,term,[borrowernumber,approvernumber]
555
sub add_tag {	# biblionumber,term,[borrowernumber,approvernumber]
555
	my $biblionumber = shift or return undef;
556
	my $biblionumber = shift or return undef;
556
	my $term         = shift or return undef;
557
	my $term         = shift or return undef;
557
	my $borrowernumber = (@_) ? shift : 0;		# the user, default to kohaadmin
558
	my $borrowernumber = (@_) ? shift : 0;		# the user, default to kohaadmin
(-)a/opac/opac-tags.pl (-1 / +2 lines)
Lines 43-48 use C4::Scrubber; Link Here
43
use C4::Biblio;
43
use C4::Biblio;
44
use C4::Tags qw(add_tag get_approval_rows get_tag_rows remove_tag);
44
use C4::Tags qw(add_tag get_approval_rows get_tag_rows remove_tag);
45
45
46
use Data::Dumper;
47
46
my %newtags = ();
48
my %newtags = ();
47
my @deltags = ();
49
my @deltags = ();
48
my %counts  = ();
50
my %counts  = ();
49
- 

Return to bug 6679