[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
afuna.
Files modified:
http://bugs.dwscoalition.org/show_bug.cgi?id=1183
Respect visible tag limit on tags page.
Patch by
![[personal profile]](https://www.dreamwidth.org/img/silk/identity/user.png)
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]]"><<</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') . " "; $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); --------------------------------------------------------------------------------