/ig || $message{message} =~ /\
/ig || $message{message} =~ /\
/ig) {
- $message{message} =~ s/\n/\
/g;
- }
return %message;
}
#-------------------------------------------------------------------
-sub postNewMessage {
- my ($html);
- $html = '
'.WebGUI::International::get(231).'
';
- $html .= formHeader().'
';
- $html .= WebGUI::Form::hidden("func","postNewMessageSave");
- $html .= WebGUI::Form::hidden("wid",$session{form}{wid});
- $html .= WebGUI::Form::hidden("sid",$session{form}{sid});
- if ($session{user}{userId} == 1) {
- $html .= tableFormRow(WebGUI::International::get(438),WebGUI::Form::text("visitorName",30,35));
+sub post {
+ my ($html, $header, $footer, $f, %message);
+ tie %message, 'Tie::CPHash';
+ $f = WebGUI::HTMLForm->new;
+ if ($session{form}{replyTo} ne "") { # is a reply
+ $header = WebGUI::International::get(234);
+ %message = getMessage($session{form}{replyTo});
+ $footer = formatHeader($message{subject},$message{userId},$message{username},$message{dateOfPost}).''.formatMessage($message{message});
+ $message{message} = "";
+ $message{subject} = formatSubject("Re: ".$message{subject});
+ $session{form}{mid} = "new";
+ $f->hidden("replyTo",$session{form}{replyTo});
+ if ($session{user}{userId} == 1) {
+ $f->text("visitorName",WebGUI::International::get(438));
+ }
+ } elsif ($session{form}{mid} eq "new") { # is an entirely new thread
+ $header = WebGUI::International::get(231);
+ if ($session{user}{userId} == 1) {
+ $f->text("visitorName",WebGUI::International::get(438));
+ }
+ } else { # is editing an existing message
+ $header = WebGUI::International::get(228);
+ %message = getMessage($session{form}{mid});
+ $footer = formatHeader($message{subject},$message{userId},$message{username},$message{dateOfPost}).'
'.formatMessage($message{message});
+ $message{subject} = formatSubject($message{subject});
}
- $html .= '
| '.WebGUI::International::get(229).' | '.WebGUI::Form::text("subject",30,255).' |
';
- $html .= '| '.WebGUI::International::get(230).' | '.WebGUI::Form::textArea("message",'',50,6,1).' |
';
- $html .= ' | '.WebGUI::Form::submit(WebGUI::International::get(62)).' |
';
- $html .= '
';
+ $f->hidden("func","postSave");
+ $f->hidden("wid",$session{form}{wid});
+ $f->hidden("sid",$session{form}{sid});
+ $f->hidden("mid",$session{form}{mid});
+ $f->text("subject",WebGUI::International::get(229),$message{subject});
+ $f->HTMLArea("message",WebGUI::International::get(230),$message{message});
+ $f->submit;
+ $html = '
'.$header.'
';
+ $html .= $f->print;
+ $html .= '
'.$footer;
return $html;
}
#-------------------------------------------------------------------
-sub postNewMessageSave {
- my ($mid, $visitor);
- if ($session{form}{subject} eq "") {
- $session{form}{subject} = WebGUI::International::get(232);
- }
- if ($session{form}{message} eq "") {
- $session{form}{subject} .= ' '.WebGUI::International::get(233);
- }
- if ($session{form}{visitorName} eq "") {
- $visitor = $session{user}{username};
- } else {
- $visitor = $session{form}{visitorName};
- }
- $mid = getNextId("messageId");
- WebGUI::SQL->write("insert into discussion values ($mid, $mid, $session{form}{wid}, 0, $session{user}{userId}, ".quote($visitor).", ".quote($session{form}{subject}).", ".quote($session{form}{message}).", ".time().", '$session{form}{sid}')");
- return "";
-}
-
-#-------------------------------------------------------------------
-sub postReply {
- my ($html, $subject);
- ($subject) = WebGUI::SQL->quickArray("select subject from discussion where messageId=$session{form}{mid}");
- $subject = "Re: ".$subject;
- $html = '
'.WebGUI::International::get(234).'
';
- $html .= formHeader().'
';
- $html .= WebGUI::Form::hidden("func","postReplySave");
- $html .= WebGUI::Form::hidden("wid",$session{form}{wid});
- $html .= WebGUI::Form::hidden("sid",$session{form}{sid});
- $html .= WebGUI::Form::hidden("mid",$session{form}{mid});
- if ($session{user}{userId} == 1) {
- $html .= tableFormRow(WebGUI::International::get(438),WebGUI::Form::text("visitorName",30,35));
- }
- $html .= '| '.WebGUI::International::get(229).' | '.WebGUI::Form::text("subject",30,255,$subject).' |
';
- $html .= '| '.WebGUI::International::get(230).' | '.WebGUI::Form::textArea("message",'',50,6,1).' |
';
- $html .= ' | '.WebGUI::Form::submit(WebGUI::International::get(62)).' |
';
- $html .= '
';
- $html .= showMessage();
- return $html;
-}
-
-#-------------------------------------------------------------------
-sub postReplySave {
- my ($rid, $mid, $visitor);
+sub postSave {
+ my ($rid, $username, $pid);
if ($session{form}{subject} eq "") {
$session{form}{subject} = WebGUI::International::get(232);
}
if ($session{form}{message} eq "") {
$session{form}{subject} .= ' '.WebGUI::International::get(233);
}
- if ($session{form}{visitorName} eq "") {
- $visitor = $session{user}{username};
- } else {
- $visitor = $session{form}{visitorName};
- }
- $mid = getNextId("messageId");
- ($rid) = WebGUI::SQL->quickArray("select rid from discussion where messageId=$session{form}{mid}");
- WebGUI::SQL->write("insert into discussion values ($mid, $rid, $session{form}{wid}, $session{form}{mid}, $session{user}{userId}, ".quote($visitor).", ".quote($session{form}{subject}).", ".quote($session{form}{message}).", ".time().", '$session{form}{sid}')");
+ if ($session{form}{mid} eq "new") {
+ if ($session{user}{userId} = 1) {
+ if ($session{form}{visitorName} eq "") {
+ $username = $session{user}{username};
+ } else {
+ $username = $session{form}{visitorName};
+ }
+ } else {
+ $username = $session{user}{username};
+ }
+ if ($session{form}{sid} eq "") {
+ $session{form}{sid} = 0;
+ }
+ $session{form}{mid} = getNextId("messageId");
+ if ($session{form}{replyTo} ne "") {
+ ($rid) = WebGUI::SQL->quickArray("select rid from discussion where messageId=$session{form}{replyTo}");
+ $pid = $session{form}{replyTo};
+ } else {
+ $rid = $session{form}{mid};
+ $pid = 0;
+ }
+ WebGUI::SQL->write("insert into discussion (messageId, wobjectId, subId, rid, pid, userId, username) values
+ ($session{form}{mid},$session{form}{wid},$session{form}{sid},$rid,$pid,$session{user}{userId},".quote($username).")");
+ } elsif ($session{setting}{addEditStampToPosts}) {
+ $session{form}{message} = "\n --- (Edited at ".localtime(time)." by $session{user}{username}) --- \n\n".$session{form}{message};
+ }
+ WebGUI::SQL->write("update discussion set subject=".quote($session{form}{subject}).",
+ message=".quote($session{form}{message}).", dateOfPost=".time()." where messageId=$session{form}{mid}");
return "";
}
@@ -230,9 +219,7 @@ sub showMessage {
if ($message{messageId}) {
$html .= '
'.$message{subject}.'
';
$html .= '
';
$html .= '
| ';
- $html .= $message{message}.' ';
+ $html .= formatMessage($message{message}).' ';
$html .= ' |
';
} else {
$html = WebGUI::International::get(402);
@@ -296,15 +283,10 @@ sub showThreads {
$html .= '
';
if ($session{user}{discussionLayout} eq "flat") {
while (%data = $sth->hash) {
- $html .= '|
';
- unless ($data{message} =~ /\/ig || $data{message} =~ /\
/ig || $data{message} =~ /\
/ig) {
- $data{message} =~ s/\n/\
/g;
- }
- $html .= '
| '.$data{message}.' |
';
+ $html .= '
| '.formatMessage($data{message}).' |
';
}
} else {
$html .= '
';
diff --git a/lib/WebGUI/Wobject/Article.pm b/lib/WebGUI/Wobject/Article.pm
index 787d3c63a..0603c3f9a 100644
--- a/lib/WebGUI/Wobject/Article.pm
+++ b/lib/WebGUI/Wobject/Article.pm
@@ -213,55 +213,18 @@ sub www_editSave {
}
#-------------------------------------------------------------------
-sub www_editMessage {
- if (_canEditMessage($_[0],$session{form}{mid})) {
- return WebGUI::Discussion::editMessage();
- } else {
- return WebGUI::Privilege::insufficient();
- }
-}
-
-#-------------------------------------------------------------------
-sub www_editMessageSave {
- if (_canEditMessage($_[0],$session{form}{mid})) {
- WebGUI::Discussion::editMessageSave();
- return $_[0]->www_showMessage();
- } else {
- return WebGUI::Privilege::insufficient();
- }
-}
-
-#-------------------------------------------------------------------
-sub www_postNewMessage {
+sub www_post {
if (WebGUI::Privilege::isInGroup($_[0]->get("groupToPost"),$session{user}{userId})) {
- return WebGUI::Discussion::postNewMessage();
+ return WebGUI::Discussion::post();
} else {
return WebGUI::Privilege::insufficient();
}
}
#-------------------------------------------------------------------
-sub www_postNewMessageSave {
+sub www_postSave {
if (WebGUI::Privilege::isInGroup($_[0]->get("groupToPost"),$session{user}{userId})) {
- return WebGUI::Discussion::postNewMessageSave();
- } else {
- return WebGUI::Privilege::insufficient();
- }
-}
-
-#-------------------------------------------------------------------
-sub www_postReply {
- if (WebGUI::Privilege::isInGroup($_[0]->get("groupToPost"),$session{user}{userId})) {
- return WebGUI::Discussion::postReply();
- } else {
- return WebGUI::Privilege::insufficient();
- }
-}
-
-#-------------------------------------------------------------------
-sub www_postReplySave {
- if (WebGUI::Privilege::isInGroup($_[0]->get("groupToPost"),$session{user}{userId})) {
- WebGUI::Discussion::postReplySave();
+ WebGUI::Discussion::postSave();
return $_[0]->www_showMessage();
} else {
return WebGUI::Privilege::insufficient();
@@ -273,10 +236,10 @@ 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(24,$namespace).'
';
if (_canEditMessage($_[0],$session{form}{mid})) {
- $submenu .= ''.WebGUI::International::get(25,$namespace).'
';
$submenu .= ''.WebGUI::International::get(26,$namespace).'
';
@@ -330,7 +293,7 @@ sub www_view {
WebGUI::URL::page('func=showMessage&wid='.$_[0]->get("wobjectId")).'">'.
WebGUI::International::get(28,$namespace).' ('.$replies.')';
$output .= '';
$output .= '
';
}
diff --git a/lib/WebGUI/Wobject/MessageBoard.pm b/lib/WebGUI/Wobject/MessageBoard.pm
index 79e84b8c3..1cbcaebc9 100644
--- a/lib/WebGUI/Wobject/MessageBoard.pm
+++ b/lib/WebGUI/Wobject/MessageBoard.pm
@@ -150,55 +150,18 @@ sub www_editSave {
}
#-------------------------------------------------------------------
-sub www_editMessage {
- if (_canEditMessage($_[0],$session{form}{mid})) {
- return WebGUI::Discussion::editMessage();
- } else {
- return WebGUI::Privilege::insufficient();
- }
-}
-
-#-------------------------------------------------------------------
-sub www_editMessageSave {
- if (_canEditMessage($_[0],$session{form}{mid})) {
- WebGUI::Discussion::editMessageSave();
- return $_[0]->www_showMessage();
- } else {
- return WebGUI::Privilege::insufficient();
- }
-}
-
-#-------------------------------------------------------------------
-sub www_postNewMessage {
+sub www_post {
if (WebGUI::Privilege::isInGroup($_[0]->get("groupToPost"),$session{user}{userId})) {
- return WebGUI::Discussion::postNewMessage();
+ return WebGUI::Discussion::post();
} else {
return WebGUI::Privilege::insufficient();
}
}
#-------------------------------------------------------------------
-sub www_postNewMessageSave {
+sub www_postSave {
if (WebGUI::Privilege::isInGroup($_[0]->get("groupToPost"),$session{user}{userId})) {
- return WebGUI::Discussion::postNewMessageSave();
- } else {
- return WebGUI::Privilege::insufficient();
- }
-}
-
-#-------------------------------------------------------------------
-sub www_postReply {
- if (WebGUI::Privilege::isInGroup($_[0]->get("groupToPost"),$session{user}{userId})) {
- return WebGUI::Discussion::postReply();
- } else {
- return WebGUI::Privilege::insufficient();
- }
-}
-
-#-------------------------------------------------------------------
-sub www_postReplySave {
- if (WebGUI::Privilege::isInGroup($_[0]->get("groupToPost"),$session{user}{userId})) {
- WebGUI::Discussion::postReplySave();
+ WebGUI::Discussion::postSave();
return $_[0]->www_showMessage();
} else {
return WebGUI::Privilege::insufficient();
@@ -208,11 +171,10 @@ sub www_postReplySave {
#-------------------------------------------------------------------
sub www_showMessage {
my ($output, $submenu);
- $submenu = '
'.WebGUI::International::get(13,$namespace).'';
if (_canEditMessage($_[0],$session{form}{mid})) {
- $submenu .= '
'.WebGUI::International::get(12,$namespace).'';
$submenu .= '
'.WebGUI::International::get(22,$namespace).'';
@@ -236,7 +198,7 @@ sub www_view {
$html = $_[0]->processMacros($html);
$html .= '
';
$html .= '
';
$html .= '
diff --git a/lib/WebGUI/Wobject/UserSubmission.pm b/lib/WebGUI/Wobject/UserSubmission.pm
index 8bf83e4c9..e5d3f9df3 100644
--- a/lib/WebGUI/Wobject/UserSubmission.pm
+++ b/lib/WebGUI/Wobject/UserSubmission.pm
@@ -417,25 +417,6 @@ sub www_editSave {
}
}
-#-------------------------------------------------------------------
-sub www_editMessage {
- if (_canEditMessage($_[0],$session{form}{mid})) {
- return WebGUI::Discussion::editMessage();
- } else {
- return WebGUI::Privilege::insufficient();
- }
-}
-
-#-------------------------------------------------------------------
-sub www_editMessageSave {
- if (_canEditMessage($_[0],$session{form}{mid})) {
- WebGUI::Discussion::editMessageSave();
- return $_[0]->www_showMessage();
- } else {
- return WebGUI::Privilege::insufficient();
- }
-}
-
#-------------------------------------------------------------------
sub www_editSubmission {
my ($output, %submission, $f, @submission, $sth);
@@ -521,37 +502,18 @@ sub www_editSubmissionSave {
}
#-------------------------------------------------------------------
-sub www_postNewMessage {
+sub www_post {
if (WebGUI::Privilege::isInGroup($_[0]->get("groupToPost"),$session{user}{userId})) {
- return WebGUI::Discussion::postNewMessage();
+ return WebGUI::Discussion::post();
} else {
return WebGUI::Privilege::insufficient();
}
}
#-------------------------------------------------------------------
-sub www_postNewMessageSave {
+sub www_postSave {
if (WebGUI::Privilege::isInGroup($_[0]->get("groupToPost"),$session{user}{userId})) {
- WebGUI::Discussion::postNewMessageSave();
- return $_[0]->www_viewSubmission();
- } else {
- return WebGUI::Privilege::insufficient();
- }
-}
-
-#-------------------------------------------------------------------
-sub www_postReply {
- if (WebGUI::Privilege::isInGroup($_[0]->get("groupToPost"),$session{user}{userId})) {
- return WebGUI::Discussion::postReply();
- } else {
- return WebGUI::Privilege::insufficient();
- }
-}
-
-#-------------------------------------------------------------------
-sub www_postReplySave {
- if (WebGUI::Privilege::isInGroup($_[0]->get("groupToPost"),$session{user}{userId})) {
- WebGUI::Discussion::postReplySave();
+ WebGUI::Discussion::postSave();
return $_[0]->www_showMessage();
} else {
return WebGUI::Privilege::insufficient();
@@ -561,10 +523,10 @@ sub www_postReplySave {
#-------------------------------------------------------------------
sub www_showMessage {
my ($submenu, $output);
- $submenu .= ''.WebGUI::International::get(39,$namespace).'
';
if (_canEditMessage($_[0],$session{form}{mid})) {
- $submenu .= ''.WebGUI::International::get(42,$namespace).'
';
$submenu .= ''.WebGUI::International::get(43,$namespace).'
';
@@ -628,7 +590,7 @@ sub www_viewSubmission {
WebGUI::International::get(26,$namespace).'
';
}
if ($_[0]->get("allowDiscussion")) {
- $output .= 'get("wobjectId")
.'&sid='.$session{form}{sid}).'">'.WebGUI::International::get(47,$namespace).'
';
}
$output .= ''.WebGUI::International::get(28,$namespace).'
';