diff --git a/docs/upgrades/upgrade_3.8.0-3.9.0.sql b/docs/upgrades/upgrade_3.8.0-3.9.0.sql
index a69089379..a303c68de 100644
--- a/docs/upgrades/upgrade_3.8.0-3.9.0.sql
+++ b/docs/upgrades/upgrade_3.8.0-3.9.0.sql
@@ -66,6 +66,24 @@ INSERT INTO international VALUES (44,'UserSubmission','English','Group To Modera
INSERT INTO international VALUES (51,'UserSubmission','English','Display thumbnails?');
alter table UserSubmission add column displayThumbnails int not null default 0;
INSERT INTO international VALUES (52,'UserSubmission','English','Thumbnail');
+alter table UserSubmission add column layout varchar(30) not null default 'traditional';
+INSERT INTO international VALUES (53,'UserSubmission','English','Layout');
+INSERT INTO international VALUES (54,'UserSubmission','English','Web Log');
+INSERT INTO international VALUES (55,'UserSubmission','English','Traditional');
+INSERT INTO international VALUES (56,'UserSubmission','English','Photo Gallery');
+INSERT INTO international VALUES (57,'UserSubmission','English','Responses');
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/lib/WebGUI/Wobject/UserSubmission.pm b/lib/WebGUI/Wobject/UserSubmission.pm
index 2e12f3c65..784d18e64 100644
--- a/lib/WebGUI/Wobject/UserSubmission.pm
+++ b/lib/WebGUI/Wobject/UserSubmission.pm
@@ -53,6 +53,96 @@ sub _canEditMessage {
}
}
+#-------------------------------------------------------------------
+sub _traditionalView {
+ my (@row, $i, $image, $output, $p, $sth, %submission);
+ 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');
+ $row[$i] = '
|
+
+ '.$submission{title}.'';
+ if ($submission{userId} == $session{user}{userId}) {
+ $row[$i] .= ' ('.$submissionStatus{$submission{status}}.')';
+ }
+ $row[$i] .= ' | ';
+ if ($_[0]->get("displayThumbnails")) {
+ if ($submission{image} ne "") {
+ $image = WebGUI::Attachment->new($submission{image},$_[0]->get("wobjectId"),$submission{submissionId});
+ $row[$i] .= ' | ';
+ } else {
+ $row[$i] .= ' | ';
+ }
+ }
+ $row[$i] .= ''.epochToHuman($submission{dateSubmitted},"%z").
+ ' | '.$submission{username}.' |
';
+ $i++;
+ }
+ $sth->finish;
+ $output .= '';
+ $p = WebGUI::Paginator->new(WebGUI::URL::page(),\@row,$_[0]->get("submissionsPerPage"));
+ $output .= '';
+ $output .= '';
+ }
+ $output .= '
';
+ $output .= $p->getPage($session{form}{pn});
+ $output .= '
';
+ $output .= $p->getBarTraditional($session{form}{pn});
+ return $output;
+}
+
+#-------------------------------------------------------------------
+sub _weblogView {
+ my (@row, $i, $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}");
+ $row[$i] = '|
';
+ if ($_[0]->get("displayThumbnails")) {
+ if ($submission{image} ne "") {
+ $image = WebGUI::Attachment->new($submission{image},$_[0]->get("wobjectId"),$submission{submissionId});
+ $row[$i] .= ' ';
+ }
+ }
+ $row[$i] .= WebGUI::International::get(40,$namespace)
+ .' '.$submission{username}.''
+ .' - '.epochToHuman($submission{dateSubmitted},"%z \@ %Z").' '
+ .$submission{content}.' ('.WebGUI::International::get(46,$namespace)
+ .' | '.$responses.' '.WebGUI::International::get(57,$namespace).') |
';
+ $i++;
+ }
+ $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 duplicate {
my ($sth, $file, @row, $newSubmissionId, $w);
@@ -66,6 +156,7 @@ sub duplicate {
allowDiscussion=>$_[0]->get("allowDiscussion"),
editTimeout=>$_[0]->get("editTimeout"),
groupToPost=>$_[0]->get("groupToPost"),
+ layout=>$_[0]->get("layout"),
displayThumbnails=>$_[0]->get("displayThumbnails"),
groupToModerate=>$_[0]->get("groupToModerate")
});
@@ -77,6 +168,7 @@ sub duplicate {
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);
}
$sth->finish;
}
@@ -93,13 +185,14 @@ sub new {
#-------------------------------------------------------------------
sub purge {
WebGUI::SQL->write("delete from UserSubmission_submission where wobjectId=".$_[0]->get("wobjectId"));
+ WebGUI::Discussion::purge($_[0]->get("wobjectId"));
$_[0]->SUPER::purge();
}
#-------------------------------------------------------------------
sub set {
$_[0]->SUPER::set($_[1],[qw(submissionsPerPage groupToContribute groupToApprove defaultStatus groupToModerate
- groupToPost displayThumbnails editTimeout allowDiscussion)]);
+ groupToPost displayThumbnails editTimeout layout allowDiscussion)]);
}
#-------------------------------------------------------------------
@@ -218,7 +311,11 @@ sub www_denySubmission {
#-------------------------------------------------------------------
sub www_edit {
- my ($output, $f, $defaultStatus, $submissionsPerPage, $groupToApprove, $groupToModerate);
+ my (%layout, $layout, $output, $f, $defaultStatus, $submissionsPerPage, $groupToApprove, $groupToModerate);
+ %layout = (traditional=>WebGUI::International::get(55,$namespace),
+ weblog=>WebGUI::International::get(54,$namespace),
+ photogallery=>WebGUI::International::get(56,$namespace));
+ $layout = $_[0]->get("layout") || "traditional";
$groupToApprove = $_[0]->get("groupToApprove") || 4;
$groupToModerate = $_[0]->get("groupToModerate") || 4;
$submissionsPerPage = $_[0]->get("submissionsPerPage") || 50;
@@ -227,6 +324,7 @@ sub www_edit {
$output = helpIcon(1,$namespace);
$output .= ''.WebGUI::International::get(18,$namespace).'
';
$f = WebGUI::HTMLForm->new;
+ $f->select("layout",\%layout,WebGUI::International::get(53,$namespace),[$layout]);
$f->group("groupToApprove",WebGUI::International::get(1,$namespace),[$groupToApprove]);
$f->group("groupToContribute",WebGUI::International::get(2,$namespace),[$_[0]->get("groupToContribute")]);
$f->integer("submissionsPerPage",WebGUI::International::get(6,$namespace),$submissionsPerPage);
@@ -256,6 +354,7 @@ sub www_editSave {
groupToPost=>$session{form}{groupToPost},
editTimeout=>$session{form}{editTimeout},
allowDiscussion=>$session{form}{allowDiscussion},
+ layout=>$session{form}{layout},
displayThumbnails=>$session{form}{displayThumbnails}
});
return "";
@@ -445,50 +544,15 @@ sub www_showMessage {
#-------------------------------------------------------------------
sub www_view {
- my (%submission, $image, $output, $sth, @row, $i, $p);
+ my ($output);
$output = $_[0]->displayTitle;
$output .= $_[0]->description;
$output = $_[0]->processMacros($output);
- $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');
- $row[$i] = '|
-
- '.$submission{title}.'';
- if ($submission{userId} == $session{user}{userId}) {
- $row[$i] .= ' ('.$submissionStatus{$submission{status}}.')';
- }
- $row[$i] .= ' | ';
- if ($_[0]->get("displayThumbnails")) {
- if ($submission{image} ne "") {
- $image = WebGUI::Attachment->new($submission{image},$_[0]->get("wobjectId"),$submission{submissionId});
- $row[$i] .= ' | ';
- } else {
- $row[$i] .= ' | ';
- }
- }
- $row[$i] .= ''.epochToHuman($submission{dateSubmitted},"%z").
- ' | '.$submission{username}.' |
';
- $i++;
+ if ($_[0]->get("layout") eq "weblog") {
+ $output .= $_[0]->_weblogView;
+ } else {
+ $output .= $_[0]->_traditionalView;
}
- $sth->finish;
- $output .= '';
- $p = WebGUI::Paginator->new(WebGUI::URL::page(),\@row,$_[0]->get("submissionsPerPage"));
- $output .= '';
- $output .= '';
- }
- $output .= '
';
- $output .= $p->getPage($session{form}{pn});
- $output .= '
';
- $output .= $p->getBarTraditional($session{form}{pn});
return $output;
}