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>&nbsp;";
      } else {
        $value .= "$text&nbsp;";
      }
    }
  }
  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>&nbsp;</td>";
    } else {
      $value .= "<td>$header_text->[$i]&nbsp</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-.&nbsp;-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 )