package C4::Output; #asummes C4/Output #package to deal with marking up output use strict; require Exporter; use vars qw($VERSION @ISA @EXPORT @EXPORT_OK %EXPORT_TAGS); # set the version for version checking $VERSION = 0.01; @ISA = qw(Exporter); @EXPORT = qw(&startpage &endpage &mktablehdr &mktableft &mktablerow &mklink &startmenu &endmenu &mkheadr ¢er &endcenter &mkform &mkform2 &bold); %EXPORT_TAGS = ( ); # eg: TAG => [ qw!name1 name2! ], # your exported package globals go here, # as well as any optionally exported functions @EXPORT_OK = qw($Var1 %Hashit); # non-exported package globals go here use vars qw(@more $stuff); # initalize package globals, first exported ones my $Var1 = ''; my %Hashit = (); # then the others (which are still accessible as $Some::Module::stuff) my $stuff = ''; my @more = (); # all file-scoped lexicals must be created before # the functions below that use them. # file-private lexicals go here my $priv_var = ''; my %secret_hash = (); # here's a file-private function as a closure, # callable as &$priv_func; it cannot be prototyped. my $priv_func = sub { # stuff goes here. }; # make all your functions, whether exported or not; sub startpage{ my $string="\n"; return($string); } sub startmenu{ my ($type)=@_; if ($type eq 'issue'){ open (FILE,'/usr/local/www/hdl/htdocs/includes/issues-top.inc'); } else { open (FILE,'/usr/local/www/hdl/htdocs/includes/cat-top.inc'); } my @string=; close FILE; my $count=@string; # $string[$count]="
"; return @string; } sub endmenu{ my ($type)=@_; if ($type eq 'issue'){ open (FILE,'/usr/local/www/hdl/htdocs/includes/issues-bottom.inc'); } else { open (FILE,'/usr/local/www/hdl/htdocs/includes/cat-bottom.inc'); } my @string=; close FILE; return @string; } sub mktablehdr { my $string="\n"; return($string); } sub mktablerow { my ($cols,$colour,@data)=@_; my $i=0; my $string=""; while ($i <$cols){ $string=$string.""; $i++; } $string=$string."\n"; return($string); } sub mktableft { my $string="
$data[$i]
\n"; return($string); } sub mkform{ my ($action,%inputs)=@_; my $string="
\n"; $string=$string.mktablehdr(); my $key; my @order; while ( my ($key, $value) = each %inputs) { my @data=split('\t',$value); #my $posn = shift(@data); if ($data[0] eq 'hidden'){ $string=$string."\n"; } else { my $text; if ($data[0] eq 'radio') { $text="$data[1] $data[2]"; } if ($data[0] eq 'text') { $text=""; } if ($data[0] eq 'textarea') { $text=""; } if ($data[0] eq 'select') { $text=""; } $string=$string.mktablerow(2,'white',$key,$text); #@order[$posn] =mktablerow(2,'white',$key,$text); } } #$string=$string.join("\n",@order); $string=$string.mktablerow(2,'white','',''); $string=$string.mktableft; $string=$string."
"; } sub mkform2{ my ($action,%inputs)=@_; my $string="
\n"; $string=$string.mktablehdr(); my $key; my @order; while ( my ($key, $value) = each %inputs) { my @data=split('\t',$value); my $posn = shift(@data); my $reqd = shift(@data); my $ltext = shift(@data); if ($data[0] eq 'hidden'){ $string=$string."\n"; } else { my $text; if ($data[0] eq 'radio') { $text="$data[1] $data[2]"; } elsif ($data[0] eq 'text') { my $size = $data[1]; if ($size eq "") { $size=40; } $text=""; } elsif ($data[0] eq 'textarea') { my @size=split("x",$data[1]); if ($data[1] eq "") { $size[0] = 40; $size[1] = 4; } $text=""; } elsif ($data[0] eq 'select') { $text=""; } if ($reqd eq "R") { $ltext = $ltext." (Req)"; } @order[$posn] =mktablerow(2,'white',$ltext,$text); } } $string=$string.join("\n",@order); $string=$string.mktablerow(2,'white','',''); $string=$string.mktableft; $string=$string."
"; } sub endpage{ my $string="\n"; return($string); } sub mklink { my ($url,$text)=@_; my $string="$text"; return ($string); } sub mkheadr { my ($type,$text)=@_; my $string; if ($type eq '1'){ $string="$text
"; } return ($string); } sub center { my ($text)=@_; my $string="
\n"; return ($string); } sub endcenter { my ($text)=@_; my $string="
\n"; return ($string); } sub bold { my ($text)=@_; my $string="$text"; return($string); } END { } # module clean-up code here (global destructor)