function WriteComment($Comment, &$Sender, &$Session, $CurrentOffset) { $Author = UserBuilder($Comment, 'Insert'); $Sender->EventArguments['Comment'] =& $Comment; $Sender->Options = ''; $CssClass = 'Item Comment'; $CssClass .= $Comment->InsertUserID == $Session->UserID ? ' Mine' : ''; ?> <li class="<?php echo $CssClass; ?> " id="Comment_<?php echo $Comment->CommentID; ?> "> <?php WriteOptions($Comment, $Sender, $Session); ?> <div class="Comment"> <div class="Meta"> <span class="Author"> <?php echo UserPhoto($Author); echo UserAnchor($Author); ?> </span> <span class="DateCreated"> <?php echo Format::Date($Comment->DateInserted); ?> </span> <span class="Permalink"> <?php echo Anchor(T('Permalink'), '/discussion/comment/' . $Comment->CommentID . '/#Comment_' . $Comment->CommentID, 'Permalink', array('name' => 'Item_' . $CurrentOffset)); ?> </span> <?php $Sender->FireEvent('AfterCommentMeta'); ?> </div> <div class="Message"><?php echo Format::To($Comment->Body, $Comment->Format); ?> </div> <?php $Sender->FireEvent('AfterCommentBody'); ?> </div> </li> <?php }
function WriteDiscussion($Discussion, &$Sender, &$Session, $Alt2) { static $Alt = FALSE; $CssClass = 'Item'; $CssClass .= $Discussion->Bookmarked == '1' ? ' Bookmarked' : ''; $CssClass .= $Alt ? ' Alt ' : ''; $Alt = !$Alt; $CssClass .= $Discussion->Announce == '1' ? ' Announcement' : ''; $CssClass .= $Discussion->Dismissed == '1' ? ' Dismissed' : ''; $CssClass .= $Discussion->InsertUserID == $Session->UserID ? ' Mine' : ''; $CssClass .= $Discussion->CountUnreadComments > 0 && $Session->IsValid() ? ' New' : ''; $DiscussionUrl = '/discussion/' . $Discussion->DiscussionID . '/' . Gdn_Format::Url($Discussion->Name) . ($Discussion->CountCommentWatch > 0 && C('Vanilla.Comments.AutoOffset') && $Session->UserID > 0 ? '/#Item_' . $Discussion->CountCommentWatch : ''); // $DiscussionUrl = $Discussion->Url; $Sender->EventArguments['DiscussionUrl'] =& $DiscussionUrl; $Sender->EventArguments['Discussion'] =& $Discussion; $Sender->EventArguments['CssClass'] =& $CssClass; $First = UserBuilder($Discussion, 'First'); $Last = UserBuilder($Discussion, 'Last'); $Sender->FireEvent('BeforeDiscussionName'); $DiscussionName = $Discussion->Name; if ($DiscussionName == '') { $DiscussionName = T('Blank Discussion Topic'); } $Sender->EventArguments['DiscussionName'] =& $DiscussionName; static $FirstDiscussion = TRUE; if (!$FirstDiscussion) { $Sender->FireEvent('BetweenDiscussion'); } else { $FirstDiscussion = FALSE; } ?> <li class="<?php echo $CssClass; ?> "> <?php if (!property_exists($Sender, 'CanEditDiscussions')) { $Sender->CanEditDiscussions = GetValue('PermsDiscussionsEdit', CategoryModel::Categories($Discussion->CategoryID)) && C('Vanilla.AdminCheckboxes.Use'); } $Sender->FireEvent('BeforeDiscussionContent'); WriteOptions($Discussion, $Sender, $Session); ?> <div class="ItemContent Discussion"> <?php echo Anchor($DiscussionName, $DiscussionUrl, 'Title'); ?> <?php $Sender->FireEvent('AfterDiscussionTitle'); ?> <div class="Meta"> <?php $Sender->FireEvent('BeforeDiscussionMeta'); ?> <?php if ($Discussion->Announce == '1') { ?> <span class="Tag Announcement"><?php echo T('Announcement'); ?> </span> <?php } ?> <?php if ($Discussion->Closed == '1') { ?> <span class="Tag Closed"><?php echo T('Closed'); ?> </span> <?php } ?> <span class="MItem CommentCount"><?php printf(Plural($Discussion->CountComments, '%s comment', '%s comments'), $Discussion->CountComments); if ($Session->IsValid() && $Discussion->CountUnreadComments > 0) { echo ' <strong class="HasNew">' . Plural($Discussion->CountUnreadComments, '%s new', '%s new plural') . '</strong>'; } ?> </span> <?php $Sender->FireEvent('AfterCountMeta'); if ($Discussion->LastCommentID != '') { echo ' <span class="MItem LastCommentBy">' . sprintf(T('Most recent by %1$s'), UserAnchor($Last)) . '</span> '; echo ' <span class="MItem LastCommentDate">' . Gdn_Format::Date($Discussion->LastDate) . '</span>'; } else { echo ' <span class="MItem LastCommentBy">' . sprintf(T('Started by %1$s'), UserAnchor($First)) . '</span> '; echo ' <span class="MItem LastCommentDate">' . Gdn_Format::Date($Discussion->FirstDate); if ($Source = GetValue('Source', $Discussion)) { echo ' ' . sprintf(T('via %s'), T($Source . ' Source', $Source)); } echo '</span> '; } if (C('Vanilla.Categories.Use') && $Discussion->CategoryUrlCode != '') { echo ' ' . Wrap(Anchor($Discussion->Category, '/categories/' . rawurlencode($Discussion->CategoryUrlCode)), 'span', array('class' => 'Tag Category')); } $Sender->FireEvent('DiscussionMeta'); ?> </div> </div> </li> <?php }
function WriteDiscussion($Discussion, &$Sender, &$Session, $Alt) { $CssClass = 'Item'; $CssClass .= $Discussion->Bookmarked == '1' ? ' Bookmarked' : ''; $CssClass .= $Discussion->Closed == '1' ? ' Closed' : ''; $CssClass .= $Alt . ' '; $CssClass .= $Discussion->Announce == '1' ? ' Announcement' : ''; $CssClass .= $Discussion->Dismissed == '1' ? ' Dismissed' : ''; $CssClass .= $Discussion->InsertUserID == $Session->UserID ? ' Mine' : ''; $CssClass .= $Discussion->CountUnreadComments > 0 && $Session->IsValid() ? ' New' : ''; $Sender->EventArguments['Discussion'] =& $Discussion; $First = UserBuilder($Discussion, 'First'); $Last = UserBuilder($Discussion, 'Last'); $Sender->FireEvent('BeforeDiscussionName'); $DiscussionName = Gdn_Format::Text($Discussion->Name); if ($DiscussionName == '') { $DiscussionName = T('Blank Discussion Topic'); } static $FirstDiscussion = TRUE; if (!$FirstDiscussion) { $Sender->FireEvent('BetweenDiscussion'); } else { $FirstDiscussion = FALSE; } ?> <li class="<?php echo $CssClass; ?> "> <?php $Sender->FireEvent('BeforeDiscussionContent'); WriteOptions($Discussion, $Sender, $Session); ?> <div class="ItemContent Discussion"> <?php echo Anchor($DiscussionName, '/discussion/' . $Discussion->DiscussionID . '/' . Gdn_Format::Url($Discussion->Name) . ($Discussion->CountCommentWatch > 0 && C('Vanilla.Comments.AutoOffset') ? '/#Item_' . $Discussion->CountCommentWatch : ''), 'Title'); ?> <?php $Sender->FireEvent('AfterDiscussionTitle'); ?> <div class="Meta"> <?php if ($Discussion->Announce == '1') { ?> <span class="Announcement"><?php echo T('Announcement'); ?> </span> <?php } ?> <?php if ($Discussion->Closed == '1') { ?> <span class="Closed"><?php echo T('Closed'); ?> </span> <?php } ?> <span class="CommentCount"><?php printf(Plural($Discussion->CountComments, '%s comment', '%s comments'), $Discussion->CountComments); ?> </span> <?php if ($Session->IsValid() && $Discussion->CountUnreadComments > 0) { echo '<strong>' . Plural($Discussion->CountUnreadComments, '%s New', '%s New Plural') . '</strong>'; } if ($Discussion->LastCommentID != '') { echo '<span class="LastCommentBy">' . sprintf(T('Most recent by %1$s'), UserAnchor($Last)) . '</span>'; echo '<span class="LastCommentDate">' . Gdn_Format::Date($Discussion->LastDate) . '</span>'; } else { echo '<span class="LastCommentBy">' . sprintf(T('Started by %1$s'), UserAnchor($First)) . '</span>'; echo '<span class="LastCommentDate">' . Gdn_Format::Date($Discussion->FirstDate) . '</span>'; } if (C('Vanilla.Categories.Use')) { echo Wrap(Anchor($Discussion->Category, '/categories/' . $Discussion->CategoryUrlCode, 'Category')); } $Sender->FireEvent('DiscussionMeta'); ?> </div> </div> <div class="clear"></div> </li> <?php }
function WriteDiscussion($Discussion, &$Sender, &$Session, $Alt) { $CssClass = 'Item'; $CssClass .= $Discussion->Bookmarked == '1' ? ' Bookmarked' : ''; $CssClass .= $Alt . ' '; $CssClass .= $Discussion->Announce == '1' ? ' Announcement' : ''; $CssClass .= $Discussion->InsertUserID == $Session->UserID ? ' Mine' : ''; $CountUnreadComments = $Discussion->CountComments - $Discussion->CountCommentWatch; $CssClass .= $CountUnreadComments > 0 && $Session->IsValid() ? ' New' : ''; $Sender->EventArguments['Discussion'] =& $Discussion; $Last = UserBuilder($Discussion, 'Last'); ?> <li class="<?php echo $CssClass; ?> "> <?php WriteOptions($Discussion, $Sender, $Session); ?> <div class="ItemContent Discussion"> <?php echo Anchor(Format::Text($Discussion->Name), '/discussion/' . $Discussion->DiscussionID . '/' . Format::Url($Discussion->Name) . ($Discussion->CountCommentWatch > 0 ? '/#Item_' . $Discussion->CountCommentWatch : ''), 'Title'); ?> <?php $Sender->FireEvent('AfterDiscussionTitle'); ?> <div class="Meta"> <?php if ($Discussion->Announce == '1') { ?> <span class="Announcement"><?php echo T('Announcement'); ?> </span> <?php } ?> <span><?php printf(Plural($Discussion->CountComments, '%s comment', '%s comments'), $Discussion->CountComments); ?> </span> <?php if ($CountUnreadComments > 0 && $Session->IsValid()) { echo '<strong>', sprintf(T('%s new'), $CountUnreadComments), '</strong>'; } ?> <span><?php printf(T('Most recent by %1$s %2$s'), UserAnchor($Last), Format::Date($Discussion->LastDate)); ?> </span> <span><?php echo Anchor($Discussion->Category, '/categories/' . $Discussion->CategoryUrlCode, 'Category'); ?> </span> <?php $Sender->FireEvent('DiscussionMeta'); ?> </div> </div> </li> <?php }
function WriteDiscussion($Discussion, &$Sender, &$Session, $Alt2) { static $Alt = FALSE; $CssClass = 'Item'; $CssClass .= $Discussion->Bookmarked == '1' ? ' Bookmarked' : ''; $CssClass .= $Alt ? ' Alt ' : ''; $Alt = !$Alt; $CssClass .= $Discussion->Announce == '1' ? ' Announcement' : ''; $CssClass .= $Discussion->Dismissed == '1' ? ' Dismissed' : ''; $CssClass .= $Discussion->InsertUserID == $Session->UserID ? ' Mine' : ''; $CssClass .= ($Discussion->CountUnreadComments > 0 && $Session->IsValid()) ? ' New' : ''; $DiscussionUrl = '/discussion/'.$Discussion->DiscussionID.'/'.Gdn_Format::Url($Discussion->Name).($Discussion->CountCommentWatch > 0 && C('Vanilla.Comments.AutoOffset') && $Session->UserID > 0 ? '/#Item_'.$Discussion->CountCommentWatch : ''); $Sender->EventArguments['DiscussionUrl'] = &$DiscussionUrl; $Sender->EventArguments['Discussion'] = &$Discussion; $Sender->EventArguments['CssClass'] = &$CssClass; $First = UserBuilder($Discussion, 'First'); $Last = UserBuilder($Discussion, 'Last'); $Sender->FireEvent('BeforeDiscussionName'); $DiscussionName = Gdn_Format::Text($Discussion->Name); if ($DiscussionName == '') $DiscussionName = T('Blank Discussion Topic'); $Sender->EventArguments['DiscussionName'] = &$DiscussionName; static $FirstDiscussion = TRUE; if (!$FirstDiscussion) $Sender->FireEvent('BetweenDiscussion'); else $FirstDiscussion = FALSE; ?> <li class="<?php echo $CssClass; ?>"> <?php $Sender->FireEvent('BeforeDiscussionContent'); WriteOptions($Discussion, $Sender, $Session); if (!property_exists($Sender, 'CanEditDiscussions')) $Sender->CanEditDiscussions = GetValue('PermsDiscussionsEdit', CategoryModel::Categories($Discussion->CategoryID)) && C('Vanilla.AdminCheckboxes.Use');; if ($Sender->CanEditDiscussions) { if (!property_exists($Sender, 'CheckedDiscussions')) { $Sender->CheckedDiscussions = (array)$Session->GetAttribute('CheckedDiscussions', array()); if (!is_array($Sender->CheckedDiscussions)) $Sender->CheckedDiscussions = array(); } $ItemSelected = in_array($Discussion->DiscussionID, $Sender->CheckedDiscussions); echo '<div class="Administration"><input type="checkbox" name="DiscussionID[]" value="'.$Discussion->DiscussionID.'"'.($ItemSelected?' checked="checked"':'').' /></div>'; } ?> <div class="ItemContent Discussion"> <?php echo Anchor($DiscussionName, $DiscussionUrl, 'Title'); ?> <?php $Sender->FireEvent('AfterDiscussionTitle'); ?> <div class="Meta"> <?php $Sender->FireEvent('BeforeDiscussionMeta'); ?> <?php if ($Discussion->Announce == '1') { ?> <span class="Announcement"><?php echo T('Announcement'); ?></span> <?php } ?> <?php if ($Discussion->Closed == '1') { ?> <span class="Closed"><?php echo T('Closed'); ?></span> <?php } ?> <span class="CommentCount"><?php printf(Plural($Discussion->CountComments, '%s comment', '%s comments'), $Discussion->CountComments); ?></span> <?php if ($Session->IsValid() && $Discussion->CountUnreadComments > 0) echo '<strong>'.Plural($Discussion->CountUnreadComments, '%s New', '%s New Plural').'</strong>'; $Sender->FireEvent('AfterCountMeta'); if ($Discussion->LastCommentID != '') { echo '<span class="LastCommentBy">'.sprintf(T('Most recent by %1$s'), UserAnchor($Last)).'</span>'; echo '<span class="LastCommentDate">'.Gdn_Format::Date($Discussion->LastDate).'</span>'; } else { echo '<span class="LastCommentBy">'.sprintf(T('Started by %1$s'), UserAnchor($First)).'</span>'; echo '<span class="LastCommentDate">'.Gdn_Format::Date($Discussion->FirstDate).'</span>'; } if (C('Vanilla.Categories.Use') && $Discussion->CategoryUrlCode != '') echo Wrap(Anchor($Discussion->Category, '/categories/'.$Discussion->CategoryUrlCode, 'Category')); $Sender->FireEvent('DiscussionMeta'); ?> </div> </div> </li> <?php }
function WriteDiscussion($Discussion, &$Sender, &$Session, $Alt) { $CssClass = 'Item'; $CssClass .= $Discussion->Bookmarked == '1' ? ' Bookmarked' : ''; $CssClass .= $Alt . ' '; $CssClass .= $Discussion->Announce == '1' ? ' Announcement' : ''; $CssClass .= $Discussion->InsertUserID == $Session->UserID ? ' Mine' : ''; $CountUnreadComments = $Discussion->CountUnreadComments; // Logic for incomplete comment count. if ($Discussion->CountCommentWatch == 0 && ($DateLastViewed = GetValue('DateLastViewed', $Discussion))) { if (Gdn_Format::ToTimestamp($DateLastViewed) >= Gdn_Format::ToTimestamp($Discussion->LastDate)) { $CountUnreadComments = 0; $Discussion->CountCommentWatch = $Discussion->CountComments; } else { $CountUnreadComments = ''; } } $CssClass .= $CountUnreadComments > 0 && $Session->IsValid() ? ' New' : ''; $Sender->EventArguments['Discussion'] =& $Discussion; $First = UserBuilder($Discussion, 'First'); $Last = UserBuilder($Discussion, 'Last'); ?> <li class="<?php echo $CssClass; ?> "> <?php WriteOptions($Discussion, $Sender, $Session); ?> <div class="ItemContent Discussion"> <?php echo Anchor(Gdn_Format::Text($Discussion->Name), '/discussion/' . $Discussion->DiscussionID . '/' . Gdn_Format::Url($Discussion->Name) . ($Discussion->CountCommentWatch > 0 ? '/#Item_' . $Discussion->CountCommentWatch : ''), 'Title'); ?> <?php $Sender->FireEvent('AfterDiscussionTitle'); ?> <div class="Meta"> <?php if ($Discussion->Announce == '1') { ?> <span class="Announcement"><?php echo T('Announcement'); ?> </span> <?php } ?> <?php if ($Discussion->Closed == '1') { ?> <span class="Closed"><?php echo T('Closed'); ?> </span> <?php } ?> <span><?php printf(Plural($Discussion->CountComments, '%s comment', '%s comments'), $Discussion->CountComments); ?> </span> <?php if ($CountUnreadComments > 0 || $CountUnreadComments === '' && $Session->IsValid()) { echo '<strong>', trim(sprintf(T('%s new'), $CountUnreadComments)), '</strong>'; } ?> <span><?php if ($Discussion->LastCommentID != '') { printf(T('Most recent by %1$s %2$s'), UserAnchor($Last), Gdn_Format::Date($Discussion->LastDate)); } else { printf(T('Started by %1$s %2$s'), UserAnchor($First), Gdn_Format::Date($Discussion->FirstDate)); } ?> </span> <span><?php echo Anchor($Discussion->Category, '/categories/' . $Discussion->CategoryUrlCode, 'Category'); ?> </span> <?php $Sender->FireEvent('DiscussionMeta'); ?> </div> </div> </li> <?php }
function WriteDiscussion($Discussion, &$Sender, &$Session, $Alt2) { static $Alt = FALSE; $CssClass = 'Item'; $CssClass .= $Discussion->Bookmarked == '1' ? ' Bookmarked' : ''; $CssClass .= $Alt ? ' Alt ' : ''; $Alt = !$Alt; $CssClass .= $Discussion->Announce == '1' ? ' Announcement' : ''; $CssClass .= $Discussion->Dismissed == '1' ? ' Dismissed' : ''; $CssClass .= $Discussion->InsertUserID == $Session->UserID ? ' Mine' : ''; $CssClass .= $Discussion->CountUnreadComments > 0 && $Session->IsValid() ? ' New' : ''; $DiscussionUrl = '/discussion/' . $Discussion->DiscussionID . '/' . Gdn_Format::Url($Discussion->Name) . ($Discussion->CountCommentWatch > 0 && C('Vanilla.Comments.AutoOffset') && $Session->UserID > 0 ? '/#Item_' . $Discussion->CountCommentWatch : ''); $Sender->EventArguments['DiscussionUrl'] =& $DiscussionUrl; $Sender->EventArguments['Discussion'] =& $Discussion; $Sender->EventArguments['CssClass'] =& $CssClass; $First = UserBuilder($Discussion, 'First'); $Last = UserBuilder($Discussion, 'Last'); $Sender->FireEvent('BeforeDiscussionName'); $DiscussionName = $Discussion->Name; if ($DiscussionName == '') { $DiscussionName = T('Blank Discussion Topic'); } $Sender->EventArguments['DiscussionName'] =& $DiscussionName; static $FirstDiscussion = TRUE; if (!$FirstDiscussion) { $Sender->FireEvent('BetweenDiscussion'); } else { $FirstDiscussion = FALSE; } ?> <li class="<?php echo $CssClass; ?> "> <?php if (!property_exists($Sender, 'CanEditDiscussions')) { $Sender->CanEditDiscussions = GetValue('PermsDiscussionsEdit', CategoryModel::Categories($Discussion->CategoryID)) && C('Vanilla.AdminCheckboxes.Use'); } $Sender->FireEvent('BeforeDiscussionContent'); WriteOptions($Discussion, $Sender, $Session); ?> <div class="ItemContent Discussion"> <?php echo Anchor($DiscussionName, $DiscussionUrl, 'Title'); ?> <?php $Sender->FireEvent('AfterDiscussionTitle'); ?> <!-- THIS INSERTS AND EXCERPT OF EACH POST --> <?php $Discussion = $Sender->EventArguments['Discussion']; $Body = $Discussion->Body; $end = strrpos($Body, "<hr"); if ($end) { $Body = substr($Body, 0, $end); } $Discussion->FormatBody = Gdn_Format::To($Body, $Discussion->Format); ?> <ul class="MessageList"> <li> <div class="Message"> <?php echo $Discussion->FormatBody; ?> </div> </li> <?php if ($end) { ?> <li> <a href="<?php echo Gdn::Request()->Url(ConcatSep("/", "discussion", $Discussion->DiscussionID, Gdn_Format::Url($Discussion->Name))); ?> " class="More"><?php echo T("Read more"); ?> </a> </li> <?php } ?> </ul> <!-- THIS IS THE END OF THE EXCERPT --> <div class="Meta"> <?php $Sender->FireEvent('BeforeDiscussionMeta'); ?> <?php if ($Discussion->Announce == '1') { ?> <span class="Announcement"><?php echo T('Announcement'); ?> </span> <?php } ?> <?php if ($Discussion->Closed == '1') { ?> <span class="Closed"><?php echo T('Closed'); ?> </span> <?php } ?> <span class="CommentCount"><?php printf(Plural($Discussion->CountComments, '%s comment', '%s comments'), $Discussion->CountComments); ?> </span> <?php if ($Session->IsValid() && $Discussion->CountUnreadComments > 0) { echo '<strong>' . Plural($Discussion->CountUnreadComments, '%s New', '%s New Plural') . '</strong>'; } $Sender->FireEvent('AfterCountMeta'); if ($Discussion->LastCommentID != '') { echo '<span class="LastCommentBy">' . sprintf(T('Most recent by %1$s'), UserAnchor($Last)) . '</span>'; echo '<span class="LastCommentDate">' . Gdn_Format::Date($Discussion->LastDate) . '</span>'; } else { echo '<span class="LastCommentBy">' . sprintf(T('Started by %1$s'), UserAnchor($First)) . '</span>'; echo '<span class="LastCommentDate">' . Gdn_Format::Date($Discussion->FirstDate); if ($Source = GetValue('Source', $Discussion)) { echo ' ' . sprintf(T('via %s'), T($Source . ' Source', $Source)); } echo '</span>'; } if (C('Vanilla.Categories.Use') && $Discussion->CategoryUrlCode != '') { echo Wrap(Anchor($Discussion->Category, '/categories/' . rawurlencode($Discussion->CategoryUrlCode), 'Category')); } $Sender->FireEvent('DiscussionMeta'); ?> </div> </div> </li> <?php }