From 947b849b6bb6e927abfb2617f1139abaea3f071e Mon Sep 17 00:00:00 2001 From: Yorhel Date: Mon, 11 Jan 2010 09:55:01 +0100 Subject: Fixed sorting bug on /u+/posts Damn, so many bugs... This one was introduced in 9613533da2c58af3c64e3bd4ed7b92b22ffd442f --- lib/VNDB/DB/Discussions.pm | 11 ++++++++--- lib/VNDB/Handler/Users.pm | 2 +- 2 files changed, 9 insertions(+), 4 deletions(-) (limited to 'lib') diff --git a/lib/VNDB/DB/Discussions.pm b/lib/VNDB/DB/Discussions.pm index deeb7480..1c27c22e 100644 --- a/lib/VNDB/DB/Discussions.pm +++ b/lib/VNDB/DB/Discussions.pm @@ -158,7 +158,7 @@ sub dbThreadCount { } -# Options: tid, num, what, uid, mindate, hide, page, results +# Options: tid, num, what, uid, mindate, hide, page, results, sort, reverse # what: user thread sub dbPostGet { my($self, %o) = @_; @@ -191,13 +191,18 @@ sub dbPostGet { $o{what} =~ /thread/ ? 'JOIN threads t ON t.id = tp.tid' : (), ); + my $order = sprintf { + num => 'tp.num %s', + date => 'tp.date %s', + }->{ $o{sort}||'num' }, $o{reverse} ? 'DESC' : 'ASC'; + my($r, $np) = $self->dbPage(\%o, q| SELECT !s FROM threads_posts tp !s !W - ORDER BY tp.num ASC|, - join(', ', @select), join(' ', @join), \%where + ORDER BY !s|, + join(', ', @select), join(' ', @join), \%where, $order ); return wantarray ? ($r, $np) : $r; diff --git a/lib/VNDB/Handler/Users.pm b/lib/VNDB/Handler/Users.pm index e9c97198..2cec8b52 100644 --- a/lib/VNDB/Handler/Users.pm +++ b/lib/VNDB/Handler/Users.pm @@ -364,7 +364,7 @@ sub posts { { name => 'p', required => 0, default => 1, template => 'int' } ); - my($posts, $np) = $self->dbPostGet(uid => $uid, hide => 1, what => 'thread', page => $f->{p}, order => 'tp.date DESC'); + my($posts, $np) = $self->dbPostGet(uid => $uid, hide => 1, what => 'thread', page => $f->{p}, sort => 'date', reverse => 1); my $title = mt '_uposts_title', $u->{username}; $self->htmlHeader(title => $title, noindex => 1); -- cgit v1.2.3