package C4::Output; #asummes C4/Output #package to deal with marking up output #You will need to edit parts of this pm #set the value of path to be where your html lives 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 &gotopage &mkformnotable &mkform3); %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. # # Change this value to reflect where you will store your includes # my %configfile; open (KC, "/etc/koha.conf"); while () { chomp; (next) if (/^\s*#/); if (/(.*)\s*=\s*(.*)/) { my $variable=$1; my $value=$2; # Clean up white space at beginning and end $variable=~s/^\s*//g; $variable=~s/\s*$//g; $value=~s/^\s*//g; $value=~s/\s*$//g; $configfile{$variable}=$value; } } my $path=$configfile{'includes'}; ($path) || ($path="/usr/local/www/hdl/htdocs/includes"); # 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 gotopage{ my ($target) = @_; print "
goto target = $target
"; my $string = ""; return $string; } sub startmenu{ # edit the paths in here my ($type)=@_; if ($type eq 'issue') { open (FILE,"$path/issues-top.inc") || die; } elsif ($type eq 'opac') { open (FILE,"$path/opac-top.inc") || die; } elsif ($type eq 'member') { open (FILE,"$path/members-top.inc") || die; } elsif ($type eq 'acquisitions'){ open (FILE,"$path/aquisitions-top.inc")|| die; } elsif ($type eq 'report'){ open (FILE,"$path/reports-top.inc") || die; } elsif ($type eq 'circulation') { open (FILE,"$path/circulation-top.inc") || die; } else { open (FILE,"$path/cat-top.inc") || die; } my @string=; close FILE; my $count=@string; # $string[$count]="
"; return @string; } sub endmenu{ my ($type)=@_; if ($type eq 'issue'){ open (FILE,"$path/issues-bottom.inc") || die; } elsif ($type eq 'opac') { open (FILE,"$path/opac-bottom.inc") || die; } elsif ($type eq 'member') { open (FILE,"$path/members-bottom.inc") || die; } elsif ($type eq 'acquisitions') { open (FILE,"$path/aquisitions-bottom.inc") || die; } elsif ($type eq 'report') { open (FILE,"$path/reports-bottom.inc") || die; } elsif ($type eq 'circulation') { open (FILE,"$path/circulation-bottom.inc") || die; } else { open (FILE,"$path/cat-bottom.inc") || die; } my @string=; close FILE; return @string; } sub mktablehdr { my $string="\n"; return($string); } sub mktablerow { #the last item in data may be a backgroundimage my ($cols,$colour,@data)=@_; my $i=0; my $string=""; while ($i <$cols){ if ($data[$cols] ne ''){ #check for backgroundimage $string.=""; } else { $string.="$data[$i]"; } $i++; } $string=$string."\n"; return($string); } sub mktableft { my $string="
"; } else { $string.=""; } if ($data[$i] eq "") { $string.="  
\n"; return($string); } sub mkform{ my ($action,%inputs)=@_; my $string="
\n"; $string=$string.mktablehdr(); my $key; my @keys=sort keys %inputs; my $count=@keys; my $i2=0; while ( $i2<$count) { my $value=$inputs{$keys[$i2]}; 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',$keys[$i2],$text); #@order[$posn] =mktablerow(2,'white',$keys[$i2],$text); } $i2++; } #$string=$string.join("\n",@order); $string=$string.mktablerow(2,'white','',''); $string=$string.mktableft; $string=$string."
"; } sub mkform3{ my ($action,%inputs)=@_; my $string="
\n"; $string=$string.mktablehdr(); my $key; my @keys=sort keys %inputs; my @order; my $count=@keys; my $i2=0; while ( $i2<$count) { my $value=$inputs{$keys[$i2]}; my @data=split('\t',$value); my $posn = $data[2]; if ($data[0] eq 'hidden'){ $order[$posn]="\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',$keys[$i2],$text); $order[$posn]=mktablerow(2,'white',$keys[$i2],$text); } $i2++; } my $temp=join("\n",@order); $string=$string.$temp; $string=$string.mktablerow(1,'white',''); $string=$string.mktableft; $string=$string."
"; } sub mkformnotable{ my ($action,@inputs)=@_; my $string="
\n"; my $count=@inputs; for (my $i=0; $i<$count; $i++){ if ($inputs[$i][0] eq 'hidden'){ $string=$string."\n"; } if ($inputs[$i][0] eq 'radio') { $string.="$inputs[$i][2]"; } if ($inputs[$i][0] eq 'text') { $string.=""; } if ($inputs[$i][0] eq 'textarea') { $string.=""; } if ($inputs[$i][0] eq 'reset'){ $string.=""; } if ($inputs[$i][0] eq 'submit'){ $string.=""; } } $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
"; } if ($type eq '2'){ $string="$text"; } if ($type eq '3'){ $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)