From: Mischa POSLAWSKY Date: Thu, 27 Apr 2017 01:36:28 +0000 (+0200) Subject: common: html page headers on plp errors X-Git-Tag: v1.10~55 X-Git-Url: http://git.shiar.nl/sheet.git/commitdiff_plain/560ad76852eb76efaa7ad860dc03bd9980667345 common: html page headers on plp errors Ensure generic Html if called before page setup. --- diff --git a/common.inc.plp b/common.inc.plp index d7e2b79..02821bb 100644 --- a/common.inc.plp +++ b/common.inc.plp @@ -27,13 +27,18 @@ BEGIN { $PLP::ERROR = sub { my ($text, $html) = @_; warn $text; + unless ($PLP::sentheaders and $PLP::sentheaders->[0] !~ m{/PLP\.pm\z}) { + Html({nocache => 1}); + say '

Page unavailable

'; + } Alert("Fatal error: $html."); }; + + # user request + our $Dev = $ENV{HTTP_HOST} =~ /\bdev\./; + our ($file) = $ENV{SCRIPT_FILENAME} =~ m{ ([^/]+) \.plp$ }x; } -# user request -our $Dev = $ENV{HTTP_HOST} =~ /\bdev\./; -our ($file) = $ENV{SCRIPT_FILENAME} =~ m{ ([^/]+) \.plp$ }x; our $Request = decode_utf8($ENV{PATH_INFO} =~ s{^/}{}r); our $style; @@ -89,13 +94,15 @@ sub checkmodified { sub Html { my ($meta) = @_; - # announce and check data modification - checkmodified( - $ENV{SCRIPT_FILENAME}, - (grep { /\bShiar_/ } values %INC), - $meta->{data} ? @{ $meta->{data} } : (), - ); - $header{'Cache-Control'} = sprintf 'max-age: ', 24*60*60; + unless ($meta->{nocache}) { + # announce and check data modification + checkmodified( + $ENV{SCRIPT_FILENAME}, + (grep { /\bShiar_/ } values %INC), + $meta->{data} ? @{ $meta->{data} } : (), + ); + $header{'Cache-Control'} = sprintf 'max-age: ', 24*60*60; + } # default fallbacks $meta->{stylesheet} ||= [qw'light dark circus mono red terse']; @@ -106,7 +113,8 @@ sub Html { for grep {$_} $meta->{raw}, $meta->{description}, $meta->{keywords}; # document headers before output - $header{content_type} = "text/html; charset=$meta->{charset}"; + $header{content_type} = "text/html; charset=$meta->{charset}" + unless $PLP::sentheaders; unshift @{ $meta->{raw} }, stylesheet($meta->{stylesheet}); # optional amends