[Cpan-forum-commit] rev 345 - in trunk: . lib/CPAN lib/CPAN/Forum lib/CPAN/Forum/RM
svn at pti.co.il
svn at pti.co.il
Tue Aug 14 11:35:08 EEST 2007
Author: gabor
Date: 2007-08-14 11:35:08 +0300 (Tue, 14 Aug 2007)
New Revision: 345
Modified:
trunk/
trunk/lib/CPAN/Forum.pm
trunk/lib/CPAN/Forum/DBI.pm
trunk/lib/CPAN/Forum/RM/Search.pm
Log:
allow new mypager to fetch results including username
Property changes on: trunk
___________________________________________________________________
Name: svk:merge
- 7bc34947-122d-0410-bc5a-f898d2bb5f81:/local/cpan-forum:4431
8c4c90e1-83eb-0310-96eb-e7cb62807872:/local/cpan-forum:12752
+ 7bc34947-122d-0410-bc5a-f898d2bb5f81:/local/cpan-forum:4432
8c4c90e1-83eb-0310-96eb-e7cb62807872:/local/cpan-forum:12752
Modified: trunk/lib/CPAN/Forum/DBI.pm
===================================================================
--- trunk/lib/CPAN/Forum/DBI.pm 2007-08-14 08:34:51 UTC (rev 344)
+++ trunk/lib/CPAN/Forum/DBI.pm 2007-08-14 08:35:08 UTC (rev 345)
@@ -262,15 +262,26 @@
my ($where, @values) = $self->_prep_where($args{where});
$CPAN::Forum::logger->debug("where='$where'");
- my $fetch_sql = "";
+ my $fetch_sql = "SELECT posts.id, subject, thread, date, username FROM posts, users";
my $count_sql = "SELECT COUNT(*) FROM posts";
- my @fetch_values;
+ my @fetch_values = @values;
if ($where) {
$fetch_sql .= " WHERE $where";
$count_sql .= " WHERE $where";
}
+ if ($where) {
+ $fetch_sql .= " AND ";
+ } else {
+ $fetch_sql = " WHERE ";
+ }
+ $fetch_sql .= " users.id=posts.uid";
+
+ my $order_by = $args{order_by};
+ $order_by =~ s/^\s*id/posts.id/;
+ $fetch_sql .= " ORDER BY $order_by";
+
$fetch_sql .= " LIMIT ?";
my $limit = $args{per_page} || 10;
push @fetch_values, $limit;
@@ -281,12 +292,20 @@
push @fetch_values, $limit*($page-1);
}
- $fetch_sql .= "ORDER BY $args{order_by}";
$CPAN::Forum::logger->debug("count_sql='$count_sql' " . Data::Dumper->Dump([\@values], ['values']));
my $total = $self->_fetch_single_value($count_sql, @values);
$CPAN::Forum::logger->debug("total='$total'");
- return {};
+ $CPAN::Forum::logger->debug("fetch_sql='$fetch_sql' " . Data::Dumper->Dump([\@fetch_values], ['fetch_values']));
+ my $results = $self->_fetch_arrayref_of_hashes($fetch_sql, @fetch_values);
+ $CPAN::Forum::logger->debug(Data::Dumper->Dump([$results], ['results']));
+
+ my %pager = (
+ total_entries => $total,
+ results => $results,
+ );
+
+ return \%pager;
}
1;
Modified: trunk/lib/CPAN/Forum/RM/Search.pm
===================================================================
--- trunk/lib/CPAN/Forum/RM/Search.pm 2007-08-14 08:34:51 UTC (rev 344)
+++ trunk/lib/CPAN/Forum/RM/Search.pm 2007-08-14 08:35:08 UTC (rev 345)
@@ -11,21 +11,21 @@
$params->{per_page} = $self->config("per_page");
my $pager = CPAN::Forum::DB::Posts->mysearch($params);
- my @results = $pager->search_where();
- $self->log->debug(Data::Dumper->Dump([\@results], ['results']));
- my $total = $pager->total_entries;
+ my $results = $pager->{results};
+ #$self->log->debug(Data::Dumper->Dump([$results], ['results']));
+ my $total = $pager->{total_entries};
$self->log->debug("number of entries: total=$total");
- my $data = $self->build_listing(\@results);
+ my $data = $self->build_listing($results);
$t->param(messages => $data);
$t->param(total => $total);
- $t->param(previous_page => $pager->previous_page);
- $t->param(next_page => $pager->next_page);
- $t->param(first_entry => $pager->first);
- $t->param(last_entry => $pager->last);
- $t->param(first_page => 1) if $pager->current_page != 1;
- $t->param(last_page => $pager->last_page) if $pager->current_page != $pager->last_page;
- return $pager->total_entries;
+# $t->param(previous_page => $pager->previous_page);
+# $t->param(next_page => $pager->next_page);
+# $t->param(first_entry => $pager->first);
+# $t->param(last_entry => $pager->last);
+# $t->param(first_page => 1) if $pager->current_page != 1;
+# $t->param(last_page => $pager->last_page) if $pager->current_page != $pager->last_page;
+ return $pager->{total_entries};
}
sub module_search_form {
Modified: trunk/lib/CPAN/Forum.pm
===================================================================
--- trunk/lib/CPAN/Forum.pm 2007-08-14 08:34:51 UTC (rev 344)
+++ trunk/lib/CPAN/Forum.pm 2007-08-14 08:35:08 UTC (rev 345)
@@ -749,8 +749,8 @@
# eliminate undefs and duplicates (TODO: I don't know why are there such values)
my %seen;
foreach my $p (@$it) {
- next if not defined $p->thread;
- $seen{$p->thread}++;
+ next if not defined $p->{thread};
+ $seen{$p->{thread}}++;
}
my @threads = keys %seen;
@@ -760,19 +760,19 @@
#$self->log->debug(Data::Dumper->Dump([$post], ['post']));
#$self->log->debug("id=" . $post->id);
#warn "called for each post";
- my $thread = $post->thread;
+ my $thread = $post->{thread};
my $thread_count = ($thread and $threads->{$thread}) ? $threads->{$thread}{cnt} : 0;
push @resp, {
- subject => _subject_escape($post->subject),
- id => $post->id,
- group => $post->gid->name,
+ subject => _subject_escape($post->{subject}),
+ id => $post->{id},
+ group => $post->{group_name},
thread => ($thread_count > 1 ? 1 : 0),
- thread_id => $post->thread,
+ thread_id => $post->{thread},
thread_count => $thread_count-1,
- #date => POSIX::strftime("%e/%b", localtime $post->date),
- #date => scalar localtime $post->date,
- date => _ellapsed($post->date),
- postername => $post->uid->username,
+ #date => POSIX::strftime("%e/%b", localtime $post->{date}),
+ #date => scalar localtime $post->{date},
+ date => _ellapsed($post->{date}),
+ postername => $post->{username},
};
}
return \@resp;
More information about the Cpan-forum-commit
mailing list