source: trunk/preferences.cgi @ 812

Last change on this file since 812 was 752, checked in by Dominic Hargreaves, 16 years ago

More mod_perl fixes.

  • Property svn:eol-style set to native
  • Property svn:executable set to *
  • Property svn:keywords set to Author Date Id Revision
File size: 3.4 KB
Line 
1#!/usr/bin/perl
2
3use warnings;
4use strict;
5
6use CGI;
7use OpenGuides::Config;
8use OpenGuides::CGI;
9use OpenGuides::Utils;
10use OpenGuides::Template;
11
12my $config_file = $ENV{OPENGUIDES_CONFIG_FILE} || "wiki.conf";
13my $config = OpenGuides::Config->new( file => $config_file );
14my $wiki = OpenGuides::Utils->make_wiki_object( config => $config );
15my $cgi = CGI->new();
16my $action = $cgi->param('action') || '';
17
18if ( $action eq "set_preferences" ) {
19    set_preferences();
20} else {
21    show_form();
22}
23
24sub set_preferences {
25    my $username     = $cgi->param("username")                   || "";
26    my $gc_link      = $cgi->param("include_geocache_link")      || 0;
27    my $pre_above    = $cgi->param("preview_above_edit_box")     || 0;
28    my $latlong_trad = $cgi->param("latlong_traditional")        || 0;
29    my $omit_hlplnks = $cgi->param("omit_help_links")            || 0;
30    my $rc_minor_eds = $cgi->param("show_minor_edits_in_rc")     || 0;
31    my $edit_type    = $cgi->param("default_edit_type")          || "normal";
32    my $expires      = $cgi->param("cookie_expires")             || "month";
33    my $track_rc     = $cgi->param("track_recent_changes_views") || 0;
34    my $gmaps        = $cgi->param("display_google_maps")        || 0;
35    my $prefs_cookie = OpenGuides::CGI->make_prefs_cookie(
36        config => $config,
37        username => $username,
38        include_geocache_link  => $gc_link,
39        preview_above_edit_box => $pre_above,
40        latlong_traditional    => $latlong_trad,
41        omit_help_links        => $omit_hlplnks,
42        show_minor_edits_in_rc => $rc_minor_eds,
43        default_edit_type      => $edit_type,
44        cookie_expires         => $expires,
45        track_recent_changes_views => $track_rc,
46        display_google_maps    => $gmaps
47    );
48    my @cookies = ( $prefs_cookie );
49    # If they've asked not to have their recent changes visits tracked,
50    # clear any existing recentchanges cookie.
51    if ( ! $track_rc ) {
52        my $rc_cookie = OpenGuides::CGI->make_recent_changes_cookie(
53            config       => $config,
54            clear_cookie => 1,
55        );
56        push @cookies, $rc_cookie;
57    }
58    print OpenGuides::Template->output(
59        wiki     => $wiki,
60        config   => $config,
61        template => "preferences.tt",
62        cookies  => \@cookies,
63        vars     => {
64                      not_editable               => 1,
65                      username                   => $username,
66                      include_geocache_link      => $gc_link,
67                      preview_above_edit_box     => $pre_above,
68                      latlong_traditional        => $latlong_trad,
69                      omit_help_links            => $omit_hlplnks,
70                      show_minor_edits_in_rc     => $rc_minor_eds,
71                      default_edit_type          => $edit_type,
72                      cookie_expires             => $expires,
73                      track_recent_changes_views => $track_rc,
74                      display_google_maps        => $gmaps
75                    }
76    );
77}
78
79sub show_form {
80    # Get defaults for form fields from cookies.
81    my %prefs = OpenGuides::CGI->get_prefs_from_cookie( config => $config );
82
83    print OpenGuides::Template->output(
84        wiki     => $wiki,
85        config   => $config,
86        template => "preferences.tt",
87        vars     => { %prefs,
88                      not_editable => 1,
89                      show_form    => 1
90                    }
91    );
92}
Note: See TracBrowser for help on using the repository browser.