From b4efa6686ab007a3c847459848526f7f5fc0e663 Mon Sep 17 00:00:00 2001 From: JT Smith Date: Mon, 27 May 2002 21:49:04 +0000 Subject: [PATCH] Added Photo Gallery view to USS. --- lib/WebGUI/Attachment.pm | 14 ++++++ lib/WebGUI/Wobject/UserSubmission.pm | 68 ++++++++++++++++++++++++---- 2 files changed, 73 insertions(+), 9 deletions(-) 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; }