diff --git a/lib/WebGUI/Wobject.pm b/lib/WebGUI/Wobject.pm
index 56151668c..6d4776165 100644
--- a/lib/WebGUI/Wobject.pm
+++ b/lib/WebGUI/Wobject.pm
@@ -239,6 +239,7 @@ sub duplicate {
endDate => $_[0]->get("endDate"),
templatePosition => $_[0]->get("templatePosition")
});
+ WebGUI::Discussion::duplicate($_[0]->get("wobjectId"),$w->get("wobjectId")) unless ($_[2]);
return $w->get("wobjectId");
}
@@ -464,6 +465,7 @@ sub purge {
WebGUI::SQL->write("delete from wobject where wobjectId=".$_[0]->get("wobjectId"));
$node = WebGUI::Node->new($_[0]->get("wobjectId"));
$node->delete;
+ WebGUI::Discussion::purge($_[0]->get("wobjectId"));
}
#-------------------------------------------------------------------
@@ -1005,6 +1007,35 @@ sub www_postSave {
#-------------------------------------------------------------------
+=head2 www_search ( )
+
+ Searches an attached discussion.
+
+=cut
+
+sub www_search {
+ return WebGUI::Discussion::search();
+}
+
+#-------------------------------------------------------------------
+
+=head2 www_showMessage ( )
+
+ Shows a message from a discussion.
+
+=cut
+
+sub www_showMessage {
+ my ($output, $defaultMid);
+ ($defaultMid) = WebGUI::SQL->quickArray("select min(messageId) from discussion where wobjectId=".$_[0]->get("wobjectId"));
+ $session{form}{mid} = $session{form}{mid} || $defaultMid || 0;
+ $output = WebGUI::Discussion::showMessage($_[1],$_[0]);
+ $output .= WebGUI::Discussion::showThreads();
+ return $output;
+}
+
+#-------------------------------------------------------------------
+
=head2 www_unlockThread ( )
Unlocks a discussion thread from the current message on down.
diff --git a/lib/WebGUI/Wobject/Article.pm b/lib/WebGUI/Wobject/Article.pm
index 473208e76..cb09bcb92 100644
--- a/lib/WebGUI/Wobject/Article.pm
+++ b/lib/WebGUI/Wobject/Article.pm
@@ -14,7 +14,6 @@ use strict;
use Tie::CPHash;
use WebGUI::Attachment;
use WebGUI::DateTime;
-use WebGUI::Discussion;
use WebGUI::HTML;
use WebGUI::HTMLForm;
use WebGUI::Icon;
@@ -48,13 +47,6 @@ sub duplicate {
alignImage=>$_[0]->get("alignImage"),
allowDiscussion=>$_[0]->get("allowDiscussion")
});
- WebGUI::Discussion::duplicate($_[0]->get("wobjectId"),$w->get("wobjectId"));
-}
-
-#-------------------------------------------------------------------
-sub purge {
- WebGUI::Discussion::purge($_[0]->get("wobjectId"));
- $_[0]->SUPER::purge();
}
#-------------------------------------------------------------------
@@ -152,13 +144,7 @@ sub www_editSave {
#-------------------------------------------------------------------
sub www_showMessage {
- my ($submenu, $output, $defaultMid);
- ($defaultMid) = WebGUI::SQL->quickArray("select min(messageId) from discussion where wobjectId=$session{form}{wid}");
- $session{form}{mid} = $defaultMid if ($session{form}{mid} eq "");
- $submenu = ''.WebGUI::International::get(27,$namespace).'
';
- $output = WebGUI::Discussion::showMessage($submenu,$_[0]);
- $output .= WebGUI::Discussion::showThreads();
- return $output;
+ return $_[0]->SUPER::www_showMessage(''.WebGUI::International::get(27,$namespace).'
');
}
#-------------------------------------------------------------------
diff --git a/lib/WebGUI/Wobject/MessageBoard.pm b/lib/WebGUI/Wobject/MessageBoard.pm
index 87bf1a2e6..6394d62f2 100644
--- a/lib/WebGUI/Wobject/MessageBoard.pm
+++ b/lib/WebGUI/Wobject/MessageBoard.pm
@@ -43,13 +43,6 @@ sub duplicate {
$w->set({
messagesPerPage=>$_[0]->get("messagesPerPage")
});
- WebGUI::Discussion::duplicate($_[0]->get("wobjectId"),$w->get("wobjectId"));
-}
-
-#-------------------------------------------------------------------
-sub purge {
- WebGUI::Discussion::purge($_[0]->get("wobjectId"));
- $_[0]->SUPER::purge();
}
#-------------------------------------------------------------------
@@ -88,18 +81,9 @@ sub www_editSave {
}
}
-#-------------------------------------------------------------------
-sub www_search {
- return WebGUI::Discussion::search();
-}
-
#-------------------------------------------------------------------
sub www_showMessage {
- my ($output, $submenu);
- $submenu = ''.WebGUI::International::get(11,$namespace).'
';
- $output = WebGUI::Discussion::showMessage($submenu,$_[0]);
- $output .= WebGUI::Discussion::showReplyTree();
- return $output;
+ return $_[0]->SUPER::www_showMessage(''.WebGUI::International::get(11,$namespace).'
');
}
#-------------------------------------------------------------------
diff --git a/lib/WebGUI/Wobject/UserSubmission.pm b/lib/WebGUI/Wobject/UserSubmission.pm
index b03483f80..1f172410c 100644
--- a/lib/WebGUI/Wobject/UserSubmission.pm
+++ b/lib/WebGUI/Wobject/UserSubmission.pm
@@ -190,7 +190,7 @@ sub _weblogView {
sub duplicate {
my ($sth, $file, %row, $newSubmissionId, $w);
tie %row, 'Tie::CPHash';
- $w = $_[0]->SUPER::duplicate($_[1]);
+ $w = $_[0]->SUPER::duplicate($_[1],1);
$w = WebGUI::Wobject::UserSubmission->new({wobjectId=>$w,namespace=>$namespace});
$w->set({
groupToContribute=>$_[0]->get("groupToContribute"),
@@ -221,7 +221,6 @@ sub duplicate {
#-------------------------------------------------------------------
sub purge {
WebGUI::SQL->write("delete from UserSubmission_submission where wobjectId=".$_[0]->get("wobjectId"));
- WebGUI::Discussion::purge($_[0]->get("wobjectId"));
$_[0]->SUPER::purge();
}
@@ -520,13 +519,9 @@ sub www_search {
#-------------------------------------------------------------------
sub www_showMessage {
- my ($submenu, $output);
- $submenu .= ''.WebGUI::International::get(45,$namespace).'
';
- $submenu .= ''.WebGUI::International::get(28,$namespace).'
';
- $output = WebGUI::Discussion::showMessage($submenu,$_[0]);
- $output .= WebGUI::Discussion::showThreads();
- return $output;
+ return $_[0]->SUPER::www_showMessage(''.WebGUI::International::get(45,$namespace).'
'
+ .''.WebGUI::International::get(28,$namespace).'
');
}
#-------------------------------------------------------------------