Ignore:
Timestamp:
Nov 16, 2004, 3:27:27 PM (17 years ago)
Author:
kake
Message:

Move RSS stuff to OpenGuides.pm, add some tests.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/lib/OpenGuides.pm

    r549 r550  
    510510}
    511511
     512=item B<display_rss>
     513
     514  # Last ten non-minor edits to Hammersmith pages.
     515  $guide->display_rss(
     516                       items              => 10,
     517                       ignore_minor_edits => 1,
     518                       locale             => "Hammersmith",
     519                     );
     520
     521  # All edits bob has made to pub pages in the last week.
     522  $guide->display_rss(
     523                       days     => 7,
     524                       username => "bob",
     525                       category => "Pubs",
     526                     );
     527
     528As with other methods, the C<return_output> parameter can be used to
     529return the output instead of printing it to STDOUT.
     530
     531=cut
     532
     533sub display_rss {
     534    my ($self, %args) = @_;
     535    use Data::Dumper;warn Dumper \%args;
     536    my $return_output = $args{return_output} ? 1 : 0;
     537
     538    my $items = $args{items} || "";
     539    my $days  = $args{days}  || "";
     540    my $ignore_minor_edits = $args{ignore_minor_edits} ? 1 : 0;
     541    my $username = $args{username} || "";
     542    my $category = $args{category} || "";
     543    my $locale   = $args{locale}   || "";
     544    my %criteria = (
     545                     items              => $items,
     546                     days               => $days,
     547                     ignore_minor_edits => $ignore_minor_edits,
     548                   );
     549    my %filter;
     550    $filter{username} = $username if $username;
     551    $filter{category} = $category if $category;
     552    $filter{locale}   = $locale   if $locale;
     553    if ( scalar keys %filter ) {
     554        $criteria{filter_on_metadata} = \%filter;
     555    }
     556
     557    my $rdf_writer = OpenGuides::RDF->new( wiki   => $self->wiki,
     558                                           config => $self->config );
     559    my $output = "Content-type: text/plain\n\n";
     560    $output .= $rdf_writer->make_recentchanges_rss( %criteria );
     561    return $output if $return_output;
     562    print $output;
     563}
     564
    512565=item B<commit_node>
    513566
Note: See TracChangeset for help on using the changeset viewer.