package Eludia::Presentation::Skins::Dumper; use Data::Dumper; $Data::Dumper::Sortkeys = 1; ################################################################################ sub options { return { no_presentation => 1, }; } ################################################################################ sub draw_page { my ($_SKIN, $page) = @_; $_REQUEST {__content_type} ||= 'text/plain; charset=' . $i18n -> {_charset}; return Dumper ({ data => $page -> {content}, }) if $_REQUEST {__d}; $_REQUEST {__content_type} ||= 'application/octet-stream'; $r -> headers_out -> {'Content-Disposition'} = "attachment;filename=$_REQUEST{type}_$_REQUEST{id}.txt"; my $dump = Dumper ({ request => \%_REQUEST, user => $_USER, content => $page -> {content}, }); return $dump; } ################################################################################ sub draw_error_page { my ($_SKIN, $page) = @_; $_REQUEST {__content_type} ||= 'text/plain; charset=' . $i18n -> {_charset}; return Dumper ({error => { message => $_REQUEST {error}, field => $page -> {error_field}, }}) if $_REQUEST {__d}; } ################################################################################ sub draw_redirect_page { my ($_SKIN, $page) = @_; $_REQUEST {__content_type} ||= 'text/plain; charset=' . $i18n -> {_charset}; return Dumper ({redirect => {url => $page -> {url}}}) if $_REQUEST {__d}; } ################################################################################ sub lrt_print { my $_SKIN = shift; my $id = int (time * rand); $r -> print (""); $r -> print (@_); $r -> print (""); $r -> print ($lrt_bar); $r -> print (< document.getElementById ('$id').scrollIntoView (false); EOH } ################################################################################ sub lrt_println { my $_SKIN = shift; $_SKIN -> lrt_print (@_, '
'); } ################################################################################ sub lrt_ok { my $_SKIN = shift; my $color = $_[1] ? 'red' : 'yellow'; my $label = $_[1] ? 'Îøèáêà' : 'ÎÊ'; $_SKIN -> lrt_println ("$_[0] [$label]"); } ################################################################################ sub lrt_start { my $_SKIN = shift; $|=1; $r -> content_type ('text/html; charset=windows-1251'); $r -> send_http_header (); $_SKIN -> lrt_print (< EOH } ################################################################################ sub lrt_finish { my $_SKIN = shift; my ($banner, $href) = @_; $_SKIN -> lrt_print (< alert ('$banner'); document.location = '$href'; EOH } 1;