# $Id: Util.pm,v 1.2 2003/09/28 08:09:31 clajac Exp $ package CPANXR::Apache::Util; use strict; sub navigator { my ($pkg, $r, $page, $base) = @_; $r->print("

"); if($page->previous_page) { $r->print("print($base); $r->print("&p="); $r->print($page->previous_page); $r->print("\"><< ") } for(1..$page->last_page) { $r->print("print($base); $r->print("&p=" . $_ . "\">"); if($_ == $page->current_page) { $r->print("" . $_ . ""); } else { $r->print($_); } $r->print(" "); } if($page->next_page) { $r->print("print($base); $r->print("&p="); $r->print($page->next_page); $r->print("\">>>"); } $r->print("
"); } package CPANXR::Apache::Util::Table; our @Colors = qw(eeeeee ffffff); sub new { my ($pkg, $r, $columns, $width) = @_; $pkg = ref $pkg || $pkg; unless(ref $width eq 'ARRAY') { my $cw = int(100/$columns); @$width = map { $cw } 0..($columns - 1); $width->[-1] += (100 - $cw * $columns) unless($cw * $columns == 100); @$width = map { $_ . "%" } @$width; } return bless { r => $r, columns => $columns, row_num => 0, width => $width }, $pkg; } sub begin { my $self = shift; $self->{r}->print("\n"); 1; } sub print { my ($self, @data) = @_; my $color = $self->{row_num} & 1; $self->{r}->print(""); for(0..($self->{columns} - 1)) { $self->{r}->print(""); } $self->{r}->print(""); $self->{row_num}++; 1; } sub header { my ($self, @data) = @_; $self->{r}->print(""); for(0..($self->{columns} - 1)) { $self->{r}->print(""); } $self->{r}->print(""); $self->{row_num} = 1; 1; } sub end { my $self = shift; $self->{r}->print("
{width}->[$_]\">"); $self->{r}->print($data[$_] ? $data[$_] : ""); $self->{r}->print("
"); $self->{r}->print($data[$_] ? $data[$_] : ""); $self->{r}->print("
"); } 1;