X-Git-Url: http://git.jankratochvil.net/?a=blobdiff_plain;f=Web.pm;h=2b632a72233813dd55754568b8636337ad9e0e5a;hb=04827f7491b1728301be5317da58c1f16f095663;hp=e6f63bd1883a98c7fcc26d9c4da9baebce43d235;hpb=a7da14b6674122ae7e2628700180b79df570fddf;p=MyWeb.git diff --git a/Web.pm b/Web.pm index e6f63bd..2b632a7 100644 --- a/Web.pm +++ b/Web.pm @@ -196,7 +196,7 @@ sub footer (;$) ."this.elements['msghtml'].value='';" ."this.submit();" .'">'."\n"; - print '

'."\n"; + print '

'."\n"; print ''."\n"; print ''."\n"; print ''."\n"; @@ -238,6 +238,7 @@ sub footer (;$) } ( $W->{"__PACKAGE__"}, __PACKAGE__, + "WebConfig", @{$W->{"packages_used"}{$Apache::Registry::curstash}}, ))); print "

\n"; @@ -318,7 +319,7 @@ sub remote_ip () # As 'Apache::ForwardedFor' takes the first of $ENV{"HTTP_X_FORWARDED_FOR"} # while the contents is '127.0.0.1, 213.220.195.171' if client has its own proxy. # We must take the last item ourselves. - my $r=$ENV{"HTTP_X_FORWARDED_FOR"} || $W->{"r"}->remote_host(); + my $r=$ENV{"HTTP_X_FORWARDED_FOR"} || $W->{"r"}->get_remote_host(); $r=~s/^.*,\s*//; return $r; } @@ -359,34 +360,38 @@ my @img_variants=( ); my $img_variants_re='[.](?:'.join('|',map(($_->{"id"}),@img_variants)).')$'; +sub img_src ($) +{ +my($file_base)=@_; + + return $file_base if !url_is_local($file_base) + # Known image extension? + || $file_base=~m#$img_variants_re#o; + + my @nego_variants; + for my $var (@img_variants) { + my $file=$file_base.".".$var->{"id"}; + # TODO: Somehow quickly check dependencies? + system 'make >&2 -s --no-print-directory' + .' -C '."'".File::Basename::dirname($file)."' '".File::Basename::basename($file)."'"; +# if !-f $file; + push @nego_variants,negotiate_variant( + %$var, + "size"=>(stat $file)[7], + ); + } + # Do not: ,$W->{"r"}); + # but should we provide somehow either 'HTTP::Headers' or 'HTTP::Request' ? + my $ext=HTTP::Negotiate::choose(\@nego_variants); + $ext||=$img_variants[0]->{"id"}; # &HTTP::Negotiate::choose failed? + return $file_base.".".$ext; +} + sub img ($$;$) { my($file_base,$alt,$attrs)=@_; - my $file; - if (url_is_local($file_base) - # No known image extension? - && $file_base!~m#$img_variants_re#o) { - my @nego_variants; - for my $var (@img_variants) { - $file=$file_base.".".$var->{"id"}; - # TODO: Somehow quickly check dependencies? - system 'make >&2 -s --no-print-directory' - .' -C '."'".File::Basename::dirname($file)."' '".File::Basename::basename($file)."'" - if !-f $file; - push @nego_variants,negotiate_variant( - %$var, - "size"=>(stat $file)[7], - ); - } - # Do not: ,$W->{"r"}); - # but should we provide somehow either 'HTTP::Headers' or 'HTTP::Request' ? - my $ext=HTTP::Negotiate::choose(\@nego_variants); - $ext||=$img_variants[0]->{"id"}; # &HTTP::Negotiate::choose failed? - $file=$file_base.".".$ext; - } - else - { $file=$file_base; } + my $file=img_src $file_base; my($width,$height)=Image::Size::imgsize($file); $alt=CGI::escapeHTML($alt); return "\"$alt\"{"head_css"}."\n";