[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