[Cpan-forum-commit] rev 347 - in trunk: . lib/CPAN/Forum lib/CPAN/Forum/RM
svn at pti.co.il
svn at pti.co.il
Tue Aug 14 11:35:41 EEST 2007
Author: gabor
Date: 2007-08-14 11:35:41 +0300 (Tue, 14 Aug 2007)
New Revision: 347
Modified:
trunk/
trunk/lib/CPAN/Forum/DBI.pm
trunk/lib/CPAN/Forum/RM/Search.pm
Log:
mypages shows the first/previous/next/last page links
Property changes on: trunk
___________________________________________________________________
Name: svk:merge
- 7bc34947-122d-0410-bc5a-f898d2bb5f81:/local/cpan-forum:4433
8c4c90e1-83eb-0310-96eb-e7cb62807872:/local/cpan-forum:12752
+ 7bc34947-122d-0410-bc5a-f898d2bb5f81:/local/cpan-forum:4434
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:35:21 UTC (rev 346)
+++ trunk/lib/CPAN/Forum/DBI.pm 2007-08-14 08:35:41 UTC (rev 347)
@@ -274,7 +274,7 @@
if ($where) {
$fetch_sql .= " AND ";
} else {
- $fetch_sql = " WHERE ";
+ $fetch_sql .= " WHERE ";
}
$fetch_sql .= " users.id=posts.uid AND groups.id=posts.gid";
@@ -286,10 +286,11 @@
my $limit = $args{per_page} || 10;
push @fetch_values, $limit;
- my $page = $args{page} || 1;
+ my $page = $args{page} || 1;
+ my $offset = $limit*($page-1);
if ($page > 1) {
$fetch_sql .= " OFFSET ?";
- push @fetch_values, $limit*($page-1);
+ push @fetch_values, $offset;
}
$CPAN::Forum::logger->debug("count_sql='$count_sql' " . Data::Dumper->Dump([\@values], ['values']));
@@ -300,12 +301,26 @@
my $results = $self->_fetch_arrayref_of_hashes($fetch_sql, @fetch_values);
$CPAN::Forum::logger->debug(Data::Dumper->Dump([$results], ['results']));
+ my $last_page = int($total/$limit);
+ if ($last_page != $total/$limit) {
+ $last_page++;
+ }
+
my %pager = (
total_entries => $total,
+ first_entry => 1+$offset,
+ last_entry => $offset+@$results,
+
results => $results,
+ first_page => 1,
+ last_page => $last_page,
+ previous_page => ($page > 1 ? $page-1 : 0),
+ next_page => ($page < $last_page ? $page+1 : 0),
+ current_page => $page,
);
return \%pager;
}
+
1;
Modified: trunk/lib/CPAN/Forum/RM/Search.pm
===================================================================
--- trunk/lib/CPAN/Forum/RM/Search.pm 2007-08-14 08:35:21 UTC (rev 346)
+++ trunk/lib/CPAN/Forum/RM/Search.pm 2007-08-14 08:35:41 UTC (rev 347)
@@ -19,12 +19,12 @@
$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;
+ $t->param(previous_page => $pager->{previous_page});
+ $t->param(next_page => $pager->{next_page});
+ $t->param(first_entry => $pager->{first_entry});
+ $t->param(last_entry => $pager->{last_entry});
+ $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};
}
More information about the Cpan-forum-commit
mailing list