Ignore:
Timestamp:
Oct 23, 2005, 8:00:10 PM (16 years ago)
Author:
Earle Martin
Message:

Change "action=rss" parameter to "action=rc;format=rss". Extract RecentChanges code in OpenGuides.pm to its own sub (display_recent_changes()). Fix references to old params in templates. Put redirect to URL with new parameters into wiki.cgi for old parameter.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/lib/OpenGuides.pm

    r699 r700  
    154154        $tt_vars{index_value} = $2;
    155155        $tt_vars{"rss_".lc($type)."_url"} =
    156                            $config->script_name . "?action=rss;"
     156                           $config->script_name . "?action=rc;format=rss;"
    157157                           . lc($type) . "=" . lc(CGI->escape($2));
    158158    }
     
    224224
    225225    if ($id eq "RecentChanges") {
    226         my $minor_edits = $self->get_cookie( "show_minor_edits_in_rc" );
    227         my %recent_changes;
    228         my $q = CGI->new;
    229         my $since = $q->param("since");
    230         if ( $since ) {
    231             $tt_vars{since} = $since;
    232             my $t = localtime($since); # overloaded by Time::Piece
    233             $tt_vars{since_string} = $t->strftime;
    234             my %criteria = ( since => $since );
    235             $criteria{metadata_was} = { edit_type => "Normal edit" }
    236               unless $minor_edits;
    237             my @rc = $self->{wiki}->list_recent_changes( %criteria );
    238 
    239             @rc = map {
    240                 {
    241                     name           => CGI->escapeHTML($_->{name}),
    242                     last_modified  => CGI->escapeHTML($_->{last_modified}),
    243                     version        => CGI->escapeHTML($_->{version}),
    244                     comment        => CGI->escapeHTML($_->{metadata}{comment}[0]),
    245                     username       => CGI->escapeHTML($_->{metadata}{username}[0]),
    246                     host           => CGI->escapeHTML($_->{metadata}{host}[0]),
    247                     username_param => CGI->escape($_->{metadata}{username}[0]),
    248                     edit_type      => CGI->escapeHTML($_->{metadata}{edit_type}[0]),
    249                     url            => $config->script_name . "?"
    250                                    . CGI->escape($wiki->formatter->node_name_to_node_param($_->{name})),
    251                 }
    252             } @rc;
    253             if ( scalar @rc ) {
    254                 $recent_changes{since} = \@rc;
    255             }
    256         } else {
    257             for my $days ( [0, 1], [1, 7], [7, 14], [14, 30] ) {
    258                 my %criteria = ( between_days => $days );
    259                 $criteria{metadata_was} = { edit_type => "Normal edit" }
    260                   unless $minor_edits;
    261                 my @rc = $self->{wiki}->list_recent_changes( %criteria );
    262 
    263                 @rc = map {
    264                     {
    265                         name           => CGI->escapeHTML($_->{name}),
    266                         last_modified  => CGI->escapeHTML($_->{last_modified}),
    267                         version        => CGI->escapeHTML($_->{version}),
    268                         comment        => CGI->escapeHTML($_->{metadata}{comment}[0]),
    269                         username       => CGI->escapeHTML($_->{metadata}{username}[0]),
    270                         host           => CGI->escapeHTML($_->{metadata}{host}[0]),
    271                         username_param => CGI->escape($_->{metadata}{username}[0]),
    272                         edit_type      => CGI->escapeHTML($_->{metadata}{edit_type}[0]),
    273                         url            => $config->script_name . "?"
    274                                           . CGI->escape($wiki->formatter->node_name_to_node_param($_->{name})),
    275                     }
    276                 } @rc;
    277                 if ( scalar @rc ) {
    278                     $recent_changes{$days->[1]} = \@rc;
    279                 }
    280             }
    281         }
    282         $tt_vars{recent_changes} = \%recent_changes;
    283         my %processing_args = (
    284                                   id            => $id,
    285                                   template      => "recent_changes.tt",
    286                                   tt_vars       => \%tt_vars,
    287                               );
    288         if ( !$since && $self->get_cookie("track_recent_changes_views") ) {
    289             my $cookie = OpenGuides::CGI->make_recent_changes_cookie(config => $config );
    290             $processing_args{cookies} = $cookie;
    291             $tt_vars{last_viewed} = OpenGuides::CGI->get_last_recent_changes_visit_from_cookie( config => $config );
    292         }
    293         return %tt_vars if $args{return_tt_vars};
    294         my $output = $self->process_template( %processing_args );
    295         return $output if $return_output;
    296         print $output;
     226        $self->display_recent_changes(%args);
    297227    } elsif ( $id eq $self->config->home_name ) {
    298228        my @recent = $wiki->list_recent_changes(
     
    332262}
    333263
     264=item B<display_recent_changes> 
     265
     266  $guide->display_recent_changes;
     267
     268As with other methods, the C<return_output> parameter can be used to
     269return the output instead of printing it to STDOUT.
     270
     271=cut
     272
     273sub display_recent_changes {
     274    my ($self, %args) = @_;
     275    my $config = $self->config;
     276    my $wiki = $self->wiki;
     277    my $minor_edits = $self->get_cookie( "show_minor_edits_in_rc" );
     278    my $id = $args{id} || $self->config->home_name;
     279    my $return_output = $args{return_output} || 0;
     280    my (%tt_vars, %recent_changes);
     281    my $q = CGI->new;
     282    my $since = $q->param("since");
     283    if ( $since ) {
     284        $tt_vars{since} = $since;
     285        my $t = localtime($since); # overloaded by Time::Piece
     286        $tt_vars{since_string} = $t->strftime;
     287        my %criteria = ( since => $since );   
     288        $criteria{metadata_was} = { edit_type => "Normal edit" }
     289          unless $minor_edits;
     290        my @rc = $self->{wiki}->list_recent_changes( %criteria );
     291 
     292        @rc = map {
     293            {
     294              name        => CGI->escapeHTML($_->{name}),
     295              last_modified => CGI->escapeHTML($_->{last_modified}),
     296              version     => CGI->escapeHTML($_->{version}),
     297              comment     => CGI->escapeHTML($_->{metadata}{comment}[0]),
     298              username    => CGI->escapeHTML($_->{metadata}{username}[0]),
     299              host        => CGI->escapeHTML($_->{metadata}{host}[0]),
     300              username_param => CGI->escape($_->{metadata}{username}[0]),
     301              edit_type   => CGI->escapeHTML($_->{metadata}{edit_type}[0]),
     302              url         => $config->script_name . "?"
     303      . CGI->escape($wiki->formatter->node_name_to_node_param($_->{name})),
     304        }
     305                   } @rc;
     306        if ( scalar @rc ) {
     307            $recent_changes{since} = \@rc;
     308        }
     309    } else {
     310        for my $days ( [0, 1], [1, 7], [7, 14], [14, 30] ) {
     311            my %criteria = ( between_days => $days );
     312            $criteria{metadata_was} = { edit_type => "Normal edit" }
     313              unless $minor_edits;
     314            my @rc = $self->{wiki}->list_recent_changes( %criteria );
     315
     316            @rc = map {
     317            {
     318              name        => CGI->escapeHTML($_->{name}),
     319              last_modified => CGI->escapeHTML($_->{last_modified}),
     320              version     => CGI->escapeHTML($_->{version}),
     321              comment     => CGI->escapeHTML($_->{metadata}{comment}[0]),
     322              username    => CGI->escapeHTML($_->{metadata}{username}[0]),
     323              host        => CGI->escapeHTML($_->{metadata}{host}[0]),
     324              username_param => CGI->escape($_->{metadata}{username}[0]),
     325              edit_type   => CGI->escapeHTML($_->{metadata}{edit_type}[0]),
     326              url         => $config->script_name . "?"
     327      . CGI->escape($wiki->formatter->node_name_to_node_param($_->{name})),
     328        }
     329                       } @rc;
     330            if ( scalar @rc ) {
     331                $recent_changes{$days->[1]} = \@rc;
     332        }
     333        }
     334    }
     335    $tt_vars{recent_changes} = \%recent_changes;
     336    my %processing_args = (
     337                            id            => $id,
     338                            template      => "recent_changes.tt",
     339                            tt_vars       => \%tt_vars,
     340                           );
     341    if ( !$since && $self->get_cookie("track_recent_changes_views") ) {
     342    my $cookie =
     343           OpenGuides::CGI->make_recent_changes_cookie(config => $config );
     344        $processing_args{cookies} = $cookie;
     345        $tt_vars{last_viewed} = OpenGuides::CGI->get_last_recent_changes_visit_from_cookie( config => $config );
     346    }
     347    return %tt_vars if $args{return_tt_vars};
     348    my $output = $self->process_template( %processing_args );
     349    return $output if $return_output;
     350    print $output;
     351}
     352
    334353=item B<display_diffs>
    335354
Note: See TracChangeset for help on using the changeset viewer.