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

Move find_within_distance stuff into OpenGuides.pm

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/lib/OpenGuides.pm

    r371 r372  
    253253}
    254254
     255=item B<find_within_distance>
     256
     257  $guide->find_within_distance(
     258                                id => $node,
     259                                metres => $q->param("distance_in_metres")
     260                              );
     261
     262=cut
     263
     264sub find_within_distance {
     265    my ($self, %args) = @_;
     266    my $node = $args{node};
     267    my $metres = $args{metres};
     268    my $formatter = $self->wiki->formatter;
     269
     270    my @finds = $self->locator->find_within_distance(
     271                                                      node   => $node,
     272                                                      metres => $metres,
     273                                                    );
     274    my @nodes;
     275    foreach my $find ( @finds ) {
     276        my $distance = $self->locator->distance(
     277                                                 from_node => $node,
     278                                                 to_node   => $find,
     279                                                 unit      => "metres"
     280                                               );
     281        push @nodes, {
     282                       name     => $find,
     283                       param    => $formatter->node_name_to_node_param($find),
     284                       distance => $distance,
     285                     };
     286    }
     287    @nodes = sort { $a->{distance} <=> $b->{distance} } @nodes;
     288
     289    my %tt_vars = (
     290                    nodes        => \@nodes,
     291                    origin       => $node,
     292                    origin_param => $formatter->node_name_to_node_param($node),
     293                    limit        => "$metres metres",
     294                  );
     295
     296    $self->process_template(
     297                             id       => "index", # KLUDGE
     298                             template => "site_index.tt",
     299                             vars     => \%tt_vars,
     300                           );
     301}
     302
    255303sub process_template {
    256304    my ($self, %args) = @_;
Note: See TracChangeset for help on using the changeset viewer.