250 lines
8.3 KiB
Perl
250 lines
8.3 KiB
Perl
package HTML::Perlinfo::Base;
|
|
|
|
|
|
use HTML::Perlinfo::Common;
|
|
use HTML::Perlinfo::General;
|
|
use Carp ();
|
|
use warnings;
|
|
use strict;
|
|
|
|
sub new {
|
|
my ($class, %params) = @_;
|
|
my $self = {};
|
|
$self->{full_page} = 1;
|
|
$self->{title} = 0;
|
|
$self->{bg_image} = '';
|
|
$self->{bg_position} = 'center';
|
|
$self->{bg_repeat} = 'no_repeat';
|
|
$self->{bg_attribute} = 'fixed';
|
|
$self->{bg_color} = '#ffffff';
|
|
$self->{ft_family} = 'sans-serif';
|
|
$self->{ft_color} = '#000000';
|
|
$self->{lk_color} = '#000099';
|
|
$self->{lk_decoration} = 'none';
|
|
$self->{lk_bgcolor} = '';
|
|
$self->{lk_hvdecoration} = 'underline';
|
|
$self->{header_bgcolor} = '#9999cc';
|
|
$self->{header_ftcolor} = '#000000';
|
|
$self->{leftcol_bgcolor} = '#ccccff';
|
|
$self->{leftcol_ftcolor} = '#000000';
|
|
$self->{rightcol_bgcolor} = '#cccccc';
|
|
$self->{rightcol_ftcolor} = '#000000';
|
|
|
|
foreach my $key (keys %params) {
|
|
if (exists $self->{$key}) {
|
|
$self->{$key} = $params{$key};
|
|
}
|
|
else {
|
|
error_msg("$key is an invalid attribute");
|
|
}
|
|
}
|
|
|
|
bless $self, $class;
|
|
return $self;
|
|
|
|
}
|
|
|
|
sub info_all {
|
|
my $self = shift;
|
|
my %param = @_;
|
|
error_msg("invalid parameter") if (defined $_[0] && exists $param{'links'} && ref $param{'links'} ne 'ARRAY');
|
|
$self->links(@{$param{'links'}}) if exists $param{'links'};
|
|
my $html;
|
|
$self->{title} = 'perlinfo(INFO_ALL)' unless $self->{title};
|
|
$html .= $self->print_htmlhead() if $self->{full_page};
|
|
$html .= print_general();
|
|
$html .= print_variables();
|
|
$html .= print_thesemodules('core');
|
|
$html .= print_license();
|
|
$html .= "</div></body></html>" if $self->{full_page};
|
|
defined wantarray ? return $html : print $html;
|
|
}
|
|
sub info_general {
|
|
my $self = shift;
|
|
my %param = @_;
|
|
error_msg("invalid parameter") if (defined $_[0] && exists $param{'links'} && ref $param{'links'} ne 'ARRAY');
|
|
$self->links(@{$param{'links'}}) if exists $param{'links'};
|
|
my $html;
|
|
$self->{title} = 'perlinfo(INFO_GENERAL)' unless $self->{title};
|
|
$html .= $self->print_htmlhead() if $self->{full_page};
|
|
$html .= print_general('top');
|
|
$html .= "</div></body></html>" if $self->{full_page};
|
|
defined wantarray ? return $html : print $html;
|
|
}
|
|
|
|
sub info_loaded {
|
|
|
|
my $self = shift;
|
|
$self->{'title'} = 'perlinfo(INFO_LOADED)' unless $self->{'title'};
|
|
my $html;
|
|
$html .= $self->print_htmlhead() if $self->{'full_page'};
|
|
|
|
eval qq{
|
|
|
|
END {
|
|
delete \$INC{'HTML/Perlinfo.pm'};
|
|
\$html .= print_thesemodules('loaded',[values %INC]);
|
|
\$html .= print_variables();
|
|
\$html .= '</div></body></html>' if \$self->{'full_page'};
|
|
print \$html;
|
|
}
|
|
|
|
}; die $@ if $@;
|
|
|
|
}
|
|
|
|
sub info_modules {
|
|
my $self = shift;
|
|
my %param = @_;
|
|
error_msg("invalid parameter") if (defined $_[0] && exists $param{'links'} && ref $param{'links'} ne 'ARRAY');
|
|
$self->links(@{$param{'links'}}) if exists $param{'links'};
|
|
my $html;
|
|
$self->{title} = 'perlinfo(INFO_MODULES)' unless $self->{title};
|
|
$html .= $self->print_htmlhead() if $self->{'full_page'};
|
|
$html .= print_thesemodules('all');
|
|
$html .= "</div></body></html>" if $self->{'full_page'};
|
|
defined wantarray ? return $html : print $html;
|
|
}
|
|
sub info_config {
|
|
my $self = shift;
|
|
my %param = @_;
|
|
error_msg("invalid parameter") if (defined $_[0] && exists $param{'links'} && ref $param{'links'} ne 'ARRAY');
|
|
$self->links(@{$param{'links'}}) if exists $param{'links'};
|
|
my $html;
|
|
$self->{title} = 'perlinfo(INFO_CONFIG)' unless $self->{title};
|
|
$html .= $self->print_htmlhead() if $self->{full_page};
|
|
$html .= print_config('info_config');
|
|
$html .= "</div></body></html>" if $self->{full_page};
|
|
defined wantarray ? return $html : print $html;
|
|
}
|
|
sub info_apache {
|
|
my $self = shift;
|
|
my %param = @_;
|
|
error_msg("invalid parameter") if (defined $_[0] && exists $param{'links'} && ref $param{'links'} ne 'ARRAY');
|
|
$self->links(@{$param{'links'}}) if exists $param{'links'};
|
|
my $html;
|
|
$self->{title} = 'perlinfo(INFO_APACHE)' unless $self->{title};
|
|
$html .= $self->print_htmlhead() if $self->{full_page};
|
|
$html .= print_httpd();
|
|
$html .= "</div></body></html>" if $self->{full_page};
|
|
defined wantarray ? return $html : print $html;
|
|
}
|
|
sub info_variables {
|
|
my $self = shift;
|
|
my %param = @_;
|
|
error_msg("invalid parameter") if (defined $_[0] && exists $param{'links'} && ref $param{'links'} ne 'ARRAY');
|
|
$self->links(@{$param{'links'}}) if exists $param{'links'};
|
|
my $html;
|
|
$self->{title} = 'perlinfo(INFO_VARIABLES)' unless $self->{title};
|
|
$html .= $self->print_htmlhead() if $self->{full_page};
|
|
$html .= print_variables();
|
|
$html .= "</div></body></html>" if $self->{full_page};
|
|
defined wantarray ? return $html : print $html;
|
|
}
|
|
|
|
sub info_license {
|
|
my $self = shift;
|
|
my %param = @_;
|
|
error_msg("invalid parameter") if (defined $_[0] && exists $param{'links'} && ref $param{'links'} ne 'ARRAY');
|
|
$self->links(@{$param{'links'}}) if exists $param{'links'};
|
|
my $html;
|
|
$self->{title} = 'perlinfo(INFO_LICENSE)' unless $self->{title};
|
|
$html .= $self->print_htmlhead() if $self->{full_page};
|
|
$html .= print_license();
|
|
$html .= "</div></body></html>" if $self->{full_page};
|
|
defined wantarray ? return $html : print $html;
|
|
}
|
|
|
|
|
|
sub print_htmlhead {
|
|
|
|
my $self = shift;
|
|
|
|
my $title = $self->{title};
|
|
my $bg_image = $self->{bg_image};
|
|
my $bg_position = $self->{bg_position};
|
|
my $bg_repeat = $self->{bg_repeat};
|
|
my $bg_attribute = $self->{bg_attribute};
|
|
my $bg_color = $self->{bg_color};
|
|
|
|
my $ft_family = $self->{ft_family};
|
|
my $ft_color = $self->{ft_color};
|
|
my $lk_color = $self->{lk_color};
|
|
my $lk_decoration = $self->{lk_decoration};
|
|
my $lk_bgcolor = $self->{lk_bgcolor};
|
|
my $lk_hvdecoration = $self->{lk_hvdecoration};
|
|
|
|
my $header_bgcolor = $self->{header_bgcolor};
|
|
my $header_ftcolor = $self->{header_ftcolor};
|
|
my $leftcol_bgcolor =$self->{leftcol_bgcolor};
|
|
my $leftcol_ftcolor = $self->{leftcol_ftcolor};
|
|
my $rightcol_bgcolor = $self->{rightcol_bgcolor};
|
|
my $rightcol_ftcolor = $self->{rightcol_ftcolor};
|
|
|
|
my $html = <<"END_OF_HTML";
|
|
<?xml version="1.0" encoding="utf-8"?>
|
|
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
|
|
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
|
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
|
|
<head>
|
|
<style type="text/css"><!--
|
|
body {
|
|
background-color: $bg_color;
|
|
background-image: url($bg_image);
|
|
background-position: $bg_position;
|
|
background-repeat: $bg_repeat;
|
|
background-attachment: $bg_attribute;
|
|
color: $ft_color;}
|
|
body, td, th, h1, h2 {font-family: $ft_family;}
|
|
pre {margin: 0px; font-family: monospace;}
|
|
a:link {color: $lk_color; text-decoration: $lk_decoration; background-color: $lk_bgcolor;}
|
|
a:hover {text-decoration: $lk_hvdecoration;}
|
|
table {border-collapse: collapse;}
|
|
.center {text-align: center;}
|
|
.center table { margin-left: auto; margin-right: auto; text-align: left;}
|
|
.center th { text-align: center !important; }
|
|
td, th { border: 1px solid #000000; font-size: 75%; vertical-align: baseline;}
|
|
.modules table {border: 0;}
|
|
.modules td { border:0; font-size: 100%; vertical-align: baseline;}
|
|
.modules th { border:0; font-size: 100%; vertical-align: baseline;}
|
|
h1 {font-size: 150%;}
|
|
h2 {font-size: 125%;}
|
|
.p {text-align: left;}
|
|
.e {background-color: $leftcol_bgcolor; font-weight: bold; color: $leftcol_ftcolor;}
|
|
.h {background-color: $header_bgcolor; font-weight: bold; color: $header_ftcolor;}
|
|
.v {background-color: $rightcol_bgcolor; color: $rightcol_ftcolor;}
|
|
i {color: #666666; background-color: #cccccc;}
|
|
img {float: right; border: 0px;}
|
|
hr {width: 600px; background-color: #cccccc; border: 0px; height: 1px; color: #000000;}
|
|
//--></style>
|
|
<title>$title</title>
|
|
</head>
|
|
<body><div class="center">
|
|
END_OF_HTML
|
|
|
|
defined wantarray ? return $html : print $html;
|
|
}
|
|
|
|
sub links {
|
|
|
|
my $self = shift;
|
|
my $args = process_args(@_, \&check_args);
|
|
if (exists $args->{'0'}) {
|
|
$HTML::Perlinfo::Common::links{'all'} = 0;
|
|
}
|
|
elsif (exists $args->{'1'}) {
|
|
$HTML::Perlinfo::Common::links{'all'} = 1;
|
|
}
|
|
elsif (exists $args->{'docs'} && not exists $args->{'local'}) {
|
|
$HTML::Perlinfo::Common::links{'docs'} = $args->{'docs'};
|
|
}
|
|
elsif (exists $args->{'local'} && not exists $args->{'docs'}) {
|
|
$HTML::Perlinfo::Common::links{'local'} = $args->{'local'};
|
|
}
|
|
elsif (exists $args->{'docs'} && exists $args->{'local'}) {
|
|
$HTML::Perlinfo::Common::links{'docs'} = $args->{'docs'},
|
|
$HTML::Perlinfo::Common::links{'local'} = $args->{'local'},
|
|
}
|
|
}
|
|
1;
|