function GetDiscussion(&$Context, $Discussion, $FirstRow = "0") { // Prefix the discussion name with the whispered-to username if this is a whisper if ($Discussion->WhisperUserID > 0) { $Discussion->Name = @$Discussion->WhisperUsername . ": " . $Discussion->Name; } $UnreadQS = $Context->Session->User->Settings['comments_order'] == 'asc' ? GetUnreadQuerystring($Discussion) : ''; $LastQS = $Context->Session->User->Settings['comments_order'] == 'asc' ? GetLastCommentQuerystring($Discussion) : ''; $sReturn = "<dl class=\"Discussion" . $Discussion->Status . ($FirstRow ? " FirstDiscussion" : "") . ($Discussion->CountComments == 1 ? " NoReplies" : "") . (agUSE_CATEGORIES ? " Category_" . $Discussion->CategoryID : "") . "\">\r\n\t\t<dt class=\"DataItemLabel DiscussionTopicLabel\">" . $Context->GetDefinition("DiscussionTopic") . "</dt>\r\n\t\t<dd class=\"DataItem DiscussionTopic\">" . DiscussionPrefix($Discussion) . "<a href=\"comments.php?DiscussionID=" . $Discussion->DiscussionID . ($Context->Session->User->Setting("JumpToLastReadComment", 1) ? $UnreadQS : "") . "\">" . $Discussion->Name . "</a></dd>"; if (agUSE_CATEGORIES) { $sReturn .= "\r\n\t\t\t<dt class=\"MetaItemLabel DiscussionInformationLabel DiscussionCategoryLabel\">" . $Context->GetDefinition("Category") . "</dt>\r\n\t\t\t<dd class=\"MetaItem DiscussionInformation DiscussionCategory\"><a href=\"./?CategoryID=" . $Discussion->CategoryID . "\">" . $Discussion->Category . "</a></dd>\r\n\t\t\t"; } $sReturn .= "<dt class=\"MetaItemLabel DiscussionInformationLabel StarterLabel\"><a href=\"./comments.php?DiscussionID=" . $Discussion->DiscussionID . "#Item_1\">" . $Context->GetDefinition("StartedBy") . "</a></dt>\r\n\t\t<dd class=\"MetaItem DiscussionInformation Starter\"><a href=\"./account.php?u=" . $Discussion->AuthUserID . "\">" . $Discussion->AuthUsername . "</a></dd>\r\n\t\t<dt class=\"MetaItemLabel DiscussionInformationLabel CommentCountLabel\">" . $Context->GetDefinition("Comments") . "</dt>\r\n\t\t<dd class=\"MetaItem DiscussionInformation CommentCount\">" . $Discussion->CountComments . "</dd>\r\n\t\t<dt class=\"MetaItemLabel DiscussionInformationLabel LastReplierLabel\"><a href=\"./comments.php?DiscussionID=" . $Discussion->DiscussionID . $LastQS . "\">" . $Context->GetDefinition("LastCommentBy") . "</a></dt>\r\n\t\t<dd class=\"MetaItem DiscussionInformation LastReplier\"><a href=\"./account.php?u=" . $Discussion->LastUserID . "\">" . $Discussion->LastUsername . "</a></dd>\r\n\t\t<dt class=\"MetaItemLabel DiscussionInformationLabel LastActiveLabel\"><a href=\"./comments.php?DiscussionID=" . $Discussion->DiscussionID . $LastQS . "\">" . $Context->GetDefinition("LastActive") . "</a></dt>\r\n\t\t<dd class=\"MetaItem DiscussionInformation LastActive\">" . TimeDiff($Discussion->DateLastActive, mktime()) . "</dd>"; if ($Context->Session->UserID > 0) { $sReturn .= "<dt class=\"MetaItemLabel DiscussionInformationLabel NewCommentCountLabel" . ($Discussion->NewComments > 0 ? " NewCommentsPresentLabel" : "") . "\"><a href=\"comments.php?DiscussionID=" . $Discussion->DiscussionID . $UnreadQS . "\">" . $Context->GetDefinition("New") . "</a></dt>\r\n\t\t\t<dd class=\"MetaItem DiscussionInformation NewCommentCount" . ($Discussion->NewComments > 0 ? " NewCommentsPresent" : "") . "\"><a href=\"comments.php?DiscussionID=" . $Discussion->DiscussionID . $UnreadQS . "\">" . $Discussion->NewComments . "</a></dd>"; } $sReturn .= "</dl>\n"; return $sReturn; }
<?php // Note: This file is included from the library/Vanilla/Vanilla.Control.SearchForm.php // class and also from the library/Vanilla/Vanilla.Control.DiscussionForm.php's // themes/discussions.php include template. $UnreadUrl = GetUnreadQuerystring($Discussion, $this->Context->Configuration, $CurrentUserJumpToLastCommentPref); $NewUrl = GetUnreadQuerystring($Discussion, $this->Context->Configuration, 1); $LastUrl = GetLastCommentQuerystring($Discussion, $this->Context->Configuration, $CurrentUserJumpToLastCommentPref); $this->DelegateParameters['Discussion'] =& $Discussion; $this->DelegateParameters['DiscussionList'] =& $DiscussionList; $DiscussionList .= ' <li id="Discussion_' . $Discussion->DiscussionID . '" class="Discussion' . $Discussion->Status . ($Discussion->CountComments == 1 ? ' NoReplies' : '') . ($this->Context->Configuration['USE_CATEGORIES'] ? ' Category_' . $Discussion->CategoryID : '') . ($Alternate ? ' Alternate' : '') . '">'; $this->CallDelegate('PreDiscussionOptionsRender'); $DiscussionList .= '<ul> <li class="DiscussionType"> <span>' . $this->Context->GetDefinition('DiscussionType') . '</span>' . DiscussionPrefix($this->Context, $Discussion) . ' </li> <li class="DiscussionTopic"> <span>' . $this->Context->GetDefinition('DiscussionTopic') . '</span><a href="' . $UnreadUrl . '">' . $Discussion->Name . '</a> </li> '; if ($this->Context->Configuration['USE_CATEGORIES']) { $DiscussionList .= ' <li class="DiscussionCategory"> <span>' . $this->Context->GetDefinition('Category') . ' </span><a href="' . GetUrl($this->Context->Configuration, 'index.php', '', 'CategoryID', $Discussion->CategoryID) . '">' . $Discussion->Category . '</a> </li> '; } $DiscussionList .= '<li class="DiscussionStarted"> <span><a href="' . GetUrl($this->Context->Configuration, 'comments.php', '', 'DiscussionID', $Discussion->DiscussionID, '', '#Item_1', CleanupString($Discussion->Name) . '/') . '">' . $this->Context->GetDefinition('StartedBy') . '</a> </span><a href="' . GetUrl($this->Context->Configuration, 'account.php', '', 'u', $Discussion->AuthUserID) . '">' . $Discussion->AuthUsername . '</a> </li>
function AddDiscussionsToPanel(&$Context, &$Panel, $DataManager, $GetDataMethod, $MaxRecords, $ListTitle, $UrlAction, $PermissionRequirement) { if ($PermissionRequirement && $Context->Session->UserID > 0) { $Data = $DataManager->{$GetDataMethod}($Context->Session->UserID, $MaxRecords); $ActualRecords = $Context->Database->RowCount($Data); if ($ActualRecords > 0) { $Panel->AddList($ListTitle, 21); $Discussion = $Context->ObjectFactory->NewContextObject($Context, "Discussion"); while ($Row = $Context->Database->GetRow($Data)) { $Discussion->Clear(); $Discussion->GetPropertiesFromDataSet($Row, $Context->Configuration); $Discussion->FormatPropertiesForDisplay(); $Suffix = ""; if ($Discussion->NewComments > 0) { $Suffix .= str_replace('//1', $Discussion->NewComments, $Context->GetDefinition("XNew")); } $Panel->AddListItem($ListTitle, $Discussion->Name, GetUnreadQuerystring($Discussion, $Context->Configuration, $Context->Session->User->Preference('JumpToLastReadComment')), $Suffix); } if ($ActualRecords >= $MaxRecords) { $Panel->AddListItem($ListTitle, $Context->GetDefinition("ShowAll"), GetUrl($Context->Configuration, "index.php", "", "", "", "", "View=" . $UrlAction)); } } } }