summaryrefslogtreecommitdiff
path: root/lib/VNDB/DB/Traits.pm
diff options
context:
space:
mode:
authorYorhel <git@yorhel.nl>2011-02-14 10:58:05 +0100
committerYorhel <git@yorhel.nl>2011-02-14 10:58:05 +0100
commit23c6f7c1dc584fab42d87f060a9faa033e04c8e2 (patch)
tree355c31e13d4b67afe9cce6ef8b2f7a07689fe172 /lib/VNDB/DB/Traits.pm
parentf4b31e6d934bc93d678804ae7e4039031ff87760 (diff)
chardb: Added trait index and search
Diffstat (limited to 'lib/VNDB/DB/Traits.pm')
-rw-r--r--lib/VNDB/DB/Traits.pm8
1 files changed, 8 insertions, 0 deletions
diff --git a/lib/VNDB/DB/Traits.pm b/lib/VNDB/DB/Traits.pm
index 8b9849ed..d30477c6 100644
--- a/lib/VNDB/DB/Traits.pm
+++ b/lib/VNDB/DB/Traits.pm
@@ -25,11 +25,19 @@ sub dbTraitGet {
@_,
);
+ $o{search} =~ s/%//g if $o{search};
+
my %where = (
$o{id} ? ('t.id = ?' => $o{id}) : (),
$o{noid} ? ('t.id <> ?' => $o{noid}) : (),
$o{name} ? (
't.id = (SELECT id FROM traits LEFT JOIN traits_aliases ON id = trait WHERE lower(name) = ? OR lower(alias) = ? LIMIT 1)' => [ lc $o{name}, lc $o{name} ]) : (),
+ defined $o{state} && $o{state} != -1 ? (
+ 't.state = ?' => $o{state} ) : (),
+ !defined $o{state} && !$o{id} && !$o{name} ? (
+ 't.state = 2' => 1 ) : (),
+ $o{search} ? (
+ 't.id IN (SELECT id FROM traits LEFT JOIN traits_aliases ON id = trait WHERE name ILIKE ? OR alias ILIKE ?)' => [ "%$o{search}%", "%$o{search}%" ] ) : (),
);
my @select = (