X-Git-Url: http://koha-dev.rot13.org:8081/gitweb/?a=blobdiff_plain;f=C4%2FTags.pm;h=e01244f927924caea548f7992858403b6d11b5d4;hb=eded6edacc5e3bf8dd0be21ed05842c3b78aadce;hp=33d77d40fb8e03fd1d877da4de975b7b906fd262;hpb=fff754a7fc7a99dad6a35129b8a7dd170684f2bf;p=koha-ffzg.git diff --git a/C4/Tags.pm b/C4/Tags.pm index 33d77d40fb..e01244f927 100644 --- a/C4/Tags.pm +++ b/C4/Tags.pm @@ -20,59 +20,52 @@ package C4::Tags; use strict; use warnings; -use Carp; +use Carp qw( carp ); use Exporter; use C4::Context; -use C4::Debug; +use Module::Load::Conditional qw( check_install ); #use Data::Dumper; use constant TAG_FIELDS => qw(tag_id borrowernumber biblionumber term language date_created); use constant TAG_SELECT => "SELECT " . join(',', TAG_FIELDS) . "\n FROM tags_all\n"; -use vars qw(@ISA @EXPORT @EXPORT_OK %EXPORT_TAGS); - +our (@ISA, @EXPORT_OK); BEGIN { - @ISA = qw(Exporter); + @ISA = qw(Exporter); @EXPORT_OK = qw( - &get_tag &get_tags &get_tag_rows - &add_tags &add_tag - &delete_tag_row_by_id - &remove_tag - &delete_tag_rows_by_ids - &get_approval_rows - &blacklist - &whitelist - &is_approved - &approval_counts - &get_count_by_tag_status - &get_filters + get_tag get_tags get_tag_rows + add_tags + add_tag + add_tag_approval + add_tag_index + delete_tag_row_by_id + remove_tag + delete_tag_rows_by_ids + get_approval_rows + blacklist + whitelist + is_approved + approval_counts + get_count_by_tag_status + get_filters stratify_tags ); - # %EXPORT_TAGS = (); my $ext_dict = C4::Context->preference('TagsExternalDictionary'); - if ($debug) { - require Data::Dumper; - import Data::Dumper qw(:DEFAULT); - print STDERR __PACKAGE__ . " external dictionary = " . ($ext_dict||'none') . "\n"; - } + if ( $ext_dict && ! check_install( module => 'Lingua::Ispell' ) ) { + warn "Ignoring TagsExternalDictionary, because Lingua::Ispell is not installed."; + $ext_dict = q{}; + } if ($ext_dict) { require Lingua::Ispell; - import Lingua::Ispell qw(spellcheck add_word_lc save_dictionary); + import Lingua::Ispell qw(spellcheck add_word_lc); + $Lingua::Ispell::path = $ext_dict; } } =head1 C4::Tags.pm - Support for user tagging of biblios. -More verose debugging messages are sent in the presence of non-zero $ENV{"DEBUG"}. - =cut -INIT { - my $ext_dict = C4::Context->preference('TagsExternalDictionary'); - $ext_dict and $Lingua::Ispell::path = $ext_dict; - $debug and print STDERR "\$Lingua::Ispell::path = $Lingua::Ispell::path\n"; -} - sub get_filters { my $query = "SELECT * FROM tags_filters "; my ($sth); @@ -99,7 +92,6 @@ sub approval_counts { $sth->execute; my $result = $sth->fetchrow_hashref(); $result->{approved_total} = $result->{approved_count} + $result->{rejected_count} + $result->{unapproved_count}; - $debug and warn "counts returned: " . Dumper $result; return $result; } @@ -133,9 +125,6 @@ sub remove_tag { ($tag_id == $row->{tag_id}) or return 0; my $tags = get_tags({term=>$row->{term}, biblionumber=>$row->{biblionumber}}); my $index = shift(@$tags); - $debug and print STDERR - sprintf "remove_tag: tag_id=>%s, biblionumber=>%s, weight=>%s, weight_total=>%s\n", - $row->{tag_id}, $row->{biblionumber}, $index->{weight}, $index->{weight_total}; if ($index->{weight} <= 1) { delete_tag_index($row->{term},$row->{biblionumber}); } else { @@ -186,12 +175,11 @@ sub get_tag_rows { my $limit = ""; my @exe_args = (); foreach my $key (keys %$hash) { - $debug and print STDERR "get_tag_rows arg. '$key' = ", $hash->{$key}, "\n"; unless (length $key) { carp "Empty argument key to get_tag_rows: ignoring!"; next; } - unless (1 == scalar grep {/^ $key $/x} @ok_fields) { + unless (1 == scalar grep { $_ eq $key } @ok_fields) { carp "get_tag_rows received unreconized argument key '$key'."; next; } @@ -208,8 +196,6 @@ sub get_tag_rows { } } my $query = TAG_SELECT . ($wheres||'') . $limit; - $debug and print STDERR "get_tag_rows query:\n $query\n", - "get_tag_rows query args: ", join(',', @exe_args), "\n"; my $sth = C4::Context->dbh->prepare($query); if (@exe_args) { $sth->execute(@exe_args); @@ -227,12 +213,11 @@ sub get_tags { # i.e., from tags_index my $order = ""; my @exe_args = (); foreach my $key (keys %$hash) { - $debug and print STDERR "get_tags arg. '$key' = ", $hash->{$key}, "\n"; unless (length $key) { carp "Empty argument key to get_tags: ignoring!"; next; } - unless (1 == scalar grep {/^ $key $/x} @ok_fields) { + unless (1 == scalar grep { $_ eq $key } @ok_fields) { carp "get_tags received unreconized argument key '$key'."; next; } @@ -277,8 +262,6 @@ sub get_tags { # i.e., from tags_index LEFT JOIN tags_approval ON tags_index.term = tags_approval.term " . ($wheres||'') . $order . $limit; - $debug and print STDERR "get_tags query:\n $query\n", - "get_tags query args: ", join(',', @exe_args), "\n"; my $sth = C4::Context->dbh->prepare($query); if (@exe_args) { $sth->execute(@exe_args); @@ -296,12 +279,11 @@ sub get_approval_rows { # i.e., from tags_approval my $order = ""; my @exe_args = (); foreach my $key (keys %$hash) { - $debug and print STDERR "get_approval_rows arg. '$key' = ", $hash->{$key}, "\n"; unless (length $key) { carp "Empty argument key to get_approval_rows: ignoring!"; next; } - unless (1 == scalar grep {/^ $key $/x} @ok_fields) { + unless (1 == scalar grep { $_ eq $key } @ok_fields) { carp "get_approval_rows received unreconized argument key '$key'."; next; } @@ -352,8 +334,6 @@ sub get_approval_rows { # i.e., from tags_approval LEFT JOIN borrowers ON tags_approval.approved_by = borrowers.borrowernumber "; $query .= ($wheres||'') . $order . $limit; - $debug and print STDERR "get_approval_rows query:\n $query\n", - "get_approval_rows query args: ", join(',', @exe_args), "\n"; my $sth = C4::Context->dbh->prepare($query); if (@exe_args) { $sth->execute(@exe_args); @@ -441,7 +421,6 @@ sub remove_filter { } sub add_tag_approval { # or disapproval - $debug and warn "add_tag_approval(" . join(", ",map {defined($_) ? $_ : 'UNDEF'} @_) . ")"; my $term = shift or return; my $query = "SELECT * FROM tags_approval WHERE term = ?"; my $sth = C4::Context->dbh->prepare($query); @@ -459,7 +438,6 @@ sub add_tag_approval { # or disapproval } else { $query = "INSERT INTO tags_approval (term,date_approved) VALUES (?,NOW())"; } - $debug and print STDERR "add_tag_approval query: $query\nadd_tag_approval args: (" . join(", ", @exe_args) . ")\n"; $sth = C4::Context->dbh->prepare($query); $sth->execute(@exe_args); return $sth->rows; @@ -471,7 +449,6 @@ sub mod_tag_approval { my $term = shift or return; my $approval = (scalar @_ ? shift : 1); # default is to approve my $query = "UPDATE tags_approval SET approved_by=?, approved=?, date_approved=NOW() WHERE term = ?"; - $debug and print STDERR "mod_tag_approval query: $query\nmod_tag_approval args: ($operator,$approval,$term)\n"; my $sth = C4::Context->dbh->prepare($query); $sth->execute($operator,$approval,$term); } @@ -484,7 +461,6 @@ sub add_tag_index { $sth->execute($term,$biblionumber); ($sth->rows) and return increment_weight($term,$biblionumber); $query = "INSERT INTO tags_index (term,biblionumber) VALUES (?,?)"; - $debug and print STDERR "add_tag_index query: $query\nadd_tag_index args: ($term,$biblionumber)\n"; $sth = C4::Context->dbh->prepare($query); $sth->execute($term,$biblionumber); return $sth->rows; @@ -547,10 +523,7 @@ sub add_tag { # biblionumber,term,[borrowernumber,approvernumber] my $query = "INSERT INTO tags_all (borrowernumber,biblionumber,term,date_created) VALUES (?,?,?,NOW())"; - $debug and print STDERR "add_tag query: $query\n", - "add_tag query args: ($borrowernumber,$biblionumber,$term)\n"; if (scalar @$rows) { - $debug and carp "Duplicate tag detected. Tag not added."; return; } # add to tags_all regardless of approaval @@ -560,15 +533,12 @@ sub add_tag { # biblionumber,term,[borrowernumber,approvernumber] # then if (scalar @_) { # if arg remains, it is the borrowernumber of the approver: tag is pre-approved. my $approver = shift; - $debug and print STDERR "term '$term' pre-approved by borrower #$approver\n"; add_tag_approval($term,$approver,1); add_tag_index($term,$biblionumber,$approver); } elsif (is_approved($term) >= 1) { - $debug and print STDERR "term '$term' approved by whitelist\n"; add_tag_approval($term,0,1); add_tag_index($term,$biblionumber,1); } else { - $debug and print STDERR "term '$term' NOT approved (yet)\n"; add_tag_approval($term); add_tag_index($term,$biblionumber); }