Changeset 370


Ignore:
Timestamp:
Jun 10, 2004, 9:09:23 PM (18 years ago)
Author:
kake
Message:

Move differ stuff into OpenGuides.pm

Location:
trunk
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • trunk/lib/OpenGuides.pm

    r369 r370  
    33
    44use CGI;
     5use CGI::Wiki::Plugin::Diff;
    56use CGI::Wiki::Plugin::Locator::UK;
    67use OpenGuides::Template;
     
    4344    my $locator = CGI::Wiki::Plugin::Locator::UK->new;
    4445    $wiki->register_plugin( plugin => $locator );
     46    $self->{locator} = $locator;
     47    my $differ = CGI::Wiki::Plugin::Diff->new;
     48    $wiki->register_plugin( plugin => $differ );
     49    $self->{differ} = $differ;
    4550    return $self;
    4651}
     
    7782    my $self = shift;
    7883    return $self->{locator};
     84}
     85
     86=item B<differ>
     87
     88An accessor, returns the underlying L<CGI::Wiki::Plugin::Diff> object.
     89
     90=cut
     91
     92sub differ {
     93    my $self = shift;
     94    return $self->{differ};
    7995}
    8096
     
    213229}
    214230
     231=item B<display_diffs>
     232
     233  $guide->display_diffs(
     234                         id            => "Home Page",
     235                         version       => 6,
     236                         other_version => 5,
     237                       );
     238
     239=cut
     240
     241sub display_diffs {
     242    my ($self, %args) = @_;
     243    my %diff_vars = $self->differ->differences(
     244                                        node          => $args{id},
     245                                        left_version  => $args{version},
     246                                        right_version => $args{other_version},
     247                                              );
     248    print $self->process_template(
     249                                   id       => $args{id},
     250                                   template => "differences.tt",
     251                                   vars     => \%diff_vars
     252                                 );
     253}
     254
    215255sub process_template {
    216256    my ($self, %args) = @_;
  • trunk/wiki.cgi

    r369 r370  
    1212use CGI::Wiki::Search::SII;
    1313use CGI::Wiki::Formatter::UseMod;
    14 use CGI::Wiki::Plugin::Diff;
    1514use Config::Tiny;
    1615use Geography::NationalGrid;
     
    3534$script_url .= "/" unless $script_url =~ /\/$/;
    3635
    37 my ($guide, $wiki, $formatter, $q, $differ);
     36my ($guide, $wiki, $formatter, $q);
    3837eval {
    3938    $guide = OpenGuides->new( config => $config );
    4039    $wiki = $guide->wiki;
    4140    $formatter = $wiki->formatter;
    42 
    43     $differ = CGI::Wiki::Plugin::Diff->new;
    44     $wiki->register_plugin( plugin => $differ );
    4541
    4642    # Get CGI object, find out what to do.
     
    133129            my $version = $q->param("version");
    134130            my $other_ver = $q->param("diffversion");
    135             if ( $other_ver ) {
    136                 my %diff_vars = $differ->differences(
    137                     node          => $node,
    138                     left_version  => $version,
    139                     right_version => $other_ver
    140                 );
    141                 print OpenGuides::Template->output(
    142                     wiki     => $wiki,
    143                     config   => $config,
    144                     node     => $node,
    145                     template => "differences.tt",
    146                     vars     => \%diff_vars
    147                 );
    148             } else {
    149                 $guide->display_node( id => $node, version => $version);
     131            if ( $other_ver ) {
     132                $guide->display_diffs(
     133                                       id            => $node,
     134                                       version       => $version,
     135                                       other_version => $other_ver,
     136                                     );
     137            } else {
     138                $guide->display_node( id => $node, version => $version );
    150139            }
    151140        }
Note: See TracChangeset for help on using the changeset viewer.