Ignore:
Timestamp:
Jun 15, 2006, 5:30:27 PM (14 years ago)
Author:
nick
Message:

Move the common geo formatting into Listing.pm

File:
1 edited

Legend:

Unmodified
Added
Removed
  • wiki-toolkit/trunk/lib/Wiki/Toolkit/Feed/Listing.pm

    r329 r330  
    153153}
    154154
     155=item B<format_geo>
     156
     157Using the geo and space xml namespaces, format the supplied node metadata
     158into geo: and space: tags, suitable for inclusion in a feed with those
     159namespaces imported.
     160
     161=cut
     162sub format_geo {
     163    my ($self, %metadata) = @_;
     164    if(ref($_[1]) eq "HASH") {
     165        %metadata = %{$_[1]};
     166    }
     167
     168    my %mapping = (
     169            "os_x" => "space:os_x",
     170            "os_y" => "space:os_y",
     171            "latitude"  => "geo:lat",
     172            "longitude" => "geo:long",
     173            "distance"  => "space:distance",
     174    );
     175
     176    my $feed = "";
     177
     178    foreach my $geo (keys %metadata) {
     179        my $geo_val = $metadata{$geo};
     180        if(ref($geo_val) eq "ARRAY") {
     181            $geo_val = $geo_val->[0];
     182        }
     183
     184        if($mapping{$geo}) {
     185            my $tag = $mapping{$geo};
     186            $feed .= "  <$tag>$geo_val</$tag>\n";
     187        }
     188    }
     189
     190    return $feed;
     191}
     192
    155193
    156194
Note: See TracChangeset for help on using the changeset viewer.