Data-ResultsHelper
view release on metacpan or search on metacpan
ResultsHelper/HTML.pm view on Meta::CPAN
foreach(qw(back next)) {
my $text = $ref->{$self->{prefix} . "_toc_${_}_text"};
my $href = $ref->{$self->{prefix} . "_toc_${_}_href"};
if($href) {
$value .= "<a href=$href>$text</a> ";
} else {
$value .= "$text ";
}
}
}
return $value;
}
sub header_chunk {
my $self = shift;
my $ref = $self->{results_ref};
my $header_text = $ref->{$self->{prefix} . "_header_text"};
my $header_href = $ref->{$self->{prefix} . "_header_href"};
my $value = '';
foreach my $i (@{$ref->{"$self->{prefix}_show_cols"}}) {
if($header_href->[$i]) {
$value .= "<td><a href=$header_href->[$i]>$header_text->[$i]</a> </td>";
} else {
$value .= "<td>$header_text->[$i] </td>";
}
}
return $value;
}
sub toc_template {
my $self = shift;
return '' if($self->{no_toc});
return '' if(!$self->second_page && $self->smart_second_page_toc);
return $self->{toc_template};
}
sub uber_row {
my $self = shift;
my $ref = $self->{results_ref};
unless($self->{uber_row}) {
$self->{uber_row} = '<tr>';
my $header_text = $ref->{$self->{prefix} . "_header_text"};
for(my $i=0;$i<@{$header_text};$i++) {
my $chunk = ($self->{cell_default_hash} && $self->{cell_default_hash}{$i})
? $self->{cell_default_hash}{$i} : $self->{cell_default};
$chunk =~ s/-i-/-$i-/g;
$self->{uber_row} .= $chunk;
}
$self->{uber_row} .= "</tr>\n";
}
return $self->{uber_row};
}
sub results_chunk {
my $self = shift;
my $return = '';
my $uber_row = $self->uber_row;
my $color_array = $self->color_array;
my $overall_row = 0;
for(my $i=$self->{prefs}{start_number};$i<=$self->{prefs}{start_number}+$self->{prefs}{at_a_time}-1;$i++) {
my $row = $self->{results}[$i];
last unless ref $row;
if($self->{munge_result_row_code_ref} && ref $self->{munge_result_row_code_ref} eq 'CODE') {
&{$self->{munge_result_row_code_ref}}($self, $row);
} elsif($self->can('munge_result_row')) {
$self->munge_result_row($row);
}
$overall_row++;
for(my $j=0;$j<@{$row};$j++) {
my $element = \$row->[$j];
URLDecode($element) if($self->url_decode);
if($self->time_format && $self->time_format->{$j} && $$element && $$element =~ /^\d+$/) {
$$element = "<!--$$element-->" . $self->to_char($$element, $self->{time_format}{$j}, $self->gmtime || 1);
}
}
my $chunk = $uber_row;
$chunk =~ s/-(\d+)-/$row->[$1]/g;
$chunk =~ s/-num-/$overall_row/g;
$chunk =~ s/-NUM-/$i/g;
my $color_index = ($i -1 ) % @{$color_array};
my $color = $color_array->[$color_index];
$chunk =~ s/(<tr)/$1 bgcolor=$color/i;
$return .= $chunk;
}
$return .= $self->table_close;
return $return;
}
1;
__END__
=head1 NAME
Data::ResultsHelper::HTML - sub-classes Data::ResultsHelper to change results to html
=head1 DEFAULTS
You can set the following options in your object. The defaults are listed.
### what the default cell will look like
cell_default => '<td>-i-</td>',
cell_default_hash => {
0 => '<td>-NUM-. -0-</td>',
},
### an array of alternating colors to use
color_array => ['#FFFFFF'],
### what color to use for your header row
header_color => '#FFFFFF',
### the template for your header
header_template => qq|
-table_declaration-
<tr bgcolor='-header_color-'>
( run in 0.673 second using v1.01-cache-2.11-cpan-0bb4e1dffa6 )