Changeset 8


Ignore:
Timestamp:
Apr 19, 2003, 7:50:10 PM (19 years ago)
Author:
kake
Message:

Use lat/long instead of OS co-ords, use conf file instead of hardcoded values

Location:
trunk
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • trunk/templates/edit_form.tt

    r7 r8  
    2222[% END %]
    2323</textarea><br />
    24 <b>OS X co-ord:</b> <input type="text" name="os_x" value="[% os_x %]">
    25 <b>OS Y co-ord:</b> <input type="text" name="os_y" value="[% os_y %]"><br />
     24<b>Latitude:</b> <input type="text" name="latitude" value="[% latitude %]">
     25<b>Longitude:</b> <input type="text" name="longitude" value="[% longitude %]"><br />
    2626<b>Postcode:</b> <input type="text" name="postcode" value="[% postcode %]"><br />
    2727<br />
  • trunk/templates/node.tt

    r7 r8  
    1414[% END %]
    1515
    16 [% IF os_x %]
    17   <small>OS X co-ord: [% CGI.escapeHTML(os_x) %]</small>
    18   &nbsp;&nbsp;&nbsp;
    19 [% END %]
    20 [% IF os_y %]
    21   <small>OS Y co-ord: [% CGI.escapeHTML(os_y) %]</small>
     16[% IF latitude %]
     17  <small>Latitude: [% CGI.escapeHTML(latitude) %]</small>
     18  &nbsp;&nbsp;&nbsp;[% END %]
     19[% IF longitude %]
     20  <small>Longitude: [% CGI.escapeHTML(longitude) %]</small>
    2221  &nbsp;&nbsp;&nbsp;
    2322[% END %]
     
    4746[% content %]
    4847
    49 [% IF os_x AND os_y %]
     48[% IF latitude AND longitude %]
    5049  <hr>
    5150  <form action="wiki.cgi">
  • trunk/wiki.cgi

    r7 r8  
    55
    66use CGI qw/:standard/;
    7 use CGI::Carp qw(fatalsToBrowser);
     7use CGI::Carp qw(croak);
    88use CGI::Cookie;
    99use CGI::Wiki;
     
    1515use CGI::Wiki::Plugin::RSS::ModWiki;
    1616use Config::Tiny;
    17 use Geography::NationalGrid;
    18 use Geography::NationalGrid::GB;
    1917use Template;
    2018use Time::Piece;
     
    2220
    2321# config vars
    24 my $FULL_CGI_URL = "http://un.earth.li/~kake/cgi-bin/wiki.cgi?";
     22my $config = Config::Tiny->new;
     23$config = Config::Tiny->read('wiki.conf');
     24
     25# Read in configuration values from config file.
     26my $script_name = $config->{_}->{script_name};
     27my $script_url = $config->{_}->{script_url};
     28my $stylesheet_url = $config->{_}->{stylesheet_url};
     29my $site_name = $config->{_}->{site_name};
     30my $home_name = $config->{_}->{home_name};
     31my $site_desc = $config->{_}->{site_desc};
     32my $default_city = $config->{_}->{default_city};
     33my $default_country = $config->{_}->{default_country};
     34my $contact_email = $config->{_}->{contact_email};
    2535
    2636# Make store.
     
    4151my %macros = (
    4252    '@SEARCHBOX' =>
    43         qq(<form action="wiki.cgi" method="get">
     53        qq(<form action="$script_name" method="get">
    4454           <input type="hidden" name="action" value="search">
    4555           <input type="text" size="20" name="terms">
    4656           <input type="submit" name="Search" value="Search"></form>),
    4757    qr/\@INDEX_LINK\s+\[\[Category\s+([^\]]+)\]\]/ =>
    48         sub { return qq(<a href="wiki.cgi?action=catindex&category=) . uri_escape($_[0]) . qq(">View all pages in Category $_[0]</a>)
     58        sub { return qq(<a href="$script_name?action=catindex&category=) . uri_escape($_[0]) . qq(">View all pages in Category $_[0]</a>)
    4959            }
    5060);
     
    5767                               strike)],
    5868    macros              => \%macros,
    59     node_prefix         => 'wiki.cgi?',
    60     edit_prefix         => 'wiki.cgi?action=edit&id='
     69    node_prefix         => '$script_name?',
     70    edit_prefix         => '$script_name?action=edit&id='
    6171);
    6272
     
    128138                         { nodes    => \@nodes,
    129139                           category => { name => $q->escapeHTML($cat),
    130                                          url  => "wiki.cgi?Category_"
     140                                         url  => "$script_name?Category_"
    131141                        . uri_escape($formatter->node_name_to_node_param($cat))
    132142                                        }
     
    184194             the following error message:</p><blockquote>)
    185195      . $q->escapeHTML($error)
    186       . qq(</blockquote><p><a href="wiki.cgi">Return to the Wiki home page</a>
     196      . qq(</blockquote><p><a href="$script_name">Return to the Wiki home page</a>
    187197           </body></html>);
    188198}
     
    193203sub redirect_to_node {
    194204    my $node = shift;
    195     print $q->redirect($FULL_CGI_URL . $q->escape($formatter->node_name_to_node_param($node)));
     205    print $q->redirect("$script_url$script_name?" . $q->escape($formatter->node_name_to_node_param($node)));
    196206    exit 0;
    197207}
     
    244254    my $catref     = $metadata{category};
    245255    my $locref     = $metadata{locale};
    246     my $os_x       = $metadata{os_x}[0];
    247     my $os_y       = $metadata{os_y}[0];
    248256    my $phone      = $metadata{phone}[0];
     257    my $fax        = $metadata{fax}[0];
    249258    my $website    = $metadata{website}[0];
     259    my $address    = $metadata{address}[0];
    250260    my $hours_text = $metadata{opening_hours_text}[0];
    251261    my $postcode   = $metadata{postcode}[0];
    252 
    253     my ($lat, $long);
    254     if ( $os_x && $os_y ) {
    255         my $point = Geography::NationalGrid::GB->new( Easting  => $os_x,
    256                                                       Northing => $os_y );
    257         $lat  = $point->latitude;
    258         $long = $point->longitude;
    259     }
     262    my $latitude   = $metadata{latitude}[0];
     263    my $longitude  = $metadata{longitude}[0];
    260264
    261265    my @categories = map { { name => $_,
    262                              url  => "wiki.cgi?Category_"
     266                             url  => "$script_name?Category_"
    263267            . uri_escape($formatter->node_name_to_node_param($_)) } } @$catref;
    264268
    265269    my @locales    = map { { name => $_,
    266                              url  => "wiki.cgi?Category_"
     270                             url  => "$script_name?Category_"
    267271            . uri_escape($formatter->node_name_to_node_param($_)) } } @$locref;
    268272
     
    271275                    categories    => \@categories,
    272276                    locales       => \@locales,
    273                     os_x          => $os_x,
    274                     os_y          => $os_y,
    275277                    phone         => $phone,
     278                    fax           => $fax,
    276279                    website       => $website,
    277280                    hours_text    => $hours_text,
     281                    address       => $address,
    278282                    postcode      => $postcode,
    279                     latitude      => $lat,
    280                     longitude     => $long,
     283                    latitude      => $latitude,
     284                    longitude     => $longitude,
    281285                    last_modified => $modified,
    282286                    version       => $node_data{version},
     
    293297                         comment       => $q->escapeHTML($_->{metadata}{comment}[0]),
    294298                         username      => $q->escapeHTML($_->{metadata}{username}[0]),
    295                          url           => "wiki.cgi?"
     299                         url           => "$script_name?"
    296300          . $q->escape($formatter->node_name_to_node_param($_->{name})) }
    297301                       } @recent;
     
    305309                         comment       => $q->escapeHTML($_->{metadata}{comment}[0]),
    306310                         username      => $q->escapeHTML($_->{metadata}{username}[0]),
    307                          url           => "wiki.cgi?"
     311                         url           => "$script_name?"
    308312          . $q->escape($formatter->node_name_to_node_param($_->{name})) }
    309313                       } @recent;
     
    346350                    last_modified => $q->escapeHTML($_->{last_modified}),
    347351                    comment       => $q->escapeHTML($_->{metadata}{comment}[0]),
    348                     url           => "wiki.cgi?"
     352                    url           => "$script_name?"
    349353          . $q->escape($formatter->node_name_to_node_param($_->{name})) }
    350354                       } @nodes;
     
    360364    my $checksum        = $q->param('checksum');
    361365    my $categories_text = $q->param('categories');
    362     my $os_x            = $q->param('os_x');
    363     my $os_y            = $q->param('os_y');
    364366    my $phone           = $q->param('phone');
     367    my $fax             = $q->param('fax');
    365368    my $website         = $q->param('website');
    366369    my $hours_text      = $q->param('hours_text');
     370    my $address         = $q->param('address');
    367371    my $postcode        = $q->param('postcode');
     372    my $latitude        = $q->param('latitude');
     373    my $longitude       = $q->param('longitude');
    368374    my $username        = $q->param('username');
    369375    my $comment         = $q->param('comment');
     
    374380        my %tt_vars = ( content      => $q->escapeHTML($content),
    375381                        categories   => \@categories,
    376                         os_x         => $os_x,
    377                         os_y         => $os_y,
    378                         phone         => $phone,
    379                         website       => $website,
    380                         hours_text    => $hours_text,
     382                        phone        => $phone,
     383                        fax          => $fax,
     384                        website      => $website,
     385                        hours_text   => $hours_text,
     386                        address      => $address,
    381387                        postcode     => $postcode,
     388                        latitude     => $latitude,
     389                        longitude    => $longitude,
    382390                        username     => $username,
    383391                        comment      => $comment,
     
    402410    my ($content, $checksum) = @node_data{ qw( content checksum ) };
    403411    my %metadata   = %{$node_data{metadata}};
    404     my $catref     = $metadata{category};
    405     my $locref     = $metadata{locale};
    406     my $os_x       = $metadata{os_x}[0];
    407     my $os_y       = $metadata{os_y}[0];
    408     my $phone      = $metadata{phone}[0];
    409     my $website    = $metadata{website}[0];
    410     my $hours_text = $metadata{opening_hours_text}[0];
    411     my $postcode   = $metadata{postcode}[0];
    412412    my %tt_vars = ( content    => $q->escapeHTML($content),
    413413                    checksum   => $q->escapeHTML($checksum),
    414                     categories => $catref,
    415                     locales    => $locref,
    416                     os_x       => $os_x,
    417                     os_y       => $os_y,
    418                     phone      => $phone,
    419                     website    => $website,
    420                     hours_text => $hours_text,
    421                     postcode   => $postcode
     414                    categories => $metadata{category},
     415                    locales    => $metadata{locale},
     416                    phone      => $metadata{phone}[0],
     417                    fax        => $metadata{fax}[0],
     418                    website    => $metadata{website}[0],
     419                    hours_text => $metadata{opening_hours_text}[0],
     420                    postcode   => $metadata{postcode}[0],
     421                    address    => $metadata{address}[0],
     422                    latitude   => $metadata{latitude}[0],
     423                    longitude  => $metadata{longitude}[0]
    422424    );
    423425
     
    425427}
    426428
     429sub get_cookie {
     430        my %cookies = fetch CGI::Cookie;
     431        my $cookie = $cookies{'username'}->value;
     432        return $cookie;
     433}
    427434
    428435sub emit_recent_changes_rss {
    429436    my $rss = CGI::Wiki::Plugin::RSS::ModWiki->new(
    430437        wiki      => $wiki,
    431         site_name => "CGI::Wiki Test Site",
    432         site_description => "A clone of the Open Community Guide To London",
     438        site_name => $site_name,
     439        site_description => $site_desc,
    433440        make_node_url => sub {
    434441            my ( $node_name, $version ) = @_;
    435             return "http://the.earth.li/~kake/cgi-bin/cgi-wiki/wiki.cgi?id="
     442            return "$script_url$script_name?id="
    436443                 . uri_escape(
    437444                        $wiki->formatter->node_name_to_node_param( $node_name )
     
    440447          },
    441448        recent_changes_link =>
    442             "http://the.earth.li/~kake/cgi-bin/cgi-wiki/wiki.cgi?RecentChanges"
     449            "$script_url$script_name?RecentChanges"
    443450     );
    444451
     
    453460    my $rss = CGI::Wiki::Plugin::RSS::ChefMoz->new(
    454461        wiki      => $wiki,
    455         site_name => "CGI::Wiki Test Site",
    456         site_description => "A clone of the Open Community Guide To London",
     462        site_name => $site_name,
     463        site_description => $site_desc,
    457464        make_node_url => sub {
    458465            my ( $node_name, $version ) = @_;
    459             return "http://the.earth.li/~kake/cgi-bin/cgi-wiki/wiki.cgi?id="
     466            return "$script_url$script_name?id="
    460467                 . uri_escape(
    461468                        $wiki->formatter->node_name_to_node_param( $node_name )
     
    463470                 . ";version=" . uri_escape($version);
    464471        },
    465         full_node_prefix =>
    466             "http://the.earth.li/~kake/cgi-bin/cgi-wiki/wiki.cgi?",
    467         default_city => "London",
    468         default_country => "United Kingdom"
     472        full_node_prefix => "$script_url$script_name",
     473        default_city => $default_city,
     474        default_country => $default_country
    469475     );
    470476
     
    479485    my $rss = CGI::Wiki::Plugin::RSS::ChefMoz->new(
    480486        wiki      => $wiki,
    481         site_name => "CGI::Wiki Test Site",
    482         site_description => "A clone of the Open Community Guide To London",
     487        site_name => $site_name,
     488        site_description => $site_desc,
    483489        make_node_url => sub {
    484490            my ( $node_name, $version ) = @_;
    485491            if ( defined $version ) {
    486                return "http://the.earth.li/~kake/cgi-bin/cgi-wiki/wiki.cgi?id="
     492               return "$script_url$script_name?id="
    487493                 . uri_escape(
    488494                        $wiki->formatter->node_name_to_node_param( $node_name )
     
    490496                 . ";version=" . uri_escape($version);
    491497             } else {
    492                 return "http://the.earth.li/~kake/cgi-bin/cgi-wiki/wiki.cgi?"
     498                return "$script_url$script_name?"
    493499                 . uri_escape(
    494                         $wiki->formatter->node_name_to_node_param( $node_name )
    495                              );
     500                        $wiki->formatter->node_name_to_node_param( $node_name )                      );
    496501             }
    497502        },
    498503        full_node_prefix => "REMOVE - not used",
    499         default_city => "London",
    500         default_country => "United Kingdom"
     504        default_city => $default_city,
     505        default_country => $default_country
    501506     );
    502507
     
    514519
    515520    my %tt_vars = ( %$vars,
    516                     site_name     => "CGI::Wiki Test Site",
    517                     cgi_url       => "wiki.cgi",
    518                     full_cgi_url  => $FULL_CGI_URL,
    519                     contact_email => "kake\@earth.li",
     521                    site_name     => $site_name,
     522                    cgi_url       => $script_name,
     523                    full_cgi_url  => $script_url . $script_name,
     524                    contact_email => $contact_email,
    520525                    description   => "",
    521526                    keywords      => "",
    522                     stylesheet    => "http://grault.net/grubstreet/grubstreet.css",
    523                     home_link     => "wiki.cgi",
    524                     home_name     => "Home" );
     527                    stylesheet    => $stylesheet_url,
     528                    home_link     => $script_name,
     529                    home_name     => $home_name );
    525530
    526531    if ($node) {
     
    551556    my $categories_text = $q->param('categories');
    552557    my $locales_text    = $q->param('locales');
    553     my $os_x            = $q->param('os_x');
    554     my $os_y            = $q->param('os_y');
    555558    my $phone           = $q->param('phone');
     559    my $fax             = $q->param('fax');
    556560    my $website         = $q->param('website');
     561    my $address         = $q->param('address');
    557562    my $hours_text      = $q->param('hours_text');
    558563    my $postcode        = $q->param('postcode');
     564    my $latitude        = $q->param('latitude');
     565    my $longitude       = $q->param('longitude');
    559566    my $username        = $q->param('username');
    560567    my $comment         = $q->param('comment');
     
    566573                                    { category   => \@categories,
    567574                                      locale     => \@locales,
    568                                       os_x       => $os_x,
    569                                       os_y       => $os_y,
    570575                                      phone      => $phone,
     576                                      fax        => $fax,
    571577                                      website    => $website,
     578                                      address    => $address,
    572579                              opening_hours_text => $hours_text,
    573580                                      postcode   => $postcode,
     581                                      latitude   => $latitude,
     582                                      longitude   => $longitude,
    574583                                      username   => $username,
    575584                                      comment    => $comment      } );
Note: See TracChangeset for help on using the changeset viewer.