Committer: sbelyaev
LJSUP-12780: prevent duplicating repost information in selected S2 stylesU trunk/bin/upgrading/s2layers/core1.s2 U trunk/cgi-bin/LJ/Entry/Repost.pm U trunk/cgi-bin/LJ/S2/DayPage.pm U trunk/cgi-bin/LJ/S2/FriendsPage.pm U trunk/cgi-bin/LJ/S2/RecentPage.pm U trunk/cgi-bin/ljviews.pl
Modified: trunk/bin/upgrading/s2layers/core1.s2 =================================================================== --- trunk/bin/upgrading/s2layers/core1.s2 2012-07-02 14:05:53 UTC (rev 22365) +++ trunk/bin/upgrading/s2layers/core1.s2 2012-07-03 08:02:33 UTC (rev 22366) @@ -2074,8 +2074,12 @@ } set text_comments_id = "comments"; +property bool repost_aware { + des = "When enabled, style is responsible for show reposter name. When disabled, infomration about reposter is automatically inserted into entry bodies."; + noui = 1; +} +set tags_aware = false; - ###[ global function implementations ] function prop_init () Modified: trunk/cgi-bin/LJ/Entry/Repost.pm =================================================================== --- trunk/cgi-bin/LJ/Entry/Repost.pm 2012-07-02 14:05:53 UTC (rev 22365) +++ trunk/cgi-bin/LJ/Entry/Repost.pm 2012-07-03 08:02:33 UTC (rev 22366) @@ -459,7 +459,7 @@ } sub substitute_content { - my ($class, $entry_obj, $opts) = @_; + my ($class, $entry_obj, $opts, $props) = @_; my $remote = LJ::get_remote(); my $original_entry_obj = $entry_obj->original_post; @@ -563,51 +563,46 @@ ${$opts->{'eventtime'}} = $entry_obj->eventtime_mysql; } - if ($opts->{'event_raw'}) { - my $text_var = LJ::u_equals($remote, $entry_obj->poster) ? 'entry.reference.journal.owner' : - 'entry.reference.journal.guest'; - - my $event_text = $original_entry_obj->event_raw; - my $event = LJ::Lang::ml($text_var, - { 'author' => LJ::ljuser2($original_entry_obj->poster), - 'reposter' => LJ::ljuser2($entry_obj->poster), - 'datetime' => $entry_obj->eventtime_mysql, - 'text' => $event_text, }); - - ${$opts->{'event_raw'}} = $event; - } - if ($opts->{'event'}) { - my $text_var = LJ::u_equals($remote, $entry_obj->poster) ? 'entry.reference.journal.owner' : - 'entry.reference.journal.guest'; - my $event_text = $original_entry_obj->event_raw; - my $event = LJ::Lang::ml($text_var, - { 'author' => LJ::ljuser2($original_entry_obj->poster), - 'reposter' => LJ::ljuser2($entry_obj->poster), - 'datetime' => $entry_obj->eventtime_mysql, - 'text' => $event_text, }); - ${$opts->{'event'}} = $event; + if ($opts->{use_repost_signature}) { + my $text_var = LJ::u_equals($remote, $entry_obj->poster) ? 'entry.reference.journal.owner' : + 'entry.reference.journal.guest'; + + my $event = LJ::Lang::ml($text_var, + { 'author' => LJ::ljuser2($original_entry_obj->poster), + 'reposter' => LJ::ljuser2($entry_obj->poster), + 'datetime' => $entry_obj->eventtime_mysql, + 'text' => $event_text, }); + ${$opts->{'event'}} = $event; + } else { + ${$opts->{'event'}} = $event_text; + } } if ($opts->{'event_friend'}) { my $event_text = $original_entry_obj->event_raw; - my $journal = $original_entry_obj->journal; - - my $text_var = $journal->is_community ? 'entry.reference.friends.community' : - 'entry.reference.friends.journal'; - $text_var .= LJ::u_equals($remote, $entry_obj->poster) ? '.owner' : '.guest'; + if ($opts->{use_repost_signature}) { + my $journal = $original_entry_obj->journal; + + my $text_var = $journal->is_community ? 'entry.reference.friends.community' : + 'entry.reference.friends.journal'; - my $event = LJ::Lang::ml($text_var, - { 'author' => LJ::ljuser2($original_entry_obj->poster), - 'communityname' => LJ::ljuser2($original_entry_obj->journal), - 'reposter' => LJ::ljuser2($entry_obj->poster), - 'datetime' => $entry_obj->eventtime_mysql, - 'text' => $event_text, }); + $text_var .= LJ::u_equals($remote, $entry_obj->poster) ? '.owner' : '.guest'; + + my $event = LJ::Lang::ml($text_var, + { 'author' => LJ::ljuser2($original_entry_obj->poster), + 'communityname' => LJ::ljuser2($original_entry_obj->journal), + 'reposter' => LJ::ljuser2($entry_obj->poster), + 'datetime' => $entry_obj->eventtime_mysql, + 'text' => $event_text, }); - ${$opts->{'event_friend'}} = $event; + ${$opts->{'event_friend'}} = $event; + } else { + ${$opts->{'event_friend'}} = $event_text; + } } if ($opts->{'subject_repost'}) { Modified: trunk/cgi-bin/LJ/S2/DayPage.pm =================================================================== --- trunk/cgi-bin/LJ/S2/DayPage.pm 2012-07-02 14:05:53 UTC (rev 22365) +++ trunk/cgi-bin/LJ/S2/DayPage.pm 2012-07-03 08:02:33 UTC (rev 22366) @@ -118,6 +118,8 @@ my $replace_video = $remote ? $remote->opt_embedplaceholders : 0; my $ljcut_disable = $remote ? $remote->{'opt_ljcut_disable_friends'} : undef; + my $ctx = $opts->{'ctx'}; + ENTRY: foreach my $item (@items) { @@ -150,13 +152,16 @@ 'posterid' => \$posterid, 'security' => \$security, 'allowmask' => \$allowmask, - 'event_raw' => \$text, + 'event' => \$text, 'subject' => \$subject, 'reply_count' => \$replycount, 'userlite' => \$lite_journalu, 'removed' => \$removed, }; - if (LJ::Entry::Repost->substitute_content( $entry_obj, $content )) { + my $repost_props = { 'use_repost_signature' => !$ctx->[S2::PROPS]->{'repost_aware'}, + }; + + if (LJ::Entry::Repost->substitute_content( $entry_obj, $content, $repost_props )) { next ENTRY if $removed && !LJ::u_equals($u, $remote); next ENTRY unless $entry_obj->visible_to($remote, { 'viewall' => $viewall, 'viewsome' => $viewsome}); @@ -261,7 +266,7 @@ @taglist = sort { $a->{name} cmp $b->{name} } @taglist; if ($opts->{enable_tags_compatibility} && @taglist) { - $text .= LJ::S2::get_tags_text($opts->{ctx}, \@taglist); + $text .= LJ::S2::get_tags_text($ctx, \@taglist); } if ($security eq "public" && !$LJ::REQ_GLOBAL{'text_of_first_public_post'}) { Modified: trunk/cgi-bin/LJ/S2/FriendsPage.pm =================================================================== --- trunk/cgi-bin/LJ/S2/FriendsPage.pm 2012-07-02 14:05:53 UTC (rev 22365) +++ trunk/cgi-bin/LJ/S2/FriendsPage.pm 2012-07-03 08:02:33 UTC (rev 22366) @@ -71,7 +71,8 @@ confirm.bubble.no/); } - my $itemshow = S2::get_property_value($opts->{'ctx'}, "page_friends_items")+0; + my $ctx = $opts->{'ctx'}; + my $itemshow = S2::get_property_value($ctx, "page_friends_items")+0; if ($itemshow < 1) { $itemshow = 20; } elsif ($itemshow > 50) { $itemshow = 50; } @@ -283,7 +284,10 @@ 'removed' => \$removed, 'reply_count' => \$replycount, }; - if (LJ::Entry::Repost->substitute_content( $entry_obj, $content )) { + my $repost_props = { 'use_repost_signature' => !$ctx->[S2::PROPS]->{'repost_aware'}, + }; + + if (LJ::Entry::Repost->substitute_content( $entry_obj, $content, $repost_props )) { next ENTRY if $removed; next ENTRY unless $entry_obj->visible_to($remote); @@ -403,7 +407,7 @@ my $picid = 0; my $picu = undef; - if ($friendid != $posterid && S2::get_property_value($opts->{ctx}, 'use_shared_pic')) { + if ($friendid != $posterid && S2::get_property_value($ctx, 'use_shared_pic')) { # using the community, the user wants to see shared pictures $picu = $friends{$friendid}; @@ -450,7 +454,7 @@ @taglist = sort { $a->{name} cmp $b->{name} } @taglist; if ($opts->{enable_tags_compatibility} && @taglist) { - $text .= LJ::S2::get_tags_text($opts->{ctx}, \@taglist); + $text .= LJ::S2::get_tags_text($ctx, \@taglist); } if ($security eq "public" && !$LJ::REQ_GLOBAL{'text_of_first_public_post'}) { Modified: trunk/cgi-bin/LJ/S2/RecentPage.pm =================================================================== --- trunk/cgi-bin/LJ/S2/RecentPage.pm 2012-07-02 14:05:53 UTC (rev 22365) +++ trunk/cgi-bin/LJ/S2/RecentPage.pm 2012-07-03 08:02:33 UTC (rev 22366) @@ -69,8 +69,9 @@ $opts->{'badargs'} = 1; return 1; } - - my $itemshow = S2::get_property_value($opts->{'ctx'}, "page_recent_items")+0; + + my $ctx = $opts->{'ctx'}; + my $itemshow = S2::get_property_value($ctx, "page_recent_items")+0; if ($itemshow < 1) { $itemshow = 20; } elsif ($itemshow > 50 && !$LJ::S2_TRUSTED{ $u->{'userid'} } ) { $itemshow = 50; } @@ -183,13 +184,16 @@ 'posterid' => \$posterid, 'security' => \$security, 'allowmask' => \$allowmask, - 'event_raw' => \$text, + 'event' => \$text, 'subject' => \$subject, 'reply_count' => \$replycount, 'removed' => \$removed, 'userlite' => \$lite_journalu, }; - if (LJ::Entry::Repost->substitute_content( $entry_obj, $content )) { + my $repost_props = { 'use_repost_signature' => !$ctx->[S2::PROPS]->{'repost_aware'}, + }; + + if (LJ::Entry::Repost->substitute_content( $entry_obj, $content, $repost_props )) { next ENTRY if $removed && !LJ::u_equals($u, $remote); next ENTRY unless $entry_obj->visible_to($remote, { 'viewall' => $viewall, 'viewsome' => $viewsome}); @@ -268,7 +272,7 @@ @taglist = sort { $a->{name} cmp $b->{name} } @taglist; if ($opts->{enable_tags_compatibility} && @taglist) { - $text .= LJ::S2::get_tags_text($opts->{ctx}, \@taglist); + $text .= LJ::S2::get_tags_text($ctx, \@taglist); } my $permalink = $removed ? '' : $entry_obj->permalink_url; Modified: trunk/cgi-bin/ljviews.pl =================================================================== --- trunk/cgi-bin/ljviews.pl 2012-07-02 14:05:53 UTC (rev 22365) +++ trunk/cgi-bin/ljviews.pl 2012-07-03 08:02:33 UTC (rev 22366) @@ -1298,7 +1298,7 @@ 'journalu' => \$journalu, 'posterid' => \$posterid, 'security' => \$security, - 'event_raw' => \$event, + 'event' => \$event, 'subject' => \$subject, 'removed' => \$removed, 'reply_count' => \$replycount }; @@ -1895,7 +1895,7 @@ 'journalu' => \$journalu, 'posterid' => \$posterid, 'security' => \$security, - 'event_raw' => \$event, + 'event' => \$event, 'subject' => \$subject, 'reply_count' => \$replycount, 'cluster_id' => \$clusterid, }; @@ -2747,7 +2747,7 @@ 'journalu' => \$journalu, 'posterid' => \$posterid, 'security' => \$security, - 'event_raw' => \$event, + 'event' => \$event, 'subject' => \$subject, 'removed' => \$removed, 'reply_count' => \$replycount };