/** * Add 'Quote' option to Discussion. */ public function base_AfterFlag_handler($Sender, $Args) { echo Gdn_Theme::BulletItem('Flags'); $this->addQuoteButton($Sender, $Args); }
/** * Output Quote link. */ protected function addQuoteButton($Sender, $Args) { if (!Gdn::session()->UserID) { return; } if (isset($Args['Comment'])) { $Object = $Args['Comment']; $ObjectID = 'Comment_' . $Args['Comment']->CommentID; } elseif (isset($Args['Discussion'])) { $Object = $Args['Discussion']; $ObjectID = 'Discussion_' . $Args['Discussion']->DiscussionID; } else { return; } echo Gdn_Theme::BulletItem('Flags'); echo anchor(sprite('ReactQuote', 'ReactSprite') . ' ' . t('Quote'), url("post/quote/{$Object->DiscussionID}/{$ObjectID}", true), 'ReactButton Quote Visible') . ' '; }
/** * Add 'Twitter' option to the row. */ public function Base_AfterReactions_Handler($Sender, $Args) { if (!$this->SocialReactions()) { return; } echo Gdn_Theme::BulletItem('Share'); $this->AddReactButton($Sender, $Args); }
function writeReactions($Row) { $Attributes = GetValue('Attributes', $Row); if (is_string($Attributes)) { $Attributes = @unserialize($Attributes); SetValue('Attributes', $Row, $Attributes); } Gdn::Controller()->EventArguments['ReactionTypes'] = array(); if ($ID = GetValue('CommentID', $Row)) { $RecordType = 'comment'; } elseif ($ID = GetValue('ActivityID', $Row)) { $RecordType = 'activity'; } else { $RecordType = 'discussion'; $ID = GetValue('DiscussionID', $Row); } Gdn::Controller()->EventArguments['RecordType'] = $RecordType; Gdn::Controller()->EventArguments['RecordID'] = $ID; echo '<div class="Reactions">'; Gdn_Theme::BulletRow(); // Write the flags. static $Flags = null; if ($Flags === null) { Gdn::Controller()->EventArguments['Flags'] =& $Flags; Gdn::Controller()->FireEvent('Flags'); } // Allow addons to work with flags Gdn::Controller()->EventArguments['Flags'] =& $Flags; Gdn::Controller()->FireEvent('BeforeFlag'); if (!empty($Flags) && is_array($Flags)) { echo Gdn_Theme::BulletItem('Flags'); echo ' <span class="FlagMenu ToggleFlyout">'; // Write the handle. echo Anchor(Sprite('ReactFlag', 'ReactSprite') . ' ' . Wrap(T('Flag'), 'span', array('class' => 'ReactLabel')), '', 'Hijack ReactButton-Flag FlyoutButton', array('title' => 'Flag'), true); echo Sprite('SpFlyoutHandle', 'Arrow'); echo '<ul class="Flyout MenuItems Flags" style="display: none;">'; foreach ($Flags as $Flag) { if (is_callable($Flag)) { echo '<li>' . call_user_func($Flag, $Row, $RecordType, $ID) . '</li>'; } else { echo '<li>' . ReactionButton($Row, $Flag['UrlCode']) . '</li>'; } } Gdn::Controller()->FireEvent('AfterFlagOptions'); echo '</ul>'; echo '</span> '; } Gdn::Controller()->FireEvent('AfterFlag'); Gdn::Controller()->FireEvent('AfterReactions'); echo '</div>'; Gdn::Controller()->FireEvent('Replies'); }
<?php if (!defined('APPLICATION')) { exit; } $Session = Gdn::session(); ?> <div class="User" itemscope itemtype="http://schema.org/Person"> <h1 class="H"><?php echo htmlspecialchars($this->User->Name); echo '<span class="Gloss">'; Gdn_Theme::BulletRow(); if ($this->User->Title) { echo Gdn_Theme::BulletItem('Title'); echo ' ' . Bullet() . ' ' . Wrap(htmlspecialchars($this->User->Title), 'span', array('class' => 'User-Title')); } $this->fireEvent('UsernameMeta'); echo '</span>'; ?> </h1> <?php if ($this->User->Admin == 2) { echo '<div class="DismissMessage InfoMessage">', t('This is a system account and does not represent a real person.'), '</div>'; } if ($this->User->About != '') { echo '<div id="Status" itemprop="description">' . Wrap(Gdn_Format::Display($this->User->About)); if ($this->User->About != '' && ($Session->UserID == $this->User->UserID || $Session->checkPermission('Garden.Users.Edit'))) { echo ' - ' . anchor(t('clear'), '/profile/clear/' . $this->User->UserID, 'Hijack'); } echo '</div>'; }
function WriteReactions($Row) { list($RecordType, $RecordID) = RecordType($Row); Gdn::Controller()->EventArguments['RecordType'] = strtolower($RecordType); Gdn::Controller()->EventArguments['RecordID'] = $RecordID; echo '<div class="Reactions">'; Gdn_Theme::BulletRow(); // Write the flags. static $Flags = NULL; // Allow addons to work with flags menu Gdn::Controller()->EventArguments['Flags'] =& $Flags; Gdn::Controller()->FireEvent('BeforeFlag'); if (!empty($Flags)) { echo Gdn_Theme::BulletItem('Flags'); echo ' <span class="FlagMenu ToggleFlyout">'; // Write the handle. echo Anchor(Sprite('ReactFlag', 'ReactSprite') . ' ' . Wrap(T('Flag'), 'span', array('class' => 'ReactLabel')), '', 'Hijack ReactButton-Flag FlyoutButton', array('title' => 'Flag'), TRUE); echo Sprite('SpFlyoutHandle', 'Arrow'); echo '<ul class="Flyout MenuItems Flags" style="display: none;">'; Gdn::Controller()->FireEvent('AfterFlagOptions'); echo '</ul>'; echo '</span> '; } Gdn::Controller()->FireEvent('AfterFlag'); Gdn::Controller()->FireEvent('AfterReactions'); echo '</div>'; Gdn::Controller()->FireEvent('Replies'); }
/** * Output Quote link. */ protected function addQuoteButton($Sender, $Args) { if (!isset($Args['Discussion'])) { return; } $session = Gdn::session(); if (!$session->UserID) { return; } if (!$session->checkPermission('Vanilla.Comments.Add', false, 'Category', $Args['Discussion']->PermissionCategoryID)) { return; } if (isset($Args['Comment'])) { $Object = $Args['Comment']; $ObjectID = 'Comment_' . $Args['Comment']->CommentID; } elseif (isset($Args['Discussion'])) { $Object = $Args['Discussion']; $ObjectID = 'Discussion_' . $Args['Discussion']->DiscussionID; } else { return; } echo Gdn_Theme::BulletItem('Flags'); echo anchor(sprite('ReactQuote', 'ReactSprite') . ' ' . t('Quote'), url("post/quote/{$Object->DiscussionID}/{$ObjectID}", true), 'ReactButton Quote Visible') . ' '; }