Changeset 1085
- Timestamp:
- 06/17/07 00:57:32 (1 year ago)
- Files:
-
- trunk/Changes (modified) (1 diff)
- trunk/lib/OpenGuides/CGI.pm (modified) (4 diffs)
- trunk/lib/OpenGuides/Template.pm (modified) (1 diff)
- trunk/preferences.cgi (modified) (2 diffs)
- trunk/t/59_preferences.t (modified) (1 diff)
- trunk/templates/navbar_tools.tt (modified) (1 diff)
- trunk/templates/preferences.tt (modified) (4 diffs)
Legend:
- Unmodified
- Added
- Removed
- Modified
- Copied
- Moved
trunk/Changes
r1081 r1085 21 21 Validate input geodata (#22) 22 22 List all contributors in RDF version of nodes (#106). 23 The "Look for nearby geocaches" preference and link now actually work 24 (#216). 23 25 24 26 0.60 13 May 2007 trunk/lib/OpenGuides/CGI.pm
r1084 r1085 137 137 138 138 my %prefs = OpenGuides::CGI->get_prefs_from_cookie( 139 config => $config 139 config => $config, 140 cookies => \@cookies 140 141 ); 141 142 142 143 Croaks unless an L<OpenGuides::Config> object is supplied as C<config>. 143 144 Returns default values for any parameter not specified in cookie. 145 146 If C<cookies> is provided, this overrides any cookies submitted by the 147 browser. 144 148 145 149 =cut … … 150 154 croak "Config object not an OpenGuides::Config" 151 155 unless UNIVERSAL::isa( $config, "OpenGuides::Config" ); 152 my %cookies = CGI::Cookie->fetch;153 156 my $cookie_name = $class->_get_cookie_name( config => $config ); 157 my %cookies; 158 if ( my $cookies = $args{cookies} ) { 159 if (ref $cookies ne 'ARRAY') { 160 $cookies = [ $cookies ]; 161 } 162 %cookies = map { $_->name => $_ } @{ $cookies }; 163 } 164 else { 165 %cookies = CGI::Cookie->fetch; 166 } 154 167 my %data; 155 168 if ( $cookies{$cookie_name} ) { … … 157 170 } 158 171 159 return $class->get_prefs_from_hash( %data ); 172 my %long_forms = ( 173 user => "username", 174 gclink => "include_geocache_link", 175 prevab => "preview_above_edit_box", 176 lltrad => "latlong_traditional", 177 omithlplks => "omit_help_links", 178 rcmined => "show_minor_edits_in_rc", 179 defedit => "default_edit_type", 180 exp => "cookie_expires", 181 trackrc => "track_recent_changes_views", 182 gmaps => "display_google_maps", 183 ); 184 my %long_data = map { $long_forms{$_} => $data{$_} } keys %long_forms; 185 186 return $class->get_prefs_from_hash( %long_data ); 160 187 } 161 188 … … 174 201 display_google_maps => 1, 175 202 ); 176 my %long_forms = (177 user => "username",178 gclink => "include_geocache_link",179 prevab => "preview_above_edit_box",180 lltrad => "latlong_traditional",181 omithlplks => "omit_help_links",182 rcmined => "show_minor_edits_in_rc",183 defedit => "default_edit_type",184 exp => "cookie_expires",185 trackrc => "track_recent_changes_views",186 gmaps => "display_google_maps",187 );188 203 my %return; 189 foreach my $key ( keys %long_forms ) { 190 my $long_key = $long_forms{$key}; 191 if ( defined $data{$key} ) { 192 $return{$long_key} = $data{$key}; 193 } else { 194 $return{$long_key} = $defaults{$long_key}; 195 } 196 } 204 foreach my $key ( keys %data ) { 205 $return{$key} = defined $data{$key} ? $data{$key} : $defaults{$key}; 206 } 207 197 208 return %return; 198 209 } trunk/lib/OpenGuides/Template.pm
r1082 r1085 132 132 my $formatting_rules_node = $config->formatting_rules_node; 133 133 $formatting_rules_link = $config->formatting_rules_link; 134 my %cookie_data = OpenGuides::CGI->get_prefs_from_cookie(config=>$config); 134 my %cookie_data = OpenGuides::CGI->get_prefs_from_cookie(config=>$config, 135 cookies => $args{cookies}, 136 ); 135 137 if ( $cookie_data{omit_help_links} ) { 136 138 $omit_help_links = 1; trunk/preferences.cgi
r1084 r1085 31 31 # If they've asked not to have their recent changes visits tracked, 32 32 # clear any existing recentchanges cookie. 33 if ( ! $ track_rc) {33 if ( ! $prefs{track_recent_changes_views} ) { 34 34 my $rc_cookie = OpenGuides::CGI->make_recent_changes_cookie( 35 35 config => $config, … … 43 43 template => "preferences.tt", 44 44 cookies => \@cookies, 45 vars => { 46 not_editable => 1, 47 %prefs, 45 vars => { 46 not_editable => 1, 48 47 } 49 48 ); trunk/t/59_preferences.t
r1050 r1085 61 61 template => "preferences.tt", 62 62 content_type => '', 63 vars => { OpenGuides::CGI->get_prefs_from_cookie( config => $config ),63 vars => { 64 64 not_editable => 1, 65 65 show_form => 1 trunk/templates/navbar_tools.tt
r1051 r1085 6 6 <li><a href="[% full_cgi_url %]?action=random">Random Page</a></li> 7 7 <li><a href="[% full_cgi_url %]?action=show_wanted_pages">Wanted Pages</a></li> 8 [% IF geocache_link AND wgs84_lat AND wgs84_long %]9 <li><a href="http://www.geocaching.com/seek/nearest_cache.asp?origin_lat=[% wgs84_lat %] ;origin_long=[% wgs84_long %]">Look for nearby geocaches</a></li>8 [% IF prefs.include_geocache_link AND wgs84_lat AND wgs84_long %] 9 <li><a href="http://www.geocaching.com/seek/nearest_cache.asp?origin_lat=[% wgs84_lat %]&origin_long=[% wgs84_long %]">Look for nearby geocaches</a></li> 10 10 [% END %] 11 11 </ul> trunk/templates/preferences.tt
r1084 r1085 9 9 <h1>Username</h1> 10 10 <p><label for="username">How you wish to be identified in Recent Changes:</label></p> 11 <input type="text" size="20" id="username" name="username" value="[% username %]" />11 <input type="text" size="20" id="username" name="username" value="[% prefs.username %]" /> 12 12 13 13 <h1>Preferences</h1> … … 118 118 <h1>Username/preferences saved</h1> 119 119 120 <p>Username set to “[% username %]”.</p>120 <p>Username set to “[% prefs.username %]”.</p> 121 121 122 122 <p>Preview area shown … … 129 129 130 130 <p>“Look for nearby geocaches” link 131 [% UNLESS include_geocache_link %] not [% END %]131 [% UNLESS prefs.include_geocache_link %] not [% END %] 132 132 included in navbar.</p> 133 133 … … 150 150 151 151 <p>Your visits to Recent Changes will 152 [% UNLESS track_recent_changes_views %] not [% END %]152 [% UNLESS prefs.track_recent_changes_views %] not [% END %] 153 153 be tracked.</p> 154 154
