mark: A photo of Mark kneeling on top of the Taal Volcano in the Philippines. It was a long hike. (Default)
Mark Smith ([staff profile] mark) wrote in [site community profile] changelog2009-11-03 01:48 am

[dw-free] Tags module on Tags page ignores tags limit

[commit: http://hg.dwscoalition.org/dw-free/rev/7187be3b25d2]

http://bugs.dwscoalition.org/show_bug.cgi?id=1183

Respect visible tag limit on tags page.

Patch by [personal profile] afuna.

Files modified:
  • bin/upgrading/en.dat
  • cgi-bin/LJ/Hooks/PingBack.pm
  • cgi-bin/LJ/PingBack.pm
  • cgi-bin/LJ/Poll.pm
  • cgi-bin/LJ/S2.pm
--------------------------------------------------------------------------------
diff -r f4d2dc3ad85a -r 7187be3b25d2 bin/upgrading/en.dat
--- a/bin/upgrading/en.dat	Tue Nov 03 01:01:32 2009 +0000
+++ b/bin/upgrading/en.dat	Tue Nov 03 01:48:39 2009 +0000
@@ -6,10 +6,6 @@ admin.noprivserror=Sorry, your account d
 
 backlink=[<a href="[[link]]">&lt;&lt;</a> [[text]]]
 
-birthday.link=birthdays
-
-birthday.text=[[user]], did you know you can surprise your friends by actually remembering their birthdays?  LJ keeps a list of your friends' [[link]] for you.
-
 bml.badcontent.body=One or more errors occurred processing your request.  Please go back, correct the necessary information, and submit your data again.
 
 bml.badinput.body=Your browser sent some text which is not recognised as valid text in the UTF-8 encoding, as it should be. This might happen if you forced your browser to view the previous page in some other encoding rather than UTF-8. It may also indicate a bug in the browser. If you cannot get around this error, contact us.
@@ -52,11 +48,7 @@ contentflag.viewingexplicit.byjournal=Yo
 
 contentflag.viewingexplicit.byposter=You are about to view content that the poster has marked as possibly inappropriate for anyone under the age of 18.
 
-controlstrip.link=Navigation Strip
-
-controlstrip.text=9 out of 10 LJ users prefer the [[link]].  (OK we made that up, but you should check it out anyway.)
-
-cprod.birthday.link.v1=birthdays
+cprod.birthday.link.v1=
 
 cprod.birthday.link.v2=
 
@@ -66,7 +58,7 @@ cprod.birthday.link.v4=
 
 cprod.birthday.link.v5=
 
-cprod.birthday.text.v1=Hey, [[user]], see which of your friends' [[link]] are coming up! LiveJournal keeps a list of their birthdays for you.
+cprod.birthday.text.v1=
 
 cprod.birthday.text.v2=
 
@@ -76,7 +68,7 @@ cprod.birthday.text.v4=
 
 cprod.birthday.text.v5=
 
-cprod.controlstrip.link.v1=Navigation Strip
+cprod.controlstrip.link.v1=
 
 cprod.controlstrip.link.v2=
 
@@ -86,7 +78,7 @@ cprod.controlstrip.link.v4=
 
 cprod.controlstrip.link.v5=
 
-cprod.controlstrip.text.v1=9 out of 10 LJ users prefer the [[link]].  (OK we made that up, but you should check it out anyway.)
+cprod.controlstrip.text.v1=
 
 cprod.controlstrip.text.v2=
 
@@ -234,7 +226,7 @@ cprod.editstyles.text.v4=
 
 cprod.editstyles.text.v5=
 
-cprod.feeds.link.v1=syndicated feeds
+cprod.feeds.link.v1=
 
 cprod.feeds.link.v2=
 
@@ -244,7 +236,7 @@ cprod.feeds.link.v4=
 
 cprod.feeds.link.v5=
 
-cprod.feeds.text.v1=Find good content outside of LJ? Add [[link]] to your Friends page so you never have to leave.
+cprod.feeds.text.v1=
 
 cprod.feeds.text.v2=
 
@@ -948,124 +940,7 @@ among users in class "[[class]]".
 
 email.invitedist.req.subject=Result of your invite code distribution request
 
-email.newacct.body<<
-Congratulations, you have a new [[sitename]] account!
-
-To complete your journal creation and verify your email address, go
-here:
-
-   [[regurl]]
-
-The URL that your new journal is located at is:
-
-   [[siteroot]]/users/[[username]]/
-
-and also:
-
-   [[siteroot]]/~[[username]]/
-
-Below is your LiveJournal username and password:
-
-   Username: [[username]]
-   Password: [[password]]
-
-Enjoy!
-
-[[sitename]] Team
-[[siteroot]]/
-.
-
 email.newacct.subject=Welcome to [[sitename]]
-
-email.newacct2.body|notes=This string replaces email.newacct.body.  You may refer to the old string while translating if you wish.
-email.newacct2.body<<
-Congratulations, you have a new [[sitename]] account!
-
-To complete your journal creation and verify your email address,
-please visit the following location.  Verifying your email address
-will help to protect your account as well as allow you to utilize
-more features within your journal.
-
-   [[regurl]]
-
-You may access your journal at the following two URLs:
-
-   [[siteroot]]/users/[[username]]/
-   [[siteroot]]/~[[username]]/
-
-Below is your [[sitename]] username that you registered:
-
-   Username: [[username]]
-
-If you need to retrieve your password, you can do so at any time by
-visiting the following URL:
-
-   [[siteroot]]/lostinfo.bml
-
-Enjoy!
-
-[[sitename]] Team
-[[siteroot]]/
-.
-
-email.newacct3.body|notes=Updated for correct journal URL
-email.newacct3.body<<
-Congratulations, you have a new [[sitename]] account!
-
-To complete your journal creation and verify your email address,
-please visit the following location.  Verifying your email address
-will help to protect your account as well as allow you to utilize
-more features within your journal.
-
-   [[regurl]]
-
-You may access your journal at the following URL:
-
-   [[journal_base]]/
-
-Below is your [[sitename]] username that you registered:
-
-   Username: [[username]]
-
-If you need to retrieve your password, you can do so at any time by
-visiting the following URL:
-
-   [[siteroot]]/lostinfo.bml
-
-Enjoy!
-
-[[sitename]] Team
-[[siteroot]]/
-.
-
-email.newacct4.body<<
-Congratulations, you have a new [[sitename]] account!
-
-To complete your journal creation and verify your email address,
-please visit the following location.  Verifying your email address
-will help to protect your account as well as allow you to utilize
-more features within your journal.
-
-   [[regurl]]
-
-You may access your journal at the following URL:
-
-   [[journal_base]]/
-
-Below is your [[sitename]] username that you registered:
-
-   Username: [[username]]
-
-If you need to retrieve your password, you can do so at any time by
-visiting the following URL:
-
-   [[lostinfourl]]
-
-Enjoy!
-
-[[sitename]] Team
-[[siteroot]]/
-.
 
 email.newacct5.body<<
 Congratulations, you have a new [[sitename]] account!
@@ -2021,11 +1896,9 @@ fcklang.cutprompt=Cut link text?
 
 fcklang.invalidchars=Invalid characters in username
 
-fcklang.ljcut=LiveJournal Cut
-
-fcklang.ljuser=LiveJournal User
-
-fcklang.ljvideo=LiveJournal Video
+fcklang.ljcut=Cut
+
+fcklang.ljuser=Account
 
 fcklang.ljvideo2=Embed Media
 
@@ -2035,10 +1908,6 @@ fcklang.userprompt=Enter their username
 
 fcklang.videoprompt=Please enter the YouTube, PhotoBucket, or Google Video URL:
 
-feeds.link=syndicated feeds
-
-feeds.text=Apparently there's good content outside of LJ?  We'll let you add [[link]] to your Friends page so you never have to leave.
-
 help=Help
 
 img.btn_del=Delete
@@ -2171,12 +2040,8 @@ lastupdated.ago=last updated [[timestamp
 
 lastupdated.never=never updated
 
-ljfeedback.text=Like to vote?  Join [[journal]] where we post polls and surveys that help influence and improve LJ.
-
 ljlib.pageofpages=Page [[page]] of [[total]]
 
-ljspotlight.text=We're keeping an eye out for interesting communities.  Check out [[journal]] to see some great ways people use LJ.
-
 lostinfo.head=Forget something?
 
 lostinfo.text2=If you forgot your username or password, <a [[aopts]]>recover it here</a>.
@@ -2293,13 +2158,13 @@ optional=(optional)
 
 password=Password
 
-pingback.ljping.comment.text=User <lj user="[[poster]]"> referenced to your post from <a href="[[sourceURI]]">[[subject]]</a> saying: [...] [[context]] [...]
+pingback.ljping.comment.text2=Account <user name="[[poster]]"> referenced to your post from <a href="[[sourceURI]]">[[subject]]</a> saying: [...] [[context]] [...]
 
 pingback.option.disabled=Disabled
 
 pingback.option.journal_default=Journal default
 
-pingback.option.lj_only=LJ only
+pingback.option.lj_only2=[[sitenameshort]] only
 
 pingback.option.open=Open
 
@@ -2317,17 +2182,17 @@ poll.dberror.questions=Database error in
 
 poll.error.alreadyvoted=Sorry, you have already voted in this poll under the account [[user]].
 
-poll.error.badmaxlength=Maxlength attribute on lj-pq text tags must be an integer from 1-255.
-
-poll.error.badsize=Size attribute on lj-pq text tags must be an integer from 1-100.
+poll.error.badmaxlength2=Maxlength attribute on poll-question (or lj-pq) text tags must be an integer from 1-255.
+
+poll.error.badsize2=Size attribute on poll-question (or lj-pq) text tags must be an integer from 1-100.
 
 poll.error.cantview=Error: you don't have access to view these poll results.
 
 poll.error.cantvote=Sorry, you don't have permission to vote in this particular poll.
 
-poll.error.missingljpoll=All lj-pq tags must be nested inside an enclosing lj-poll tag.
-
-poll.error.missingljpq=All lj-pi tags must be nested inside an enclosing lj-pq tag.
+poll.error.missingljpoll2=All poll-question (or lj-pq) tags must be nested inside an enclosing poll (or lj-poll) tag.
+
+poll.error.missingljpq2=All poll-item (or lj-pi) tags must be nested inside an enclosing poll-question (or lj-pq) tag.
 
 poll.error.nested=You cannot nest [[tag]] tags.  Did you forget to close one?
 
@@ -2335,17 +2200,17 @@ poll.error.noentry=Error: this poll is n
 
 poll.error.noitems=You must have at least one item in a non-text poll question.
 
-poll.error.noitemstext=lj-pq tags of type 'text' cannot have poll items in them.
+poll.error.noitemstext2=poll-question (or lj-pq) tags of type 'text' cannot have poll items in them.
 
 poll.error.nopollid=pollid parameter is missing.
 
 poll.error.noquestions=You must have at least one question in a poll.
 
-poll.error.notext=Need text inside an lj-pq tag to say what the question is about.
+poll.error.notext2=You need to have text inside a poll-question (or lj-pq) tag to say what the question is about.
 
 poll.error.notvalidated2=Your email address <a [[aopts]]>must be confirmed</a> in order to vote in this poll.
 
-poll.error.pitoolong=Text inside an lj-pi tag must be between 1 and 255 characters.  Yours is [[len]].
+poll.error.pitoolong2=Text inside a poll-item (or lj-pi) tag must be between 1 and 255 characters.  Yours is [[len]].
 
 poll.error.pollnotfound=Error: poll #[[num]] not found
 
@@ -2365,7 +2230,7 @@ poll.error.toomanyquestions=You have too
 
 poll.error.truncated=... truncated
 
-poll.error.unknownpqtype=Unknown type on lj-pq tag.
+poll.error.unknownpqtype2=Unknown type on poll-question (or lj-pq) tag.
 
 poll.error.unlockedtag=Unlocked [[tag]] tag.
 
@@ -2420,8 +2285,6 @@ protocol.must_revalidate=You need to val
 protocol.must_revalidate=You need to validate your new email address.  Your old one was good, but since you've changed it, you need to re-validate the new one.  Visit [[siteroot]]/support for more information.
 
 protocol.not_validated=You are currently not validated.  You may continue to use [[sitename]], but please validate your email address for continued use.  See the instructions that were mailed to you when you created your journal, or see [[siteroot]]/support/ for more information.
-
-protocol.old_win32_client=There are significantly newer Windows LiveJournal clients available, and we recommend that you upgrade.  Visit [[siteroot]]/download/ to download a newer client.
 
 protocol.readonly=Your account is temporarily in read-only mode.  Some operations will fail for a few minutes.
 
@@ -4643,8 +4506,6 @@ widget.search.jabber=Jabber ID
 
 widget.search.msn=MSN
 
-widget.search.note=If you know some information for an existing LiveJournal user you can search for it here.
-
 widget.search.region=Region
 
 widget.search.siteuser=Site & User
diff -r f4d2dc3ad85a -r 7187be3b25d2 cgi-bin/LJ/Hooks/PingBack.pm
--- a/cgi-bin/LJ/Hooks/PingBack.pm	Tue Nov 03 01:01:32 2009 +0000
+++ b/cgi-bin/LJ/Hooks/PingBack.pm	Tue Nov 03 01:48:39 2009 +0000
@@ -21,9 +21,9 @@ LJ::register_hook("add_extra_options_to_
     $ret .= "<tr><td class='field_name'>" . BML::ml('.pingback') . "</td>\n<td>";
     $ret .= BML::ml('.pingback.process') . "&nbsp;";
     $ret .= LJ::html_select({ 'name' => 'pingback', 'selected' => $u->{'pingback'} },
-                              "O" => BML::ml(".pingback.option.open"),
-                              "L" => BML::ml(".pingback.option.lj_only"),
-                              "D" => BML::ml(".pingback.option.disabled"),
+                              "O" => BML::ml( "pingback.option.open" ),
+                              "L" => BML::ml( "pingback.option.lj_only2", { sitenameshort => $LJ::SITENAMESHORT } ),
+                              "D" => BML::ml( "pingback.option.disabled" ),
                             );
     $ret .= "</td></tr>\n";
     return $ret;
@@ -64,10 +64,10 @@ LJ::register_hook("add_extra_entryform_f
                               'selected' => $opts->{'prop_pingback'},
                               'tabindex' => $tabindex->(),
                               }, 
-                              { value => "J", text => BML::ml("pingback.option.journal_default") },
-                              { value => "O", text => BML::ml("pingback.option.open") },
-                              { value => "L", text => BML::ml("pingback.option.lj_only") },
-                              { value => "D", text => BML::ml("pingback.option.disabled") },
+                              { value => "J", text => BML::ml( "pingback.option.journal_default" ) },
+                              { value => "O", text => BML::ml( "pingback.option.open" ) },
+                              { value => "L", text => BML::ml( "pingback.option.lj_only2", { sitenameshort => $LJ::SITENAMESHORT } ) },
+                              { value => "D", text => BML::ml( "pingback.option.disabled" ) },
                               ) . "
         " . LJ::help_icon_html("pingback", "", " ") . "
         </span>
diff -r f4d2dc3ad85a -r 7187be3b25d2 cgi-bin/LJ/PingBack.pm
--- a/cgi-bin/LJ/PingBack.pm	Tue Nov 03 01:01:32 2009 +0000
+++ b/cgi-bin/LJ/PingBack.pm	Tue Nov 03 01:48:39 2009 +0000
@@ -48,7 +48,7 @@ sub ping_post {
                     poster       => $poster_u,
 
                     body         => ($source_entry
-                                        ? BML::ml("pingback.ljping.comment.text",
+                                        ? BML::ml("pingback.ljping.comment.text2",
                                             { context   => $context,
                                               subject   => $subject,
                                               sourceURI => $sourceURI,
diff -r f4d2dc3ad85a -r 7187be3b25d2 cgi-bin/LJ/Poll.pm
--- a/cgi-bin/LJ/Poll.pm	Tue Nov 03 01:01:32 2009 +0000
+++ b/cgi-bin/LJ/Poll.pm	Tue Nov 03 01:48:39 2009 +0000
@@ -275,7 +275,7 @@ sub new_from_html {
                 return $err->('poll.error.nested', { 'tag' => 'poll-question' })
                     if $qopen;
 
-                return $err->('poll.error.missingljpoll')
+                return $err->('poll.error.missingljpoll2')
                     unless $popen;
 
                 return $err->("poll.error.toomanyquestions")
@@ -295,7 +295,7 @@ sub new_from_html {
                         {
                             $size = $opts->{'size'}+0;
                         } else {
-                            return $err->('poll.error.badsize');
+                            return $err->('poll.error.badsize2');
                         }
                     }
                     if (defined $opts->{'maxlength'}) {
@@ -304,7 +304,7 @@ sub new_from_html {
                         {
                             $max = $opts->{'maxlength'}+0;
                         } else {
-                            return $err->('poll.error.badmaxlength');
+                            return $err->('poll.error.badmaxlength2');
                         }
                     }
 
@@ -345,7 +345,7 @@ sub new_from_html {
                     $qopts{'type'} ne "scale" &&
                     $qopts{'type'} ne "text")
                 {
-                    return $err->('poll.error.unknownpqtype');
+                    return $err->('poll.error.unknownpqtype2');
                 }
             }
 
@@ -357,7 +357,7 @@ sub new_from_html {
                     return $err->('poll.error.nested', { 'tag' => 'poll-item' });
                 }
                 if (! $qopen) {
-                    return $err->('poll.error.missingljpq');
+                    return $err->('poll.error.missingljpq2');
                 }
 
                 return $err->("poll.error.toomanyopts")
@@ -365,7 +365,7 @@ sub new_from_html {
 
                 if ($qopts{'type'} eq "text")
                 {
-                    return $err->('poll.error.noitemstext');
+                    return $err->('poll.error.noitemstext2');
                 }
 
                 $iopen = 1;
@@ -426,7 +426,7 @@ sub new_from_html {
                 $qopts{'qtext'} =~ s/^\s+//;
                 $qopts{'qtext'} =~ s/\s+$//;
                 my $len = length($qopts{'qtext'})
-                    or return $err->('poll.error.notext');
+                    or return $err->('poll.error.notext2');
 
                 my $question = LJ::Poll::Question->new_from_row(\%qopts);
                 push @{$popts{'questions'}}, $question;
@@ -444,7 +444,7 @@ sub new_from_html {
                 $iopts{'item'} =~ s/\s+$//;
 
                 my $len = length($iopts{'item'});
-                return $err->('poll.error.pitoolong', { 'len' => $len, })
+                return $err->('poll.error.pitoolong2', { 'len' => $len, })
                     if $len > 255 || $len < 1;
 
                 push @{$qopts{'items'}}, { %iopts };
diff -r f4d2dc3ad85a -r 7187be3b25d2 cgi-bin/LJ/S2.pm
--- a/cgi-bin/LJ/S2.pm	Tue Nov 03 01:01:32 2009 +0000
+++ b/cgi-bin/LJ/S2.pm	Tue Nov 03 01:48:39 2009 +0000
@@ -74,11 +74,11 @@ sub make_journal
     # will be handling the "BML" views.
     if ($styleid eq "siteviews") {
         $r->notes->{ 'no_control_strip' } = 1;
-        
+
         # kill the flag
         ${$opts->{'handle_with_bml_ref'}} = 0;
         ${$opts->{'handle_with_siteviews_ref'}} = 1;
-        
+
         $ctx->[S2::PROPS]->{'SITEVIEWS_RENDERED'} = 1;
     } else {
         if ( ! $ctx->[S2::PROPS]->{use_journalstyle_entry_page} && ( $view eq "entry" || $view eq "reply" ) ) {
@@ -503,12 +503,12 @@ sub get_layers_of_user
 sub get_layers_of_user
 {
     my ($u, $is_system, $infokeys) = @_;
-    
+
     my $subst_user = LJ::run_hook("substitute_s2_layers_user", $u);
     if (defined $subst_user && LJ::isu($subst_user)) {
         $u = $subst_user;
     }
-    
+
     my $userid = LJ::want_userid($u);
     return undef unless $userid;
     undef $u unless LJ::isu($u);
@@ -1145,7 +1145,7 @@ sub populate_system_props
     $ctx->[S2::PROPS]->{'SITENAMEABBREV'} = $LJ::SITENAMEABBREV;
     $ctx->[S2::PROPS]->{'IMGDIR'} = $LJ::IMGPREFIX;
     $ctx->[S2::PROPS]->{'STATDIR'} = $LJ::STATPREFIX;
-    
+
     $ctx->[S2::PROPS]->{'SITEVIEWS_RENDERED'} = 0;
 }
 
@@ -1153,18 +1153,18 @@ sub alias_renamed_props
 sub alias_renamed_props
 {
     my $ctx = shift;
-    $ctx->[S2::PROPS]->{num_items_recent} = $ctx->[S2::PROPS]->{page_recent_items} 
+    $ctx->[S2::PROPS]->{num_items_recent} = $ctx->[S2::PROPS]->{page_recent_items}
         if exists $ctx->[S2::PROPS]->{page_recent_items};
 
     $ctx->[S2::PROPS]->{num_items_reading} = $ctx->[S2::PROPS]->{page_friends_items}
         if exists $ctx->[S2::PROPS]->{page_friends_items};
-    
+
     $ctx->[S2::PROPS]->{reverse_sortorder_day} = $ctx->[S2::PROPS]->{page_day_sortorder} eq 'reverse' ? 1 : 0
         if exists $ctx->[S2::PROPS]->{page_day_sortorder};
 
     $ctx->[S2::PROPS]->{reverse_sortorder_year} = $ctx->[S2::PROPS]->{page_year_sortorder} eq 'reverse' ? 1 : 0
         if exists $ctx->[S2::PROPS]->{page_year_sortorder};
-        
+
     $ctx->[S2::PROPS]->{use_journalstyle_entry_page} = ! $ctx->[S2::PROPS]->{view_entry_disabled}
         if exists $ctx->[S2::PROPS]->{view_entry_disabled};
 }
@@ -1834,7 +1834,7 @@ sub Entry
     return $e;
 }
 
-#returns an S2 Entry from a user object and an entry object 
+#returns an S2 Entry from a user object and an entry object
 sub Entry_from_entryobj
 {
     my ($u, $entry_obj, $opts) = @_;
@@ -1916,7 +1916,7 @@ sub Entry_from_entryobj
         $userpic = Image_userpic( $poster, $entry_obj->userpic->picid, $kw ) if $entry_obj->userpic;
     } else {
         $userpic = Image_userpic( $journal, $journal->userpic->picid ) if $journal->userpic;
-    } 
+    }
 
     # override used moodtheme if necessary
     my $moodthemeid = $u->prop( 'opt_forcemoodtheme' ) eq 'Y' ?
@@ -2182,7 +2182,7 @@ sub Image_userpic
 
     my $title = $u->display_name;
     $title .= $kw ? ": $kw" : ": (default)";
-    
+
     return {
         '_type' => "Image",
         'url' => "$LJ::USERPIC_ROOT/$picid/$u->{'userid'}",
@@ -2302,7 +2302,7 @@ sub nth_entry_seen {
     my $e = shift;
     my $key = "$e->{'journal'}->{'username'}-$e->{'itemid'}";
     my $ref = $LJ::REQ_GLOBAL{'nth_entry_keys'};
-    
+
     if (exists $ref->{$key}) {
         return $ref->{$key};
     }
@@ -2979,7 +2979,7 @@ sub _Comment__get_link
                             LJ::S2::Image("$LJ::IMGPREFIX/silk/comments/unscreen.png", 16, 16));
     }
 
-    
+
     if ($key eq "watch_thread" || $key eq "unwatch_thread" || $key eq "watching_parent") {
         return $null_link unless LJ::is_enabled('esn');
         return $null_link unless $remote && $remote->can_use_esn;
@@ -3076,8 +3076,8 @@ sub _Comment__get_link
     }
     if ($key eq "expand_comments") {
         return $null_link unless $u->show_thread_expander( $remote );
-        ## show "Expand" link only if 
-        ## 1) the comment is collapsed 
+        ## show "Expand" link only if
+        ## 1) the comment is collapsed
         ## 2) any of comment's children are collapsed
         my $show_expand_link;
         if (!$this->{full} and !$this->{deleted}) {
@@ -3124,7 +3124,7 @@ sub _print_quickreply_link
     my ($ctx, $this, $opts) = @_;
 
     $opts ||= {};
-    
+
     # one of these had better work
     my $replyurl =  $opts->{'reply_url'} || $this->{'reply_url'} || $this->{'entry'}->{'comments'}->{'post_url'};
 
@@ -3345,7 +3345,7 @@ my %dt_vars = (
 
 sub _dt_vars_html {
     my $datecode = shift;
-    
+
     return qq{ "/",$dt_vars{yyyy}, "/", $dt_vars{mm}, "/", $dt_vars{dd}, "/" } if $datecode =~ /^(d|dd|dayord)$/;
     return qq{ "/",$dt_vars{yyyy}, "/", $dt_vars{mm}, "/" } if $datecode =~ /^(m|mm|mon|month)$/;
     return qq{ "/",$dt_vars{yyyy}, "/" } if $datecode =~ /^(yy|yyyy)$/;
@@ -3370,7 +3370,7 @@ sub Date__date_format
     my $code = "\$\$c = sub { my \$time = shift; return join('',";
     my $i = 0;
     foreach (@parts) {
-        if ($i % 2) { 
+        if ($i % 2) {
             # translate date %%variable%% to value
             my $link = _dt_vars_html( $_ );
             $code .= $as_link && $link
@@ -3433,7 +3433,7 @@ sub UserLite__get_link
     return $button->( $linkbar->trust ) if $key eq 'trust';
     return $button->( $linkbar->watch ) if $key eq 'watch';
     return $button->( $linkbar->post ) if $key eq 'post_entry';
-    return $button->( $linkbar->message ) if $key eq 'message';    
+    return $button->( $linkbar->message ) if $key eq 'message';
     return $button->( $linkbar->track ) if $key eq 'track';
     return $button->( $linkbar->memories ) if $key eq 'memories';
     return $button->( $linkbar->tellafriend ) if $key eq 'tell_friend';
@@ -3447,7 +3447,7 @@ sub EntryLite__get_link
 {
     my ($ctx, $this, $key) = @_;
     my $null_link = { '_type' => 'Link', '_isnull' => 1 };
-    
+
     if ( $this->{_type} eq 'Entry' || $this->{_type} eq 'StickyEntry' ) {
         return _Entry__get_link($ctx, $this, $key);
     }
@@ -3465,22 +3465,22 @@ sub EntryLite__formatted_subject {
 sub EntryLite__formatted_subject {
     my ($ctx, $this, $attrs) = @_;
     my $subject = $this->{subject};
-    
+
     if ( $this->{_type} eq 'Entry' || $this->{_type} eq 'StickyEntry' ) {
         # if an entry does not have a subject, and text_nosubject is not set, return nothing
         return if $subject eq ""  && $ctx->[S2::PROPS]->{text_nosubject} eq "";
 
         # if an entry does not have a subject, text_nosubject is set, and all_entrysubjects, then use text_nosubject as the subject
-        $subject = $ctx->[S2::PROPS]->{text_nosubject}        
+        $subject = $ctx->[S2::PROPS]->{text_nosubject}
             if $subject eq ""
-                && $ctx->[S2::PROPS]->{text_nosubject} ne "" 
+                && $ctx->[S2::PROPS]->{text_nosubject} ne ""
                 && $ctx->[S2::PROPS]->{all_entrysubjects};
 
         # if an entry does not have a subject, text_nosubject is set, and all_entrysubjects is false, then only return the formatted subject with text_nosubject on the month view
         $subject = $ctx->[S2::PROPS]->{text_nosubject}
             if $subject eq ""
-                && $ctx->[S2::PROPS]->{text_nosubject} ne "" 
-                && ! $ctx->[S2::PROPS]->{all_entrysubjects} 
+                && $ctx->[S2::PROPS]->{text_nosubject} ne ""
+                && ! $ctx->[S2::PROPS]->{all_entrysubjects}
                 && $LJ::S2::CURR_PAGE->{view} eq 'month';
 
     } elsif ( $this->{_type} eq "Comment" ) {
@@ -3488,7 +3488,7 @@ sub EntryLite__formatted_subject {
             # if a comment does not have a subject, and all_commentsubjects is false, then return nothing
             return if $subject eq "" && $ctx->[S2::PROPS]->{all_commentsubjects} eq "";
 
-            # if a comment does not have a subject, text_nosubject is set, and all_commentsubjects is true, 
+            # if a comment does not have a subject, text_nosubject is set, and all_commentsubjects is true,
             # then return the formatted subject with text_nosubject
             $subject = $ctx->[S2::PROPS]->{text_nosubject}
                 if $subject eq ""
@@ -3510,7 +3510,7 @@ sub EntryLite__formatted_subject {
         my $style = $attrs->{style} ? " style=\"" . LJ::ehtml( $attrs->{style} ) . "\" " : '';
 
         return "<a href=\"$this->{permalink_url}\"$class$style>$subject</a>";
-    }   
+    }
 }
 
 *Entry__formatted_subject = \&EntryLite__formatted_subject;
@@ -3746,23 +3746,29 @@ sub Page__visible_tag_list
 sub Page__visible_tag_list
 {
     my ($ctx, $this, $limit) = @_;
+
+    $limit ||= "";
     return $this->{'_visible_tag_list'}
-        if defined $this->{'_visible_tag_list'};
+        if defined $this->{'_visible_tag_list'} && ! $limit;
 
     my $remote = LJ::get_remote();
     my $u = $LJ::S2::CURR_PAGE->{'_u'};
     return [] unless $u;
 
-    my $tags = LJ::Tags::get_usertags($u, { remote => $remote });
-    return [] unless $tags;
-
-    my @taglist;
-    foreach my $kwid (keys %{$tags}) {
-        # only show tags for display
-        next unless $tags->{$kwid}->{display};
-
-        # create tag object
-        push @taglist, LJ::S2::TagDetail($u, $kwid => $tags->{$kwid});
+    # use the cached tag list, if we have it
+    my @taglist = @{$this->{'_visible_tag_list'} || []};
+
+    unless ( @taglist) {
+        my $tags = LJ::Tags::get_usertags( $u, { remote => $remote } );
+        return [] unless $tags;
+
+        foreach my $kwid (keys %{$tags}) {
+            # only show tags for display
+            next unless $tags->{$kwid}->{display};
+
+            # create tag object
+            push @taglist, LJ::S2::TagDetail( $u, $kwid => $tags->{$kwid} );
+        }
     }
 
     if ($limit) {
@@ -3910,7 +3916,7 @@ sub YearMonth__month_format
     my $code = "\$\$c = sub { my \$time = shift; return join('',";
     my $i = 0;
     foreach (@parts) {
-        if ($i % 2) { 
+        if ($i % 2) {
             # translate date %%variable%% to value
             my $link = _dt_vars_html( $_ );
             $code .= $as_link && $link
@@ -3953,7 +3959,7 @@ sub string__substr
 sub string__substr
 {
     my ($ctx, $this, $start, $length) = @_;
-    
+
     use Encode qw/decode_utf8 encode_utf8/;
     my $ustr = decode_utf8($this);
     my $result = substr($ustr, $start, $length);
--------------------------------------------------------------------------------

Post a comment in response:

This account has disabled anonymous posting.
If you don't have an account you can create one now.
HTML doesn't work in the subject.
More info about formatting

If you are unable to use this captcha for any reason, please contact us by email at support@dreamwidth.org