summaryrefslogtreecommitdiff
path: root/lib/VNDB/DB/Producers.pm
diff options
context:
space:
mode:
Diffstat (limited to 'lib/VNDB/DB/Producers.pm')
-rw-r--r--lib/VNDB/DB/Producers.pm14
1 files changed, 10 insertions, 4 deletions
diff --git a/lib/VNDB/DB/Producers.pm b/lib/VNDB/DB/Producers.pm
index 929e333b..133c3f31 100644
--- a/lib/VNDB/DB/Producers.pm
+++ b/lib/VNDB/DB/Producers.pm
@@ -8,7 +8,7 @@ use Exporter 'import';
our @EXPORT = qw|dbProducerGet dbProducerGetRev dbProducerRevisionInsert|;
-# options: results, page, id, search, char
+# options: results, page, id, search, char, sort
# what: extended relations relgraph
sub dbProducerGet {
my $self = shift;
@@ -40,13 +40,19 @@ sub dbProducerGet {
$select .= ', p.desc, p.alias, p.website, p.l_wp, p.hidden, p.locked' if $o{what} =~ /extended/;
$select .= ', pg.svg' if $o{what} =~ /relgraph/;
- my($r, $np) = $self->dbPage(\%o, q|
+ my($order, @order) = ('p.name');
+ if($o{sort} && $o{sort} eq 'search') {
+ $order = 'least(substr_score(p.name, ?), substr_score(p.original, ?)), p.name';
+ @order = ($o{search}) x 2;
+ }
+
+ my($r, $np) = $self->dbPage(\%o, qq|
SELECT !s
FROM producers p
!s
!W
- ORDER BY p.name ASC|,
- $select, $join, \%where,
+ ORDER BY $order|,
+ $select, $join, \%where, @order
);
return _enrich($self, $r, $np, 0, $o{what});