Changeset 71


Ignore:
Timestamp:
Apr 26, 2003, 1:53:10 PM (19 years ago)
Author:
kake
Message:

Fixed bug with website URLs being escaped in a better way - wikiformat it. Also don't store location data if os x and y aren't nonzero

Location:
trunk
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • trunk/templates/display_metadata.tt

    r70 r71  
    1414<br />
    1515
    16 [% IF phone OR fax OR address OR postcode OR website OR hours_text %]
     16[% IF phone OR fax OR address OR postcode OR formatted_website_text
     17      OR hours_text %]
    1718  <ul>
    1819    [% IF phone %]
     
    2829      <li><strong>Postcode:</strong> [% CGI.escapeHTML(postcode) %]</li>
    2930    [% END %]
    30     [% IF website %]
    31       <li><b>Website:</b> <a href="[% CGI.escape(website) %]">[% CGI.escapeHTML(website) %]</a></li>
     31    [% IF formatted_website_text %]
     32      <li><b>Website:</b> [% formatted_website_text %]</li>
    3233    [% END %]
    3334    [% IF hours_text %]
  • trunk/wiki.cgi

    r70 r71  
    295295    my $geocache_link = make_geocache_link($node);
    296296
     297    # The 'website' attribute might contain a URL so we wiki-format it here
     298    # rather than just CGI::escapeHTMLing it all in the template.
     299    my $formatted_website_text;
     300    if ( $website ) {
     301        $formatted_website_text = _format_website($website);
     302    }
     303
    297304    my @categories = map { { name => $_,
    298305                             url  => "$script_name?Category_"
     
    309316                    phone         => $phone,
    310317                    fax           => $fax,
    311                     website       => $website,
     318                    formatted_website_text => $formatted_website_text,
    312319                    hours_text    => $hours_text,
    313320                    address       => $address,
     
    412419    my @categories = sort split("\r\n", $categories_text);
    413420
     421    # The 'website' attribute might contain a URL so we wiki-format it here
     422    # rather than just CGI::escapeHTMLing it all in the template.
     423    my $formatted_website_text;
     424    if ( $website ) {
     425        $formatted_website_text = _format_website($website);
     426    }
     427
    414428    if ($wiki->verify_checksum($node, $checksum)) {
    415429        my %tt_vars = ( content      => $q->escapeHTML($content),
     
    417431                        phone        => $phone,
    418432                        fax          => $fax,
    419                         website      => $website,
     433                        formatted_website_text => $formatted_website_text,
    420434                        hours_text   => $hours_text,
    421435                        address      => $address,
     
    446460    my %metadata   = %{$node_data{metadata}};
    447461    my $username   = get_cookie( "username" );
     462
    448463    my %tt_vars = ( content    => $q->escapeHTML($content),
    449464                    checksum   => $q->escapeHTML($checksum),
     
    609624    my $comment         = $q->param('comment');
    610625
    611     # We store latitude and longitude as well for the ICBM meta stuff.
    612     my $point = Geography::NationalGrid::GB->new( Easting  => $os_x,
    613                                                   Northing => $os_y );
    614     my $latitude  = $point->latitude;
    615     my $longitude = $point->longitude;
    616 
    617626    my @categories = sort split("\r\n", $categories_text);
    618627    my @locales    = sort split("\r\n", $locales_text);
    619628
    620     my $written = $wiki->write_node($node, $content, $checksum,
    621                                     { category   => \@categories,
    622                                       locale     => \@locales,
    623                                       phone      => $phone,
    624                                       fax        => $fax,
    625                                       website    => $website,
    626                                       address    => $address,
    627                               opening_hours_text => $hours_text,
    628                                       postcode   => $postcode,
    629                                       os_x       => $os_x,
    630                                       os_y       => $os_y,
    631                                       latitude   => $latitude,
    632                                       longitude  => $longitude,
    633                                       username   => $username,
    634                                       comment    => $comment      } );
     629    my %metadata = ( category   => \@categories,
     630                     locale     => \@locales,
     631                     phone      => $phone,
     632                     fax        => $fax,
     633                     website    => $website,
     634                     address    => $address,
     635                     opening_hours_text => $hours_text,
     636                     postcode   => $postcode,
     637                     username   => $username,
     638                     comment    => $comment,
     639    );
     640
     641
     642    # We store latitude and longitude as well for the ICBM meta stuff.
     643    if ($os_x and $os_y) {
     644        my $point = Geography::NationalGrid::GB->new( Easting  => $os_x,
     645                                                      Northing => $os_y );
     646        %metadata = ( %metadata,
     647                      latitude  => $point->latitude,
     648                      longitude => $point->longitude,
     649                      os_x      => $os_x,
     650                      os_y      => $os_y
     651        );
     652    }
     653
     654    my $written = $wiki->write_node($node, $content, $checksum, \%metadata );
     655
    635656    if ($written) {
    636657        redirect_to_node($node);
     
    676697}
    677698
     699
     700sub _format_website {
     701    my $text = shift;
     702    my $formatted = $wiki->format($text);
     703
     704    # Strip out paragraph markers put in by formatter since we want this
     705    # to be a single string to put in a <ul>.
     706    $formatted =~ s/<p>//g;
     707    $formatted =~ s/<\/p>//g;
     708
     709    return $formatted;
     710}
Note: See TracChangeset for help on using the changeset viewer.