Ignore:
Timestamp:
Sep 16, 2004, 1:11:29 PM (17 years ago)
Author:
kake
Message:

Improved RecentChanges.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/lib/OpenGuides.pm

    r470 r471  
    1313use vars qw( $VERSION );
    1414
    15 $VERSION = '0.39';
     15$VERSION = '0.40';
    1616
    1717=head1 NAME
     
    187187    if ($id eq "RecentChanges") {
    188188        my $minor_edits = $self->get_cookie( "show_minor_edits_in_rc" );
    189         my %criteria = ( days => 7 );
    190         $criteria{metadata_was} = { edit_type => "Normal edit" }
    191           unless $minor_edits;
    192         my @recent = $wiki->list_recent_changes( %criteria );
    193         @recent = map { {name          => CGI->escapeHTML($_->{name}),
    194                          last_modified => CGI->escapeHTML($_->{last_modified}),
    195                          version       => CGI->escapeHTML($_->{version}),
    196                          comment       => CGI->escapeHTML($_->{metadata}{comment}[0]),
    197                          username      => CGI->escapeHTML($_->{metadata}{username}[0]),
    198                          host          => CGI->escapeHTML($_->{metadata}{host}[0]),
    199                          username_param => CGI->escape($_->{metadata}{username}[0]),
    200                          edit_type     => CGI->escapeHTML($_->{metadata}{edit_type}[0]),
    201                          url           => "$config->{_}->{script_name}?"
    202           . CGI->escape($wiki->formatter->node_name_to_node_param($_->{name})) }
    203                        } @recent;
    204         $tt_vars{recent_changes} = \@recent;
    205         $tt_vars{days} = 7;
     189        my %recent_changes;
     190        for my $days ( [0, 1], [1, 7], [7, 14], [14, 30] ) {
     191            my %criteria = ( between_days => $days );
     192            $criteria{metadata_was} = { edit_type => "Normal edit" }
     193              unless $minor_edits;
     194            my @rc = $self->{wiki}->list_recent_changes( %criteria );
     195
     196            @rc = map {
     197                {
     198                  name        => CGI->escapeHTML($_->{name}),
     199                  last_modified => CGI->escapeHTML($_->{last_modified}),
     200                  version     => CGI->escapeHTML($_->{version}),
     201                  comment     => CGI->escapeHTML($_->{metadata}{comment}[0]),
     202                  username    => CGI->escapeHTML($_->{metadata}{username}[0]),
     203                  host        => CGI->escapeHTML($_->{metadata}{host}[0]),
     204                  username_param => CGI->escape($_->{metadata}{username}[0]),
     205                  edit_type   => CGI->escapeHTML($_->{metadata}{edit_type}[0]),
     206                  url         => "$config->{_}->{script_name}?"
     207          . CGI->escape($wiki->formatter->node_name_to_node_param($_->{name})),
     208                }
     209                       } @rc;
     210            if ( scalar @rc ) {
     211                $recent_changes{$days->[1]} = \@rc;
     212            }
     213        }
     214        $tt_vars{recent_changes} = \%recent_changes;
    206215        return %tt_vars if $args{return_tt_vars};
    207216        my $output = $self->process_template(
Note: See TracChangeset for help on using the changeset viewer.