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 738f39f2e..add8d26f0 100644
--- a/docs/upgrades/upgrade_3.8.0-3.9.0.sql
+++ b/docs/upgrades/upgrade_3.8.0-3.9.0.sql
@@ -90,6 +90,10 @@ INSERT INTO international VALUES (513,'WebGUI','English','Previous Thread');
delete from international where internationalId=10 and namespace='MessageBoard';
delete from international where internationalId=14 and namespace='MessageBoard';
INSERT INTO settings VALUES ('addEditStampToPosts','1');
+alter table discussion add column views int not null default 0;
+INSERT INTO international VALUES (514,'WebGUI','English','Views');
+INSERT INTO international VALUES (515,'WebGUI','English','Add edit stamp to posts?');
+alter table UserSubmission_submission add column views int not null default 0
diff --git a/lib/WebGUI/Discussion.pm b/lib/WebGUI/Discussion.pm
index 6bd79fd04..84d04dfd8 100644
--- a/lib/WebGUI/Discussion.pm
+++ b/lib/WebGUI/Discussion.pm
@@ -87,10 +87,11 @@ sub deleteMessageConfirm {
#-------------------------------------------------------------------
sub formatHeader {
my $output;
- $output = ''.WebGUI::International::get(237).' '.formatSubject($_[0]).'
';
+ $output = ''.WebGUI::International::get(237).' '.formatSubject($_[0]).'
' if ($_[0] ne "");
$output .= ''.WebGUI::International::get(238).'
- '.$_[2].'
';
- $output .= "".WebGUI::International::get(239)." ".epochToHuman($_[3],"%z %Z")."
";
+ '.$_[2].'
' if ($_[1] && $_[2] ne "");
+ $output .= "".WebGUI::International::get(239)." ".epochToHuman($_[3],"%z %Z")."
" if ($_[3]);
+ $output .= "".WebGUI::International::get(514).": ".$_[4]."
" if ($_[4]);
return $output;
}
@@ -129,7 +130,8 @@ sub post {
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}); + $footer = formatHeader($message{subject},$message{userId},$message{username},$message{dateOfPost},$message{views}) + .'
'.formatMessage($message{message}); $message{message} = ""; $message{subject} = formatSubject("Re: ".$message{subject}); $session{form}{mid} = "new"; @@ -145,7 +147,8 @@ sub post { } 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}); + $footer = formatHeader($message{subject},$message{userId},$message{username},$message{dateOfPost},$message{views}) + .'
'.formatMessage($message{message}); $message{subject} = formatSubject($message{subject}); } $f->hidden("func","postSave"); @@ -208,18 +211,20 @@ sub purge { #------------------------------------------------------------------- sub showMessage { - my (@data, $html, %message, $defaultMid, $sqlAdd); + my (@data, $html, %message, $sqlAdd); tie %message, 'Tie::CPHash'; if ($session{form}{sid}) { $sqlAdd = " and subId=$session{form}{sid}"; } - ($defaultMid) = WebGUI::SQL->quickArray("select min(messageId) from discussion where wobjectId=$session{form}{wid}".$sqlAdd); - $session{form}{mid} = $defaultMid if ($session{form}{mid} eq ""); + if ($session{form}{mid} eq "") { + ($session{form}{mid}) = WebGUI::SQL->quickArray("select min(messageId) from discussion where wobjectId=$session{form}{wid}".$sqlAdd); + } + WebGUI::SQL->write("update discussion set views=views+1 where messageId=$session{form}{mid}"); %message = getMessage($session{form}{mid}); if ($message{messageId}) { $html .= '
| '; - $html .= formatHeader($message{subject},$message{userId},$message{username},$message{dateOfPost}); + $html .= formatHeader($message{subject},$message{userId},$message{username},$message{dateOfPost},$message{views}); $html .= ' | '; $html .= ''; $html .= $_[0]; @@ -284,7 +289,7 @@ sub showThreads { if ($session{user}{discussionLayout} eq "flat") { while (%data = $sth->hash) { $html .= ' | ||||||
| '; - $html .= formatHeader($data{subject},$data{userId},$data{username},$data{dateOfPost}); + $html .= formatHeader($data{subject},$data{userId},$data{username},$data{dateOfPost},$data{views}); $html .= ' | |||||||
| '.formatMessage($data{message}).' | |||||||
| '.WebGUI::International::get(229).' | '.WebGUI::International::get(15,$namespace).' | '.WebGUI::International::get(18,$namespace).' | +'.WebGUI::International::get(514).' | '.WebGUI::International::get(19,$namespace).' | '.WebGUI::International::get(20,$namespace).' | ||
| '.substr($data[1],0,30).' | -'.$data[2].' | -'.epochToHuman($data[3],"%z %Z").' | + href="'.WebGUI::URL::page('func=showMessage&mid='.$data{messageId}.'&wid='.$_[0]->get("wobjectId")) + .'">'.substr($data{subject},0,30).' +'.$data{username}.' | +'.epochToHuman($data{dateOfPost},"%z %Z").' | +'.$data{views}.' | '.$replies.' | '.substr($last[3],0,30).' + href="'.WebGUI::URL::page('func=showMessage&mid='.$last[0].'&wid='.$_[0]->get("wobjectId")).'">' + .substr($last[3],0,30).' @ '.epochToHuman($last[1],"%z %Z").' by '.$last[2].' | '; #---menu if ($submission{userId} == $session{user}{userId} && WebGUI::Privilege::isInGroup($_[0]->get("groupToApprove"))) { |