package Bean; use strict; # Module export stuff BEGIN { use Exporter (); use vars qw(@ISA @EXPORT); @ISA=qw(Exporter); @EXPORT=qw( locate_start_rec_and_end_rec list_pages selectindex_file selectindex new ); } sub upload_pic{ my($this,$cgi,$field,$file_pic,$xx)=@_; if($cgi->param($field) ne ""){ my $file=$cgi->param($field); $xx="512" if($xx eq ""); my $buffer; open(DATA,">$file_pic"); read($file,$buffer,1024*$xx); print DATA $buffer; close(DATA); } } sub getdate{ my($this)=@_; my($sec,$min,$hour,$mday,$mon,$year,$wday,$yday,$isdst)=localtime(time); my $year=$year+1900; my $month=$mon+1; my $day=$mday; $month=sprintf("%02d",$month); $day=sprintf("%02d",$day); $sec=sprintf("%02d",$sec); $min=sprintf("%02d",$min); $hour=sprintf("%02d",$hour); my $date="$year-$month-$day"; my $time="$hour:$min:$sec"; return($date,$time); } sub select_fields { my ($this,$tablename_file)=@_; open(DA,"$tablename_file"); my @LINE=; close(DA); chomp(@LINE); my $info; foreach $info (@LINE){ $info=~ s/^\s+//g; $info=~ s/\s+$//g; } my %return; $return{'query'}=$LINE[0]; $return{'fields_mod'}=$LINE[1]; $return{'selected_fields'}=$LINE[2]; $return{'fields_insert'}=$LINE[3]; return (\%return); } sub locate_start_rec_and_end_rec { my ($this,$page,$page_record,$total)=@_; my ($start_rec,$end_rec); if (($page eq "")||($page eq 1)){ $start_rec=1; $end_rec=$page_record*1; if ($end_rec >$total){ $end_rec=$total; } $page=1; } else { $start_rec=$page_record*($page-1)+1; $end_rec=$page_record*$page; if ($end_rec >$total){ $end_rec=$total; } } $start_rec=0 if($total eq "0"); return($start_rec,$end_rec); } sub list_pages { my ($this,$total,$page_record,$page,$page_href,$var,$pages)=@_; my $pageinfo; if(($page eq "") || $page<1) { $page=1; } if(($pages eq "") || $pages<1) { $pages=20; } my $page_href=$ENV{SCRIPT_NAME} if($page_href eq ""); my $total_page=int($total/$page_record); my $temp=$total_page*$page_record; if($temp ne $total){ $total_page++; } my $rec_point=$page*$page_record; my $present_page=int($rec_point/$page_record)+1; if($rec_point%$page_record==0){ $present_page=int($rec_point/$page_record); } my $present_page_tmp=$present_page-1; my $page_start_tmp=int($present_page_tmp/$pages); my $page_start=$pages*$page_start_tmp; my $page_end_tmp=int($present_page_tmp/$pages)+1; my $page_end=$pages*$page_end_tmp; if ($page_start eq 0){ $page_start=1; } if ($page_end > $total_page){ $page_end=$total_page; } my $pflag; $page_end=$page_end+1; for(my $i=$page_start;$i<=$page_end;$i++){ if ($i <= $total_page) { $pflag=1; if (($i eq $page_end)&&($i ne ($total_page+1))){ $pageinfo .= " >> " ; $pflag=0; } if (($i ne 1)&&($i eq $page_start)){ $pageinfo .= " << " ; $pflag=0; } if ($pflag){ if ($i eq $present_page){ $pageinfo .= " $i "; } else { $pageinfo .= " $i " ; } } $pflag=1; } else { last; } } return ($pageinfo,$total_page); } sub selectindex_file { my($this,$select_name,$selected)=@_; open(SE,"$select_name"); my @sel=; close(SE); my ($info,$result,$ttt,$flag); chomp(@sel); chomp($selected); $selected=~ s/\+$//; my @selected_tmp=split(/\+/,$selected); my $i=0; foreach $info (@sel) { $flag=0; foreach $ttt (@selected_tmp){ if($info eq $ttt){ $flag=1; } } if($flag){ $result.="\n"; } else{ $result.="\n"; } $i++; } return $result; } sub selectindex { my($this,$select_hash,$selected)=@_; my %cat=%$select_hash; chomp($selected); $selected=~ s/\+$//; my @selected_tmp=split(/\+/,$selected); my $i=0; my ($info,$ttt,$result); foreach $info (keys (%cat)) { my $flag=0; foreach $ttt (@selected_tmp){ if($info eq $ttt){ $flag=1; } } if($flag){ $result.="\n"; } else{ $result.="\n"; } $i++; } return $result; } sub new { my $this={}; shift; bless $this; return $this; } 1;