diff options
| author | Andreas Brachold <vdr07@deltab.de> | 2007-12-18 15:36:41 +0000 |
|---|---|---|
| committer | Andreas Brachold <vdr07@deltab.de> | 2007-12-18 15:36:41 +0000 |
| commit | b32e9ad19dd2ee50f3ad814fb39640ada6704d18 (patch) | |
| tree | 1547b571e93b02cb555ac4d9ed00a7c7a695064e /lib | |
| parent | c7ad2a741f2a025c685ad0c039176aba4b35e224 (diff) | |
| download | xxv-b32e9ad19dd2ee50f3ad814fb39640ada6704d18.tar.gz xxv-b32e9ad19dd2ee50f3ad814fb39640ada6704d18.tar.bz2 | |
* CHRONICLE: Request[#3911] chrs: Enhance search with logical operators
Diffstat (limited to 'lib')
| -rw-r--r-- | lib/XXV/MODULES/CHRONICLE.pm | 10 |
1 files changed, 4 insertions, 6 deletions
diff --git a/lib/XXV/MODULES/CHRONICLE.pm b/lib/XXV/MODULES/CHRONICLE.pm index a3c177d..005307d 100644 --- a/lib/XXV/MODULES/CHRONICLE.pm +++ b/lib/XXV/MODULES/CHRONICLE.pm @@ -196,10 +196,9 @@ sub search { my $self = shift; my $watcher = shift || return error('No watcher defined!'); my $console = shift || return error('No console defined!'); - my $quest = shift || return $console->err(gettext("No 'string' to search for! Please use chrsearch 'text'.")); + my $text = shift || return $console->err(gettext("No 'string' to search for! Please use chrsearch 'text'.")); - $quest =~ s/\'/\./sg; - $quest =~ s/\+/\\\\\+/sg; + my $query = buildsearch("title",$text); my %f = ( 'id' => gettext('Service'), @@ -220,12 +219,11 @@ SELECT SQL_CACHE DATE_FORMAT(CHRONICLE.starttime, '%H:%i') as \'$f{'start'}\', DATE_FORMAT(FROM_UNIXTIME(UNIX_TIMESTAMP(CHRONICLE.starttime) + CHRONICLE.duration), '%H:%i') as \'$f{'stop'}\' FROM CHRONICLE -WHERE CHRONICLE.title RLIKE ? -ORDER BY CHRONICLE.starttime |; + $sql .= sprintf("WHERE %s ORDER BY CHRONICLE.starttime",$query->{query}); my $fields = fields($self->{dbh}, $sql); my $sth = $self->{dbh}->prepare($sql); - $sth->execute($quest) + $sth->execute(@{$query->{term}}) or return error sprintf("Couldn't execute query: %s.",$sth->errstr); my $erg = $sth->fetchall_arrayref(); unshift(@$erg, $fields); |
