diff --git a/admin/adminCommentView.php b/admin/adminCommentView.php
index 88dfb16..2849c67 100644
--- a/admin/adminCommentView.php
+++ b/admin/adminCommentView.php
@@ -70,7 +70,7 @@ while ($oRow = mysql_fetch_object($commentIds))
$hResult = query_parameters($sQuery, $oRow->commentId);
/* call view_app_comment to display the comment */
$oComment_row = mysql_fetch_object($hResult);
- view_app_comment($oComment_row);
+ Comment::view_app_comment($oComment_row);
}
/* display page selection links */
diff --git a/include/comment.php b/include/comment.php
index 7a7dc05..04c19f2 100644
--- a/include/comment.php
+++ b/include/comment.php
@@ -186,8 +186,243 @@ class Comment {
}
return false;
}
-}
+ /**
+ * class static functions
+ */
+
+ /**
+ * display a single comment (in $oRow)
+ */
+ function view_app_comment($oRow)
+ {
+ echo html_frame_start('','98%');
+ echo '
',"\n";
+
+ // message header
+ echo "commentId.">\n";
+ echo " ".$oRow->subject." \n";
+ echo " by ".forum_lookup_user($oRow->userId)." on ".$oRow->time." \n";
+ echo " |
\n";
+
+ // body
+ echo htmlify_urls($oRow->body), "
\n";
+
+ // only add RE: once
+ if(eregi("RE:", $oRow->subject))
+ $subject = $oRow->subject;
+ else
+ $subject = "RE: ".$oRow->subject;
+
+ // reply post buttons
+ echo " [appId&iVersionId=$oRow->versionId\">post new] \n";
+ echo " [appId&iVersionId=$oRow->versionId&sSubject=".
+ urlencode("$subject")."&iThread=$oRow->commentId\">reply to this] \n";
+
+ echo " |
\n";
+
+ // delete message button, for admins
+ if ($_SESSION['current']->hasPriv("admin")
+ || $_SESSION['current']->isMaintainer($oRow->versionId)
+ || $_SESSION['current']->isSuperMaintainer($oRow->appId))
+ {
+ echo "";
+ echo "| \n";
+ echo " |
";
+ }
+
+ echo "
\n";
+
+ echo html_frame_end();
+ }
+
+ /**
+ * grab comments for appId / versionId
+ * if parentId is not -1 only comments for that thread are returned
+ */
+ function grab_comments($versionId, $parentId = -1)
+ {
+ /* escape input so we can use query_appdb() without concern */
+ $versionId = mysql_real_escape_string($versionId);
+ $parentId = mysql_real_escape_string($parentId);
+
+ $extra = "";
+ if($parentId != -1)
+ $extra = "AND parentId = $parentId ";
+
+ $qstring = "SELECT from_unixtime(unix_timestamp(appComments.time), \"%W %M %D %Y, %k:%i\") as time, ".
+ "appComments.commentId, appComments.parentId, appComments.versionId, appComments.userId, appComments.subject, appComments.body, appVersion.appId ".
+ "FROM appComments, appVersion WHERE appComments.versionId = appVersion.versionId AND appComments.versionId = '$versionId' ".
+ $extra.
+ "ORDER BY appComments.time ASC";
+ $hResult = query_appdb($qstring);
+
+ return $hResult;
+ }
+
+ /**
+ * display nested comments
+ * handle is a db result set
+ */
+ function do_display_comments_nested($hResult)
+ {
+ while($oRow = mysql_fetch_object($hResult))
+ {
+ Comment::view_app_comment($oRow);
+ $hResult2 = Comment::grab_comments($oRow->versionId, $oRow->commentId);
+ if($hResult && mysql_num_rows($hResult2))
+ {
+ echo "\n";
+ Comment::do_display_comments_nested($hResult2);
+ echo "
\n";
+ }
+ }
+ }
+
+ function display_comments_nested($versionId, $threadId)
+ {
+ $hResult = Comment::grab_comments($versionId, $threadId);
+ Comment::do_display_comments_nested($hResult);
+ }
+
+ /**
+ * display threaded comments
+ * handle is a db result set
+ */
+ function do_display_comments_threaded($hResult, $is_main)
+ {
+ if (!$is_main)
+ echo "\n";
+
+ while ($oRow = mysql_fetch_object($hResult))
+ {
+ if ($is_main)
+ {
+ Comment::view_app_comment($oRow);
+ } else
+ {
+ echo '- '.
+ $oRow->subject.' by '.forum_lookup_user($oRow->userId).' on '.$oRow->time.'
'."\n";
+ }
+
+ $hResult2 = Comment::grab_comments($oRow->versionId, $oRow->commentId);
+ if ($hResult2 && mysql_num_rows($hResult2))
+ {
+ echo "\n";
+ Comment::do_display_comments_threaded($hResult2, 0);
+ echo "
\n";
+ }
+ }
+
+ if (!$is_main)
+ echo "
\n";
+ }
+
+ function display_comments_threaded($versionId, $threadId = 0)
+ {
+ $hResult = Comment::grab_comments($versionId, $threadId);
+
+ Comment::do_display_comments_threaded($hResult, 1);
+ }
+
+ /**
+ * display flat comments
+ */
+ function display_comments_flat($versionId)
+ {
+ $hResult = Comment::grab_comments($versionId);
+ if ($hResult)
+ {
+ while($oRow = mysql_fetch_object($hResult))
+ {
+ Comment::view_app_comment($oRow);
+ }
+ }
+ }
+
+ function view_app_comments($versionId, $threadId = 0)
+ {
+ $aClean = array(); //array of filtered user input
+
+ $aClean['sCmode'] = makeSafe($_REQUEST['sCmode']);
+ $aClean['sMode'] = makeSafe($_REQUEST['sMode']);
+
+ // count posts
+ $hResult = query_parameters("SELECT commentId FROM appComments WHERE versionId = '?'", $versionId);
+ $messageCount = mysql_num_rows($hResult);
+
+ //start comment format table
+ echo html_frame_start("","98%",'',0);
+ echo '',"\n";
+
+ echo '',"\n";
+
+ // message display mode changer
+ if ($_SESSION['current']->isLoggedIn())
+ {
+ // FIXME we need to change this so not logged in users can change current view as well
+ if (!empty($aClean['sCmode']))
+ $_SESSION['current']->setPref("comments:mode", $aClean['sCmode']);
+
+ $sel[$_SESSION['current']->getPref("comments:mode", "threaded")] = 'selected';
+ echo ' | ',"\n";
+ }
+
+ // blank space
+ echo ' | ',"\n";
+
+ // post new message button
+ echo ' | ',"\n";
+
+ //end comment format table
+ echo '
|
',"\n";
+ echo '
',"\n";
+ echo html_frame_end();
+
+ if( $messageCount > 0 )
+ {
+ echo 'The following comments are owned by whoever posted them. WineHQ is not responsible for what they say.
'."\n";
+ }
+
+ //start comments
+ echo '| ',"\n";
+
+ //hide or display depending on pref
+ if ($_SESSION['current']->isLoggedIn())
+ $mode = $_SESSION['current']->getPref("comments:mode", "threaded");
+ else
+ $mode = "threaded"; /* default non-logged in users to threaded comment display mode */
+
+ if ($aClean['sMode']=="nested")
+ $mode = "nested";
+
+ switch ($mode)
+ {
+ case "flat":
+ Comment::display_comments_flat($versionId);
+ break;
+ case "nested":
+ Comment::display_comments_nested($versionId, $threadId);
+ break;
+ case "threaded":
+ Comment::display_comments_threaded($versionId, $threadId);
+ break;
+ }
+
+ echo ' |
',"\n";
+ }
+}
/*
@@ -211,245 +446,4 @@ function forum_lookup_user($iUserId)
return $sMailto;
}
-/**
- * display a single comment (in $oRow)
- */
-function view_app_comment($oRow)
-{
-
- echo html_frame_start('','98%');
- echo '',"\n";
-
- // message header
- echo "commentId.">\n";
- echo " ".$oRow->subject." \n";
- echo " by ".forum_lookup_user($oRow->userId)." on ".$oRow->time." \n";
- echo " |
\n";
-
- // body
- echo htmlify_urls($oRow->body), "
\n";
-
- // only add RE: once
- if(eregi("RE:", $oRow->subject))
- $subject = $oRow->subject;
- else
- $subject = "RE: ".$oRow->subject;
-
- // reply post buttons
- echo " [appId&iVersionId=$oRow->versionId\">post new] \n";
- echo " [appId&iVersionId=$oRow->versionId&sSubject=".
- urlencode("$subject")."&iThread=$oRow->commentId\">reply to this] \n";
-
- echo " |
\n";
-
- // delete message button, for admins
- if ($_SESSION['current']->hasPriv("admin")
- || $_SESSION['current']->isMaintainer($oRow->versionId)
- || $_SESSION['current']->isSuperMaintainer($oRow->appId))
- {
- echo "";
- echo "| \n";
- echo " |
";
- }
-
- echo "
\n";
-
- echo html_frame_end();
-}
-
-
-/**
- * grab comments for appId / versionId
- * if parentId is not -1 only comments for that thread are returned
- */
-function grab_comments($versionId, $parentId = -1)
-{
- /* escape input so we can use query_appdb() without concern */
- $versionId = mysql_real_escape_string($versionId);
- $parentId = mysql_real_escape_string($parentId);
-
- $extra = "";
- if($parentId != -1)
- $extra = "AND parentId = $parentId ";
-
- $qstring = "SELECT from_unixtime(unix_timestamp(appComments.time), \"%W %M %D %Y, %k:%i\") as time, ".
- "appComments.commentId, appComments.parentId, appComments.versionId, appComments.userId, appComments.subject, appComments.body, appVersion.appId ".
- "FROM appComments, appVersion WHERE appComments.versionId = appVersion.versionId AND appComments.versionId = '$versionId' ".
- $extra.
- "ORDER BY appComments.time ASC";
- $hResult = query_appdb($qstring);
-
- return $hResult;
-}
-
-
-/**
- * display nested comments
- * handle is a db result set
- */
-function do_display_comments_nested($hResult)
-{
- while($oRow = mysql_fetch_object($hResult))
- {
- view_app_comment($oRow);
- $hResult2 = grab_comments($oRow->versionId, $oRow->commentId);
- if($hResult && mysql_num_rows($hResult2))
- {
- echo "\n";
- do_display_comments_nested($hResult2);
- echo "
\n";
- }
- }
-}
-
-
-function display_comments_nested($versionId, $threadId)
-{
- $hResult = grab_comments($versionId, $threadId);
-
- do_display_comments_nested($hResult);
-}
-
-
-/**
- * display threaded comments
- * handle is a db result set
- */
-function do_display_comments_threaded($hResult, $is_main)
-{
- if (!$is_main)
- echo "\n";
-
- while ($oRow = mysql_fetch_object($hResult))
- {
- if ($is_main)
- {
- view_app_comment($oRow);
- } else
- {
- echo '- '.
- $oRow->subject.' by '.forum_lookup_user($oRow->userId).' on '.$oRow->time.'
'."\n";
- }
-
- $hResult2 = grab_comments($oRow->versionId, $oRow->commentId);
- if ($hResult2 && mysql_num_rows($hResult2))
- {
- echo "\n";
- do_display_comments_threaded($hResult2, 0);
- echo "
\n";
- }
- }
-
- if (!$is_main)
- echo "
\n";
-}
-
-
-function display_comments_threaded($versionId, $threadId = 0)
-{
- $hResult = grab_comments($versionId, $threadId);
-
- do_display_comments_threaded($hResult, 1);
-}
-
-
-/**
- * display flat comments
- */
-function display_comments_flat($versionId)
-{
- $hResult = grab_comments($versionId);
- if ($hResult)
- {
- while($oRow = mysql_fetch_object($hResult))
- {
- view_app_comment($oRow);
- }
- }
-}
-
-
-function view_app_comments($versionId, $threadId = 0)
-{
-
- $aClean = array(); //array of filtered user input
-
- $aClean['sCmode'] = makeSafe($_REQUEST['sCmode']);
- $aClean['sMode'] = makeSafe($_REQUEST['sMode']);
-
- // count posts
- $hResult = query_parameters("SELECT commentId FROM appComments WHERE versionId = '?'", $versionId);
- $messageCount = mysql_num_rows($hResult);
-
- //start comment format table
- echo html_frame_start("","98%",'',0);
- echo '',"\n";
-
- echo '',"\n";
-
- // message display mode changer
- if ($_SESSION['current']->isLoggedIn())
- {
- // FIXME we need to change this so not logged in users can change current view as well
- if (!empty($aClean['sCmode']))
- $_SESSION['current']->setPref("comments:mode", $aClean['sCmode']);
-
- $sel[$_SESSION['current']->getPref("comments:mode", "threaded")] = 'selected';
- echo ' | ',"\n";
- }
-
- // blank space
- echo ' | ',"\n";
-
- // post new message button
- echo ' | ',"\n";
-
- //end comment format table
- echo '
|
',"\n";
- echo '
',"\n";
- echo html_frame_end();
-
- if( $messageCount > 0 )
- {
- echo 'The following comments are owned by whoever posted them. WineHQ is not responsible for what they say.
'."\n";
- }
-
- //start comments
- echo '| ',"\n";
-
- //hide or display depending on pref
- if ($_SESSION['current']->isLoggedIn())
- $mode = $_SESSION['current']->getPref("comments:mode", "threaded");
- else
- $mode = "threaded"; /* default non-logged in users to threaded comment display mode */
-
- if ($aClean['sMode']=="nested")
- $mode = "nested";
-
- switch ($mode)
- {
- case "flat":
- display_comments_flat($versionId);
- break;
- case "nested":
- display_comments_nested($versionId, $threadId);
- break;
- case "threaded":
- display_comments_threaded($versionId, $threadId);
- break;
- }
-
- echo ' |
',"\n";
-}
?>
diff --git a/include/version.php b/include/version.php
index 9771d73..6cbacde 100644
--- a/include/version.php
+++ b/include/version.php
@@ -819,7 +819,7 @@ class Version {
}
// Comments Section
- view_app_comments($this->iVersionId);
+ Comment::view_app_comments($this->iVersionId);
}
function lookup_name($versionId)