Alexander Nicolaysen Sørnes : Use objectManager to add comments
Module: appdb Branch: master Commit: 9acdadfc34422bf9e54113876fdcde5c53cbe0c0 URL: http://source.winehq.org/git/appdb.git/?a=commit;h=9acdadfc34422bf9e54113876... Author: Alexander Nicolaysen Sørnes <alex(a)thehandofagony.com> Date: Sun Oct 21 13:33:43 2007 +0200 Use objectManager to add comments --- include/comment.php | 132 +++++++++++++++++++++++++++++++++++++++++---------- 1 files changed, 106 insertions(+), 26 deletions(-) diff --git a/include/comment.php b/include/comment.php index 703cf62..d26f088 100644 --- a/include/comment.php +++ b/include/comment.php @@ -163,11 +163,6 @@ class Comment { return true; } - function getOutputEditorValues($aClean) - { - /* Stub */ - } - /** * Removes the current comment from the database. @@ -200,48 +195,65 @@ class Comment { return $oRow->cnt; } - /** - * class static functions - */ + function getOutputEditorValues($aClean) + { + $this->sSubject = $aClean['sSubject']; + $this->sBody = $aClean['sBody']; + $this->iParentId = $aClean['iThread']; + $this->iVersionId = $aClean['iVersionId']; + + if(!$this->oOwner) + $this->oOwner = $_SESSION['current']; + + if(!$this->sDateCreated) + $this->sDateCreated = date("l F jS Y, H:i"); + } /** * display a single comment (in $oRow) */ function view_app_comment($oRow) { + $oComment = new comment(null, $oRow); + $oComment->display(); + } + + function display() + { echo html_frame_start('','98%'); echo '<table width="100%" border="0" cellpadding="2" cellspacing="1">',"\n"; // message header - echo "<tr bgcolor=\"#E0E0E0\"><td><a name=Comment-".$oRow->commentId."></a>\n"; - echo " <b>".$oRow->subject."</b><br />\n"; - echo " by ".forum_lookup_user($oRow->userId)." on ".$oRow->time."<br />\n"; + echo "<tr bgcolor=\"#E0E0E0\"><td><a name=Comment-".$this->iCommentId."></a>\n"; + echo " <b>".$this->sSubject."</b><br />\n"; + echo " by ".forum_lookup_user($this->oOwner->iUserId)." on ".$this->sDateCreated."<br />\n"; echo "</td></tr><tr><td>\n"; // body - echo htmlify_urls($oRow->body), "<br /><br />\n"; + echo htmlify_urls($this->sBody), "<br /><br />\n"; // only add RE: once - if(eregi("RE:", $oRow->subject)) - $subject = $oRow->subject; + if(eregi("RE:", $this->sSubject)) + $sSubject = $this->sSubject; else - $subject = "RE: ".$oRow->subject; + $sSubject = "RE: ".$this->sSubject; + $oVersion = new version($this->iVersionId); + $oM = new objectManager("comment", "Post new ocmment"); + $oM->setReturnTo($oVersion->objectMakeUrl()); // reply post buttons - echo " [<a href=\"addcomment.php?iAppId=$oRow->appId&iVersionId=$oRow->versionId\"><small>post new</small></a>] \n"; - echo " [<a href=\"addcomment.php?iAppId=$oRow->appId&iVersionId=$oRow->versionId&sSubject=". - urlencode("$subject")."&iThread=$oRow->commentId\"><small>reply to this</small></a>] \n"; + echo " [<a href=\"".$oM->makeUrl("add")."&iAppId=$this->iAppId&iVersionId=$this->iVersionId\"><small>post new</small></a>] \n"; + echo " [<a href=\"".$oM->makeUrl("add")."&iAppId=$this->iAppId&iVersionId=$this->iVersionId&sSubject=". + urlencode("$sSubject")."&iThread=$this->iCommentId\"><small>reply to this</small></a>] \n"; echo "</td></tr>\n"; - $oComment = new comment($oRow->commentId); // delete message button, for admins - if ($oComment->canEdit()) + if ($this->canEdit()) { - $oVersion = new version($oRow->versionId); echo "<tr>"; echo "<td><form method=\"post\" name=\"sMessage\" action=\"".BASE."objectManager.php\"><input type=\"submit\" value=\"Delete\" class=\"button\">\n"; - echo "<input type=\"hidden\" name=\"iId\" value=\"$oRow->commentId\" />"; + echo "<input type=\"hidden\" name=\"iId\" value=\"$this->iCommentId\" />"; echo "<input type=\"hidden\" name=\"sClass\" value=\"comment\" />"; echo "<input type=\"hidden\" name=\"bQueued\" value=\"false\" />"; echo "<input type=\"hidden\" name=\"sAction\" value=\"delete\" />"; @@ -474,7 +486,9 @@ class Comment { echo '<table width="100%" border="0" cellpadding="1" cellspacing="0">',"\n"; echo '<tr><td bgcolor="#C0C0C0" align="center"><table border="0" cellpadding="0" cellspacing="0"><tr bgcolor="#C0C0C0">',"\n"; - + + $oVersion = new version($versionId); + // message display mode changer if ($_SESSION['current']->isLoggedIn()) { @@ -482,7 +496,6 @@ class Comment { if (!empty($aClean['sCmode'])) $_SESSION['current']->setPref("comments:mode", $aClean['sCmode']); - $oVersion = new version($versionId); $sel[$_SESSION['current']->getPref("comments:mode", "threaded")] = 'selected'; echo '<td><form method="post" name="sMode" action="'. $oVersion->objectMakeUrl().'">',"\n"; @@ -498,9 +511,15 @@ class Comment { // blank space echo '<td> </td>',"\n"; - + + $oM = new objectManager("comment", "Add comment"); + $oM->setReturnTo($oVersion->objectMakeUrl()); + // post new message button - echo '<td><form method="post" name="sMessage" action="addcomment.php"><input type="submit" value="post new comment" class="button"> ',"\n"; + echo '<td><form method="post" name="sMessage" action="objectManager.php">'; + echo '<input type="hidden" name="sAction" value="add" />'; + echo $oM->makeUrlFormData(); + echo '<input type="submit" value="Post new comment" class="button"> ',"\n"; echo '<input type="hidden" name="iVersionId" value="'.$versionId.'"></form></td>',"\n"; //end comment format table @@ -541,6 +560,67 @@ class Comment { echo '</td></tr></table>',"\n"; } + function allowAnonymousSubmissions() + { + return TRUE; + } + + function objectGetCustomVars($sAction) + { + switch($sAction) + { + case "add": + return array("iThread", "iAppId", "iVersionId"); + + default: + return null; + } + } + + function outputEditor($aClean) + { + $sMesTitle = "<b>Post New Comment</b>"; + + if($aClean['iThread'] > 0) + { + $hResult = query_parameters("SELECT * FROM appComments WHERE commentId = '?'", + $aClean['iThread']); + $oRow = query_fetch_object($hResult); + if($oRow) + { + $sMesTitle = "<b>Replying To ...</b> $oRow->subject\n"; + echo html_frame_start($oRow->subject,500); + echo htmlify_urls($oRow->body), "<br /><br />\n"; + echo html_frame_end(); + } + } + + echo "<p align=\"center\">Enter your comment in the box below."; + echo "</br>Please do not paste large terminal or debug outputs here.</p>"; + + echo html_frame_start($sMesTitle,500,"",0); + + echo '<table width="100%" border=0 cellpadding=0 cellspacing=1>',"\n"; + echo "<tr class=\"color0\"><td align=right><b>From:</b> </td>\n"; + echo " <td> ".$_SESSION['current']->sRealname."</td></tr>\n"; + echo "<tr class=\"color0\"><td align=right><b>Subject:</b> </td>\n"; + echo " <td> <input type=\"text\" size=\"35\" name=\"sSubject\" value=\"".$this->sSubject."\" /> </td></tr>\n"; + echo "<tr class=\"color1\"><td colspan=2><textarea name=\"sBody\" cols=\"70\" rows=\"15\" wrap=\"virtual\">".$this->sBody."</textarea></td></tr>\n"; + + echo "</table>\n"; + + echo html_frame_end(); + + echo "<input type=\"hidden\" name=\"iThread\" value=\"".$aClean['iThread']."\" />\n"; + echo "<input type=\"hidden\" name=\"iAppId\" value=\"".$aClean['iAppId']."\" />\n"; + echo "<input type=\"hidden\" name=\"iVersionId\" value=\"".$aClean['iVersionId']."\" />\n"; + } + + function objectShowPreview() + { + return TRUE; + } + function objectMakeUrl() { $oVersion = new version($this->iVersionId);
participants (1)
-
Chris Morgan