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><<</b>";
- if ($page > 1) { $left = "<a href='" . $self_link->($page-1) . "'" .
$href_opts->($page-1) . ">$left</a>"; }
- my $right = "<b>>></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><<</b>", "<b>>></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 ";
+ $nav .= "<div style='display: inline; text-align: center'>";
+ $nav .= join ' ', @pagelinks;
+ $nav .= "</div>";
+ $nav .= " $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 = "<<";
- if ($page > 1) { $left = "<a href='" . BML::self_link({ 'page' =>
$page-1 }) . "#comments'>$left</a>"; }
-
- my $right = ">>";
- 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