sub stylesheet {
my %styles = map {$_ => $_} @_;
- if (exists $get{style}) {
- $style = $styles{ $get{style} };
- require CGI::Cookie;
- if (my $cookie = CGI::Cookie->new(
- -name => 'style',
- -value => $style,
- -path => '/', # site-wide; current page is confusing to most users
- -expires => $style ? '+5y' : '-1d',
- )) {
+ if (defined( my $setstyle = $get{style} )) {
+ $style = $styles{ $setstyle };
+ eval {
+ require CGI::Cookie;
+ my $cookie = CGI::Cookie->new(
+ -name => 'style',
+ -value => $setstyle || '',
+ -path => '/', # site-wide; current page is confusing to most users
+ -expires => $setstyle ? '+5y' : '-1d',
+ ) or die "empty object returned\n";
AddCookie($cookie->as_string);
- }
+ } or warn "Unable to create style cookie: $@";
}
$style ||= exists $cookie{style} && $styles{ $cookie{style} } || $_[0];
return join "\n", map { sprintf(
'<link rel="%s" type="text/css" media="all" href="%s" title="%s">',
- $_ eq $style ? 'stylesheet' : 'alternate stylesheet', "/$_.css?1.6", $_
+ $_ eq $style ? 'stylesheet' : 'alternate stylesheet', "/$_.css?1.7", $_
) } @_;
}