Make the site skinned comment pages use LJ::paging_bar; tweak that 
function to more closely match existing style.

        Patch by kareila. 

diffs (120 lines):

diff -r 32d04b1eb220 -r 02f3ee314c3d cgi-bin/weblib.pl
--- a/cgi-bin/weblib.pl Thu Dec 30 13:05:31 2010 +0800
+++ b/cgi-bin/weblib.pl Thu Dec 30 18:40:16 2010 +0800
@@ -395,34 +395,45 @@ sub robot_meta_tags
            "<meta name=\"googlebot\" content=\"noindex, nofollow, noarchive, 
nosnippet\" />\n";
 }
 
-sub paging_bar
-{
-    my ($page, $pages, $opts) = @_;
+sub paging_bar {
+    my ( $page, $pages, $opts ) = @_;
 
-    my $self_link = $opts->{'self_link'} ||
-                    sub { BML::self_link({ 'page' => $_[0] }) };
+    my $self_link = $opts->{self_link} ||
+                    sub { BML::self_link( { page => $_[0] } ) };
 
-    my $href_opts = $opts->{'href_opts'} || sub { '' };
+    my $href_opts = $opts->{href_opts} || sub { '' };
 
-    my $nav;
-    if ($pages > 1) {
-        $nav .= "<b>";
-        $nav .= BML::ml('ljlib.pageofpages',{'page'=>$page, 'total'=>$pages}) 
. "<br />";
-        my $left = "<b>&lt;&lt;</b>";
-        if ($page > 1) { $left = "<a href='" . $self_link->($page-1) . "'" . 
$href_opts->($page-1) . ">$left</a>"; }
-        my $right = "<b>&gt;&gt;</b>";
-        if ($page < $pages) { $right = "<a href='" . $self_link->($page+1) . 
"'" . $href_opts->($page+1) . ">$right</a>"; }
-        $nav .= $left . " ";
-        for (my $i=1; $i<=$pages; $i++) {
-            my $link = "[$i]";
-            if ($i != $page) { $link = "<a href='" . $self_link->($i) . "'" .  
$href_opts->($i) . ">$link</a>"; }
-            else { $link = "<b>$link</b>"; }
-            $nav .= "$link ";
-        }
-        $nav .= "$right";
-        $nav = "<div class='action-box'>$nav</div>";
+    my $nav = '';
+    return $nav unless $pages && $pages > 1;
+
+    $nav .= "<p style='font-weight: bolder; margin: 0 0 .5em 0'>";
+    $nav .= LJ::Lang::ml( 'ljlib.pageofpages',
+                          { page => $page, total => $pages } );
+    $nav .= "</p>\n";
+
+    my $linkify = sub { "<a href='" . $self_link->( $_[0] ) . "'" .
+                        $href_opts->( $_[0] ) . ">$_[1]</a>\n" };
+
+    my ( $left, $right ) = ( "<b>&lt;&lt;</b>", "<b>&gt;&gt;</b>" );
+    $left  = $linkify->( $page - 1, $left ) if $page > 1;
+    $right = $linkify->( $page + 1, $right ) if $page < $pages;
+
+    my @pagelinks;
+
+    for ( my $i = 1; $i <= $pages; $i++ ) {
+        my $link = "[$i]";
+        $link = ( $i != $page ) ? $linkify->( $i, $link ) : "<b>$link</b>";
+        push @pagelinks, "<br />" if $i > 10 && ( $i == 11 || $i % 10 == 0 );
+        push @pagelinks, $link;
     }
-    return $nav;
+
+    $nav .= "$left &nbsp; ";
+    $nav .= "<div style='display: inline; text-align: center'>";
+    $nav .= join ' ', @pagelinks;
+    $nav .= "</div>";
+    $nav .= " &nbsp; $right";
+
+    return "<div class='action-box'>$nav</div>\n";
 }
 
 # drop-in replacement for BML::paging in non-BML context
diff -r 32d04b1eb220 -r 02f3ee314c3d htdocs/talkread.bml
--- a/htdocs/talkread.bml       Thu Dec 30 13:05:31 2010 +0800
+++ b/htdocs/talkread.bml       Thu Dec 30 18:40:16 2010 +0800
@@ -331,38 +331,12 @@ body<=
     my @comments = LJ::Talk::load_comments($u, $remote, "L", $itemid, $opts);
     return $ML{'error.nodbmaintenance'} if $opts->{'out_error'} eq "nodb";
 
-    my $page = $opts->{'out_page'};
-    my $pages = $opts->{'out_pages'};
+    my $page  = $opts->{out_page};
+    my $pages = $opts->{out_pages};
 
-    ########## make the nav
-    my $nav = '';
-    if ($pages > 1) {
-        $nav .= "<table summary='' id='journalnav'>";
-        $nav .= "<tr><td align='center' colspan='3'>";
-        $nav .= BML::ml('ljlib.pageofpages',{'page'=>$page, 'total'=>$pages});
-        $nav .= "</td></tr>";
-        my $left = "&lt;&lt;";
-        if ($page > 1) { $left = "<a href='" . BML::self_link({ 'page' => 
$page-1 }) . "#comments'>$left</a>"; }
-
-        my $right = "&gt;&gt;";
-        if ($page < $pages) { $right = "<a href='" . BML::self_link({ 'page' 
=> $page+1 }) . "#comments'>$right</a>"; }
-
-        $nav .= "<tr><td style='font-size: 85%' align='center'>$left</td><td 
style='font-size: 85%' align='center'>";
-
-        for (my $i=1; $i<=$pages; $i++) {
-            my $link = "[$i]";
-            if ($i != $page) { $link = "<a href='" . BML::self_link({ 'page' 
=> $i }) . "#comments'>$link</a>"; }
-            else { $link = "<span style='font-size: 130%; font-weight: 
bolder'>$link</span>"; }
-            $nav .= "$link ";
-            if ($i == 11)  { $nav .= "<br />"; }
-            elsif ($i > 10 && $i % 10 == 0) { $nav .= "<br />"; }
-        }
-
-        $nav .= "</td><td style='font-size: 85%' 
align='center'>$right</td></tr>";
-        $nav .= "</table>\n";
-        $nav = qq{<div class="action-box">$nav</div>};
-    }
-    ####### end nav
+    # this overrides the default self_link to add the #comments anchor
+    my $self_link = sub { BML::self_link( { page => $_[0] } ) . "#comments" };
+    my $nav = LJ::paging_bar( $page, $pages, { self_link => $self_link } );
 
     # Quick reply variables.  Not always set.
     my ($last_talkid, $last_jid) = LJ::get_lastcomment();
_______________________________________________
dw-changelog mailing list
[email protected]
http://lists.dwscoalition.org/mailman/listinfo/dw-changelog

Reply via email to