package CGI::Kwiki::Cookie; $VERSION = '0.16'; use strict; use base 'CGI::Kwiki'; use CGI::Kwiki; attribute 'prefs'; sub new { my $class = shift; my $self = $class->SUPER::new(@_); $self->prefs($self->fetch); return $self; } sub header { my ($self) = @_; my $cookie = $self->create; return CGI::header( -cookie => $cookie, -charset => $self->config->encoding, ); } sub create{ my ($self) = @_; return CGI::cookie( -name => 'prefs', -value => { map $self->escape($_), %{$self->prefs} }, -expires => '+5y', -pragma => 'no-cache', -cache_control => 'no-cache', -last_modified => gmtime, ); } sub fetch { my ($self) = @_; return { map $self->unescape($_), CGI::cookie('prefs') }; } 1; __END__ =head1 NAME CGI::Kwiki::CGI - CGI Base Class for CGI::Kwiki =head1 DESCRIPTION See installed kwiki pages for more information. =head1 AUTHOR Brian Ingerson =head1 COPYRIGHT Copyright (c) 2003. Brian Ingerson. All rights reserved. This program is free software; you can redistribute it and/or modify it under the same terms as Perl itself. See http://www.perl.com/perl/misc/Artistic.html =cut