From 745367ce626cd30abb2fc71cd3b90e1a19df156f Mon Sep 17 00:00:00 2001 From: JT Smith Date: Tue, 28 May 2002 03:35:03 +0000 Subject: [PATCH] Consolodating Discussion functionality. --- docs/upgrades/upgrade_3.8.0-3.9.0.sql | 13 +++-- lib/WebGUI/Discussion.pm | 48 +++++++++++++----- lib/WebGUI/Wobject/MessageBoard.pm | 70 +++++---------------------- 3 files changed, 56 insertions(+), 75 deletions(-) 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 4c1f862b7..c4185bcdc 100644 --- a/docs/upgrades/upgrade_3.8.0-3.9.0.sql +++ b/docs/upgrades/upgrade_3.8.0-3.9.0.sql @@ -81,11 +81,14 @@ INSERT INTO international VALUES (13,'FAQ','English','Turn [top] link on?'); INSERT INTO international VALUES (14,'FAQ','English','Q'); INSERT INTO international VALUES (15,'FAQ','English','A'); INSERT INTO international VALUES (16,'FAQ','English','[top]'); - - - - - +INSERT INTO international VALUES (509,'WebGUI','English','Discussion Layout'); +INSERT INTO international VALUES (510,'WebGUI','English','Flat'); +INSERT INTO international VALUES (511,'WebGUI','English','Threaded'); +INSERT INTO userProfileField VALUES ('discussionLayout','WebGUI::International::get(509)',1,0,'select','{\r\n threaded=>WebGUI::International::get(511),\r\n flat=>WebGUI::International::get(510)\r\n}','[threaded]',5,4,0); +INSERT INTO international VALUES (512,'WebGUI','English','Next Thread'); +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'; diff --git a/lib/WebGUI/Discussion.pm b/lib/WebGUI/Discussion.pm index 18b8a5dff..e4777ed59 100644 --- a/lib/WebGUI/Discussion.pm +++ b/lib/WebGUI/Discussion.pm @@ -219,13 +219,12 @@ sub purge { #------------------------------------------------------------------- sub showMessage { - my (@data, $html, %message, $defaultMid, $sql); + my (@data, $html, %message, $defaultMid, $sqlAdd); tie %message, 'Tie::CPHash'; - $sql = "select min(messageId) from discussion where wobjectId=$session{form}{wid}"; if ($session{form}{sid}) { - $sql .= " and subId=$session{form}{sid}"; + $sqlAdd = " and subId=$session{form}{sid}"; } - ($defaultMid) = WebGUI::SQL->quickArray($sql); + ($defaultMid) = WebGUI::SQL->quickArray("select min(messageId) from discussion where wobjectId=$session{form}{wid}".$sqlAdd); $session{form}{mid} = $defaultMid if ($session{form}{mid} eq ""); %message = getMessage($session{form}{mid}); if ($message{messageId}) { @@ -237,6 +236,18 @@ sub showMessage { $html .= ''; $html .= ''; $html .= $_[0]; + @data = WebGUI::SQL->quickArray("select max(messageId) from discussion + where wobjectId=$message{wobjectId} and pid=0 and messageId<$message{rid}".$sqlAdd); + if ($data[0] ne "") { + $html .= '« '.WebGUI::International::get(513).'
'; + } + @data = WebGUI::SQL->quickArray("select min(messageId) from discussion + where wobjectId=$message{wobjectId} and pid=0 and messageId>$message{rid}".$sqlAdd); + if ($data[0] ne "") { + $html .= ''.WebGUI::International::get(512).' »
'; + } $html .= ''; $html .= $message{message}.'

'; $html .= ''; @@ -248,7 +259,7 @@ sub showMessage { #------------------------------------------------------------------- sub showReplyTree { - my (@data, $html, %message); + my (@data, $html, %message, @data); tie %message, 'Tie::CPHash'; %message = getMessage($session{form}{mid}); if ($message{messageId}) { @@ -256,6 +267,17 @@ sub showReplyTree { $html .= ''.WebGUI::International::get(229). ''.WebGUI::International::get(244). ''.WebGUI::International::get(245).''; + @data = WebGUI::SQL->quickArray("select messageId,subject,username,dateOfPost,userId from discussion where messageId=$message{rid}"); + $data[1] = WebGUI::HTML::filter($data[1],'all'); + $html .= ''.substr($data[1],0,30).''.$data[2]. + ''. + epochToHuman($data[3],"%z %Z").''; $html .= traverseReplyTree($message{rid},0); $html .= ""; } @@ -264,7 +286,7 @@ sub showReplyTree { #------------------------------------------------------------------- sub showThreads { - my ($sth, @data, $html, $sql); + my ($sth, %data, $html, $sql); $html .= ''; $html .= ' @@ -275,19 +297,19 @@ sub showThreads { } $sql .= " and pid=0 order by messageId desc"; $sth = WebGUI::SQL->read($sql); - while (@data = $sth->array) { - $data[1] = WebGUI::HTML::filter($data[1],'all'); + while (%data = $sth->hash) { + $data{subject} = WebGUI::HTML::filter($data{subject},'all'); $html .= ''.substr($data[1],0,30). + $data{messageId}.'&wid='.$session{form}{wid}.'&sid='.$session{form}{sid}).'">'.substr($data{subject},0,30). ''; - $html .= WebGUI::Discussion::traverseReplyTree($data[0],1); + $html .= WebGUI::Discussion::traverseReplyTree($data{messageId},1); } $html .= '
'.WebGUI::International::get(229).' '.WebGUI::International::get(244).''.$data[2]. - ''.epochToHuman($data[3],"%z %Z"). + WebGUI::URL::page('op=viewProfile&uid='.$data{userId}).'">'.$data{username}. + ''.epochToHuman($data{dateOfPost},"%z %Z"). '
'; return $html; diff --git a/lib/WebGUI/Wobject/MessageBoard.pm b/lib/WebGUI/Wobject/MessageBoard.pm index efd948147..79e84b8c3 100644 --- a/lib/WebGUI/Wobject/MessageBoard.pm +++ b/lib/WebGUI/Wobject/MessageBoard.pm @@ -207,64 +207,20 @@ sub www_postReplySave { #------------------------------------------------------------------- sub www_showMessage { - my (@data, $html, %message); - tie %message, 'Tie::CPHash'; - %message = WebGUI::Discussion::getMessage($session{form}{mid}); - if ($message{messageId}) { - $html .= '

'.$message{subject}.'

'; - $html .= ''; - $html .= '
'; - $html .= ''.WebGUI::International::get(7,$namespace).' '.$message{username}.'
'; - $html .= "".WebGUI::International::get(8,$namespace)." ". - epochToHuman($message{dateOfPost},"%z %Z")."
"; - $html .= "".WebGUI::International::get(9,$namespace)." ". - $message{wobjectId}."-".$message{rid}."-".$message{pid}."-".$message{messageId}."
"; - $html .= '
'; - $html .= ''.WebGUI::International::get(13,$namespace).'
'; - if (_canEditMessage($_[0],$session{form}{mid})) { - $html .= ''.WebGUI::International::get(12,$namespace).'
'; - $html .= ''.WebGUI::International::get(22,$namespace).'
'; - } - $html .= ''.WebGUI::International::get(11,$namespace).'
'; - @data = WebGUI::SQL->quickArray("select max(messageId) from discussion where wobjectId=$message{wobjectId} and pid=0 and messageId<$message{rid}"); - if ($data[0] ne "") { - $html .= '« '.WebGUI::International::get(10,$namespace).'
'; - } - @data = WebGUI::SQL->quickArray("select min(messageId) from discussion where wobjectId=$message{wobjectId} and pid=0 and messageId>$message{rid}"); - if ($data[0] ne "") { - $html .= ''.WebGUI::International::get(14,$namespace).' »
'; - } - $html .= '
'; - $html .= $message{message}; - $html .= '
'; - $html .= ''; - $html .= ''; - @data = WebGUI::SQL->quickArray("select messageId,subject,username,dateOfPost,userId from discussion where messageId=$message{rid}"); - $data[1] = WebGUI::HTML::filter($data[1],'all'); - $html .= ''.substr($data[1],0,30).''; - $html .= WebGUI::Discussion::traverseReplyTree($message{rid},1); - $html .= "
'.WebGUI::International::get(229). - ''.WebGUI::International::get(15,$namespace). - ''.WebGUI::International::get(16,$namespace).'
'.$data[2]. - ''. - epochToHuman($data[3],"%z %Z").'
"; - } else { - $html = WebGUI::International::get(402); + 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).'
'; } - return $html; + $submenu .= ''.WebGUI::International::get(11,$namespace).'
'; + $output = WebGUI::Discussion::showMessage($submenu); + $output .= WebGUI::Discussion::showReplyTree(); + return $output; } #-------------------------------------------------------------------