package project_image;
use strict;
use project;
sub new {
my $c=shift;
my $mk=shift;
my $t=&sql::select1("project_image","mainkey",[$mk]);
if (!$t) {
return bless {new=>1};
}
$t->{width}=1 if (!$t->{width}) ;
$t->{height}=2 if (!$t->{height}) ;
bless $t;
}
sub columnProp {
("width"=>"i","height"=>"i","project"=>"i",
"new"=>"e", "mainkey"=>"m");
}
my %size = ( "small" =>100 , "medium" => 50 , "large" => 25 , "huge" => 12 );
my $cmd;
sub thumbNail {
my $t=shift;
if ($t->generateScaledFile) {
qq();
} else {
qq();
}
}
sub generateScaledFile {
my $t=shift;
my $sc=$t->scaledFileName;
return 1 if (-e $sc);
$cmd=qq(../thumbTool/genThumb.pl "@{[$t->fileName]}" "$sc" 150 130);
system $cmd;
return (-e $sc);
}
sub scaledFileName {
my $t=shift;
my $fn=$t->fileName;
my @a=split (m|/|,$fn);
my $name=pop @a;
"../thumb/$name";
}
sub thumbNailToDetail {
my $t=shift;
&html::link($t->thumbNail, "project_imageDetail" , {project_image=>$t->{mainkey}} );
}
use table;
sub detail {
my $t=shift;
my $p=new project($t->{project});
my $adm;
if ($p->{admin}) {
my $tbl=new table;
$tbl->addRow
->addCol(
&html::form(qq(),
"newImage",
{project_image=>$t->{mainkey},project=>$p->{mainkey}}
)
);
$adm=$tbl->out;
}
&tmpl::default("画像","Image", <<"EOF");
$adm
EOF
}
sub fileName {
my $t=shift;
"../files/$t->{filename}";
}
sub setFileName {
my $t=shift;
my $ext=shift;
$t->{filename}="prj-Img$t->{mainkey}.$ext";
&sql::update("project_image",
{filename=>$t->{filename}},
"mainkey = @{[&sql::i($t->{mainkey})]} "
);
}
sub upload {
my $t=shift;
my $c=shift;
open OUT ,">".$t->fileName or die("WRITE error ".$t->fileName);
binmode OUT;
print OUT $c;
close OUT;
unlink($t->scaledFileName);
&tmpl::default("アップロード完了","uploaded",
&html::link("戻る", "viewProject",{mainkey=>$t->{project}})
);
}
1;