diff --git a/lib/WebGUI/Attachment.pm b/lib/WebGUI/Attachment.pm
index 2dbd9ba3d..741cb1c14 100644
--- a/lib/WebGUI/Attachment.pm
+++ b/lib/WebGUI/Attachment.pm
@@ -138,6 +138,20 @@ sub copy {
}
$a->close;
}
+ if (isIn($_[0]->getType,qw(jpg jpeg gif png tif tiff bmp))) {
+ $a = FileHandle->new($_[0]->{_node}->getPath.'/thumb-'.$_[0]->getFilename,"r");
+ $b = FileHandle->new(">".$newNode->getPath.'/thumb-'.$_[0]->getFilename);
+ if (defined $a) {
+ binmode($a);
+ $b = FileHandle->new(">".$newNode->getPath.'/thumb-'.$_[0]->getFilename);
+ if (defined $b) {
+ binmode($b);
+ cp($a,$b);
+ $b->close;
+ }
+ $a->close;
+ }
+ }
}
diff --git a/lib/WebGUI/Wobject/UserSubmission.pm b/lib/WebGUI/Wobject/UserSubmission.pm
index 784d18e64..92bfcae90 100644
--- a/lib/WebGUI/Wobject/UserSubmission.pm
+++ b/lib/WebGUI/Wobject/UserSubmission.pm
@@ -53,6 +53,51 @@ sub _canEditMessage {
}
}
+#-------------------------------------------------------------------
+sub _photogalleryView {
+ my (@row, $i, $y, $image, $output, $p, $sth, %submission, $responses);
+ tie %submission, 'Tie::CPHash';
+ $sth = WebGUI::SQL->read("select * from UserSubmission_submission
+ where wobjectId=".$_[0]->get("wobjectId")." and (status='Approved' or userId=$session{user}{userId}) order by dateSubmitted desc");
+ while (%submission = $sth->hash) {
+ $submission{title} = WebGUI::HTML::filter($submission{title},'all');
+ ($responses) = WebGUI::SQL->quickArray("select count(*) from discussion
+ where wobjectId=".$_[0]->get("wobjectId")." and subId=$submission{submissionId}");
+ if ($y == 0) {
+ $row[$i] .= '
';
+ }
+ $row[$i] .= ' | ';
+ if ($_[0]->get("displayThumbnails")) {
+ $image = WebGUI::Attachment->new($submission{image},$_[0]->get("wobjectId"),$submission{submissionId});
+ $row[$i] .= ' ';
+ }
+ $row[$i] .= ''.$submission{title}.'';
+ if ($submission{userId} == $session{user}{userId}) {
+ $row[$i] .= ' ('.$submissionStatus{$submission{status}}.')';
+ }
+ $row[$i] .= ' | ';
+ if ($y == 2) {
+ $row[$i] .= '';
+ $y = -1;
+ }
+ $i++;
+ $y++;
+ }
+ $sth->finish;
+ if (WebGUI::Privilege::isInGroup($_[0]->get("groupToContribute"))) {
+ $output .= ''
+ .WebGUI::International::get(20,$namespace).'';
+ }
+ $output .= '';
+ $p = WebGUI::Paginator->new(WebGUI::URL::page(),\@row,$_[0]->get("submissionsPerPage"));
+ $output .= $p->getPage($session{form}{pn});
+ $output .= '
';
+ $output .= $p->getBarTraditional($session{form}{pn});
+ return $output;
+}
+
#-------------------------------------------------------------------
sub _traditionalView {
my (@row, $i, $image, $output, $p, $sth, %submission);
@@ -133,7 +178,7 @@ sub _weblogView {
$sth->finish;
if (WebGUI::Privilege::isInGroup($_[0]->get("groupToContribute"))) {
$output .= ''
- .WebGUI::International::get(20,$namespace).'';
+ .WebGUI::International::get(20,$namespace).'';
}
$output .= '';
$p = WebGUI::Paginator->new(WebGUI::URL::page(),\@row,$_[0]->get("submissionsPerPage"));
@@ -145,7 +190,8 @@ sub _weblogView {
#-------------------------------------------------------------------
sub duplicate {
- my ($sth, $file, @row, $newSubmissionId, $w);
+ my ($sth, $file, %row, $newSubmissionId, $w);
+ tie %row, 'Tie::CPHash';
$w = $_[0]->SUPER::duplicate($_[1]);
$w = WebGUI::Wobject::UserSubmission->new({wobjectId=>$w,namespace=>$namespace});
$w->set({
@@ -161,14 +207,16 @@ sub duplicate {
groupToModerate=>$_[0]->get("groupToModerate")
});
$sth = WebGUI::SQL->read("select * from UserSubmission_submission where wobjectId=".$_[0]->get("wobjectId"));
- while (@row = $sth->array) {
+ while (%row = $sth->hash) {
$newSubmissionId = getNextId("submissionId");
- $file = WebGUI::Attachment->new($row[8],$_[0]->get("wobjectId"),$row[1]);
+ $file = WebGUI::Attachment->new($row{image},$_[0]->get("wobjectId"),$row{submissionId});
+ $file->copy($w->get("wobjectId"),$newSubmissionId);
+ $file = WebGUI::Attachment->new($row{attachment},$_[0]->get("wobjectId"),$row{submissionId});
$file->copy($w->get("wobjectId"),$newSubmissionId);
WebGUI::SQL->write("insert into UserSubmission_submission values (".$w->get("wobjectId").", $newSubmissionId, ".
- quote($row[2]).", $row[3], ".quote($row[4]).", '$row[5]', ".quote($row[6]).", ".
- quote($row[7]).", ".quote($row[8]).", '$row[9]', '$row[10]')");
- WebGUI::Discussion::duplicate($_[0]->get("wobjectId"),$w->get("wobjectId"),$row[0],$newSubmissionId);
+ quote($row{title}).", $row{dateSubmitted}, ".quote($row{username}).", '$row{userId}', ".quote($row{content}).", ".
+ quote($row{image}).", ".quote($row{attachment}).", '$row{status}', '$row{convertCarriageReturns}')");
+ WebGUI::Discussion::duplicate($_[0]->get("wobjectId"),$w->get("wobjectId"),$row{submissionId},$newSubmissionId);
}
$sth->finish;
}
@@ -534,8 +582,8 @@ sub www_showMessage {
$html .= ''.WebGUI::International::get(28,$namespace).'
';
$html .= '| ';
$html .= $message{message}.' ';
- $html .= WebGUI::Discussion::showThreads();
$html .= ' |
';
+ $html .= WebGUI::Discussion::showThreads();
} else {
$html = WebGUI::International::get(402);
}
@@ -550,6 +598,8 @@ sub www_view {
$output = $_[0]->processMacros($output);
if ($_[0]->get("layout") eq "weblog") {
$output .= $_[0]->_weblogView;
+ } elsif ($_[0]->get("layout") eq "photogallery") {
+ $output .= $_[0]->_photogalleryView;
} else {
$output .= $_[0]->_traditionalView;
}
@@ -608,10 +658,10 @@ sub www_viewSubmission {
$file = WebGUI::Attachment->new($submission{attachment},$session{form}{wid},$session{form}{sid});
$output .= $file->box;
}
+ $output .= '';
if ($_[0]->get("allowDiscussion")) {
$output .= WebGUI::Discussion::showThreads();
}
- $output .= '';
return $output;
}