remote or return BML::ml( '.read.login', { aopts => "href='login'" } ); my $itemsperpage = 50; my $ret; my $skip = $GET{skip}+0 || 0; my $view = $GET{view}; my $showtypes = ''; my $reqfilter; if ( $view && $view =~ /^[CPY]$/ ) { $showtypes = $view; } elsif ( defined $view ) { $reqfilter = int $view; } my $cf; # Filters to check for: specified filter ID, then "Mobile", "Mobile View", # "Default", "Default View" - if none of these exist, then no filter. # However, don't load default filters if all subscriptions were requested. # an id of zero or undef would return all the user's filters $cf = $u->content_filters( id => $reqfilter ) if $reqfilter; $cf ||= $u->content_filters( name => "Mobile" ) || $u->content_filters( name => "Mobile View" ) || $u->content_filters( name => "Default" ) || $u->content_filters( name => "Default View" ) unless defined $view && $view == 0; my @entries = $u->watch_items( 'remote' => $u->{'userid'}, 'itemshow' => $itemsperpage, 'skip' => $skip, 'showtypes' => $showtypes, 'u' => $u, 'userid' => $u->{'userid'}, 'content_filter' => $cf, ); my $numentries = @entries; my $prevcount = $skip + $itemsperpage; my $nextcount = $skip ? $skip - $itemsperpage : -1; my $nextlink = $skip ? BML::ml( '.items.next', { aopts => "href='?skip=$nextcount'", items => $itemsperpage } ) : ''; my $prevlink = ( $numentries < $itemsperpage ) ? '' : BML::ml( '.items.previous', { aopts => "href='?skip=$prevcount'", items => $itemsperpage } ); my @filters = ( "0", $BML::ML{'web.controlstrip.select.friends.all'}, "P", $BML::ML{'web.controlstrip.select.friends.journals'}, "C", $BML::ML{'web.controlstrip.select.friends.communities'}, "Y", $BML::ML{'web.controlstrip.select.friends.feeds'} ); push @filters, $_->id, $_->name foreach $u->content_filters; # showtypes overrides default filters, but reqfilter overrides showtypes my $selected = "0"; $selected = $cf->id if $cf; $selected = $showtypes if $showtypes; $selected = $cf->id if $reqfilter; $ret .= BML::ml( '.read.back', { aopts => "href='./'", sitename => $LJ::SITENAMESHORT } ); $ret .= qq(

); $ret .= qq($ML{'.page.title'}
); $ret .= $BML::ML{'web.controlstrip.select.friends.label'} . " "; $ret .= "
\n"; $ret .= LJ::html_select( { name => "view", selected => $selected }, @filters ) . " "; $ret .= LJ::html_submit( $BML::ML{'web.controlstrip.btn.view'} ); $ret .= "
"; $ret .= qq(
$prevlink$nextlink

); # how many characters to truncate entry at my $max_entry_length = 400; foreach my $ei (@entries) { next unless $ei; my $entry; if ($ei->{'ditemid'}) { $entry = LJ::Entry->new($ei->{'journalid'}, ditemid => $ei->{'ditemid'}); } elsif ($ei->{'jitemid'} && $ei->{'anum'}) { $entry = LJ::Entry->new($ei->{'journalid'}, jitemid => $ei->{'jitemid'}, anum => $ei->{'anum'}); } next unless $entry; my $pu = $entry->poster; my $ju = $entry->journal; my $url = $entry->url; $url .= "?format=light"; my $who = "$pu->{user}"; if ($pu->{userid} != $ju->{userid}) { $who .= " in " . "$ju->{user}"; } my $subject = $entry->subject_text; unless ( $subject ) { $subject = $entry->event_text; my $truncated = 0; LJ::CleanHTML::clean_and_trim_subject( \$subject, undef, \$truncated ); $subject .= "..." if $truncated; } # say the entry was all HTML, and we thus have nothing, one more fallback $subject ||= "(no subject)"; $ret .= "$who: " . "$subject
"; } $ret .= BML::ml( '.read.noneleft' ) unless $numentries; return $ret; } _code?>