package WebGUI::Operation::Image; #------------------------------------------------------------------- # WebGUI is Copyright 2001-2002 Plain Black Software. #------------------------------------------------------------------- # Please read the legal notices (docs/legal.txt) and the license # (docs/license.txt) that came with this distribution before using # this software. #------------------------------------------------------------------- # http://www.plainblack.com info@plainblack.com #------------------------------------------------------------------- use Exporter; use strict; use WebGUI::Attachment; use WebGUI::DateTime; use WebGUI::HTMLForm; use WebGUI::Icon; use WebGUI::International; use WebGUI::Paginator; use WebGUI::Privilege; use WebGUI::Session; use WebGUI::SQL; use WebGUI::Template; use WebGUI::URL; use WebGUI::Utility; our @ISA = qw(Exporter); our @EXPORT = qw(&www_editImage &www_editImageSave &www_viewImage &www_deleteImage &www_deleteImageConfirm &www_listImages &www_deleteImageFile); #------------------------------------------------------------------- sub www_deleteImage { my ($output); if (WebGUI::Privilege::isInGroup(4)) { $output .= helpIcon(23); $output .= '
'; $output .= '
'; return $output; } else { return WebGUI::Privilege::insufficient(); } } #------------------------------------------------------------------- sub www_deleteImageConfirm { my ($image); if (WebGUI::Privilege::isInGroup(4)) { $image = WebGUI::Attachment->new("","images",$session{form}{iid}); $image->deleteNode; WebGUI::SQL->write("delete from images where imageId=$session{form}{iid}"); return www_listImages(); } else { return WebGUI::Privilege::insufficient(); } } #------------------------------------------------------------------- sub www_deleteImageFile { if (WebGUI::Privilege::isInGroup(4)) { WebGUI::SQL->write("update images set filename='' where imageId=$session{form}{iid}"); return www_editImage(); } else { return WebGUI::Privilege::insufficient(); } } #------------------------------------------------------------------- sub www_editImage { my ($output, %data, $image, $f); tie %data, 'Tie::CPHash'; if (WebGUI::Privilege::isInGroup(4)) { if ($session{form}{iid} eq "new") { } else { %data = WebGUI::SQL->quickHash("select * from images where imageId=$session{form}{iid}"); } $output = helpIcon(20); $output .= ''.WebGUI::International::get(390).'
';
}
return $output;
} else {
return WebGUI::Privilege::insufficient();
}
}
#-------------------------------------------------------------------
sub www_editImageSave {
my ($file, $sqlAdd, $test);
if (WebGUI::Privilege::isInGroup(4)) {
if ($session{form}{iid} eq "new") {
$session{form}{iid} = getNextId("imageId");
WebGUI::SQL->write("insert into images (imageId) values ($session{form}{iid})");
}
$file = WebGUI::Attachment->new("","images",$session{form}{iid});
$file->save("filename");
if ($file->getFilename) {
$sqlAdd = ", filename=".quote($file->getFilename);
}
while (($test) = WebGUI::SQL->quickArray("select name from images
where name=".quote($session{form}{name})." and imageId<>$session{form}{iid}")) {
if ($session{form}{name} =~ /(.*)(\d+$)/) {
$session{form}{name} = $1.($2+1);
} elsif ($test ne "") {
$session{form}{name} .= "2";
}
}
WebGUI::SQL->write("update images set name=".quote($session{form}{name}).
$sqlAdd.", parameters=".quote($session{form}{parameters}).", userId=$session{user}{userId}, ".
" username=".quote($session{user}{username}).
", dateUploaded=".time()." where imageId=$session{form}{iid}");
return www_listImages();
} else {
return WebGUI::Privilege::insufficient();
}
}
#-------------------------------------------------------------------
sub www_listImages {
my ($f, $output, $sth, %data, @row, $image, $p, $i, $search, $isAdmin);
tie %data, 'Tie::CPHash';
if (WebGUI::Privilege::isInGroup(4)) {
$output = helpIcon(26);
$output .= '
| '; $output .= ''.WebGUI::International::get(395).''; $output .= ' | '; $f = WebGUI::HTMLForm->new(1); $f->raw(''); $f->hidden("op","listImages"); $f->text("keyword",'',$session{form}{keyword}); $f->submit(WebGUI::International::get(170)); $f->raw(' | '); $output .= $f->print; $output .= '
'; if ($session{form}{keyword} ne "") { $search = " where (name like '%".$session{form}{keyword}. "%' or username like '%".$session{form}{keyword}. "%' or filename like '%".$session{form}{keyword}."%') "; } $isAdmin = WebGUI::Privilege::isInGroup(3); $sth = WebGUI::SQL->read("select * from images $search order by name"); while (%data = $sth->hash) { $image = WebGUI::Attachment->new($data{filename},"images",$data{imageId}); $row[$i] = '
';
return $output;
} else {
return WebGUI::Privilege::insufficient();
}
}
1;