package WebGUI::Operation::Image; #------------------------------------------------------------------- # WebGUI is Copyright 2001-2002 Plain Black LLC. #------------------------------------------------------------------- # 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 &www_editImageGroup &www_editImageGroupSave &www_viewImageGroup &www_deleteImageGroup &www_deleteImageGroupConfirm); #------------------------------------------------------------------- sub www_deleteImage { my ($output); if (WebGUI::Privilege::isInGroup($session{setting}{imageManagersGroup})) { $output .= helpIcon(23); $output .= '
'; $output .= '
'; return $output; } else { return WebGUI::Privilege::insufficient(); } } #------------------------------------------------------------------- sub www_deleteImageConfirm { my ($image); if (WebGUI::Privilege::isInGroup($session{setting}{imageManagersGroup})) { $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($session{setting}{imageManagersGroup})) { 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, $imageGroupId); tie %data, 'Tie::CPHash'; if (WebGUI::Privilege::isInGroup($session{setting}{imageManagersGroup})) { if ($session{form}{iid} eq "new") { $imageGroupId = $session{form}{gid}; } else { %data = WebGUI::SQL->quickHash("select * from images where imageId=$session{form}{iid}"); $imageGroupId = $data{imageGroupId}; } $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($session{setting}{imageManagersGroup})) {
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}).
", imageGroupId=".$session{form}{gid}.
", 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, $search_group,
$isAdmin, $imageGroupId, $isImageManager, $imageGroupParentId);
tie %data, 'Tie::CPHash';
if (WebGUI::Privilege::isInGroup(4)) {
$isImageManager = WebGUI::Privilege::isInGroup($session{setting}{imageManagersGroup});
$isAdmin = WebGUI::Privilege::isInGroup(3);
if($session{form}{gid} ne "") {
$imageGroupId = $session{form}{gid};
} else {
$imageGroupId = 0;
$session{form}{gid} = 0;
}
%data = WebGUI::SQL->quickHash("select parentId,name from imageGroup where imageGroupId=".$imageGroupId);
if($session{form}{pid} ne "") {
$imageGroupParentId = $session{form}{pid};
} elsif($imageGroupId != 0) {
$imageGroupParentId = $data{parentId};
}
$output = helpIcon(26);
$output .= '
| '.WebGUI::International::get(395).''; $output .= ' | '; $output .= ''.WebGUI::International::get(543).' | '; } $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}."%') "; $search_group = " where (name like '%".$session{form}{keyword}. "%' or description like '%".$session{form}{keyword}."%') and imageGroupId>0"; } else { $search = " where imageGroupId='".$imageGroupId."' "; $search_group = " where parentId='".$imageGroupId."' and imageGroupId>0 "; } # do image groups if($imageGroupId > 0) { # show previous link $row[$i] = '
'
.' '.WebGUI::International::get(542).'
'
.' '.$data{name}.'';
return $output;
} else {
return WebGUI::Privilege::insufficient();
}
}
#-------------------------------------------------------------------
sub www_deleteImageGroup {
my ($output);
if (WebGUI::Privilege::isInGroup($session{setting}{imageManagersGroup})) {
$output .= helpIcon(23);
$output .= '
'; $output .= '
'; return $output; } else { return WebGUI::Privilege::insufficient(); } } #------------------------------------------------------------------- sub www_deleteImageGroupConfirm { my ($image, %data); tie %data, 'Tie::CPHash'; if (WebGUI::Privilege::isInGroup($session{setting}{imageManagersGroup})) { %data = WebGUI::SQL->quickHash("select parentId from imageGroup where imageGroupId=$session{form}{gid}"); WebGUI::SQL->write("update images set imageGroupId=$data{parentId} where imageGroupId=$session{form}{gid}"); WebGUI::SQL->write("update imageGroup set parentId=$data{parentId} where parentId=$session{form}{gid}"); WebGUI::SQL->write("delete from imageGroup where imageGroupId=$session{form}{gid}"); $session{form}{gid}=$session{form}{pid}; return www_listImages(); } else { return WebGUI::Privilege::insufficient(); } } #------------------------------------------------------------------- sub www_editImageGroup { my ($output, %data, %parent_data, $image, $f); tie %data, 'Tie::CPHash'; tie %parent_data, 'Tie::CPHash'; if (WebGUI::Privilege::isInGroup($session{setting}{imageManagersGroup})) { if ($session{form}{gid} eq "new") { } else { %data = WebGUI::SQL->quickHash("select * from imageGroup where imageGroupId=$session{form}{gid}"); } %parent_data = WebGUI::SQL->quickHash("select name from imageGroup where imageGroupId=$session{form}{pid}"); $output = helpIcon(36); $output .= '