Exemple #1
0
 /**
  * Creates virtual 'Comments' method in ProfileController.
  * 
  * @since 2.0.0
  * @package Vanilla
  *
  * @param object $Sender ProfileController.
  */
 public function ProfileController_Comments_Create(&$Sender)
 {
     $View = $Sender->View;
     $UserReference = ArrayValue(0, $Sender->RequestArgs, '');
     $Username = ArrayValue(1, $Sender->RequestArgs, '');
     $Offset = ArrayValue(2, $Sender->RequestArgs, 0);
     // Tell the ProfileController what tab to load
     $Sender->GetUserInfo($UserReference, $Username);
     $Sender->SetTabView('Comments', 'profile', 'Discussion', 'Vanilla');
     // Load the data for the requested tab.
     if (!is_numeric($Offset) || $Offset < 0) {
         $Offset = 0;
     }
     $Limit = Gdn::Config('Vanilla.Discussions.PerPage', 30);
     $CommentModel = new CommentModel();
     $Sender->CommentData = $CommentModel->GetByUser($Sender->User->UserID, $Limit, $Offset);
     $CountComments = $Offset + $Sender->CommentData->NumRows();
     if ($Sender->CommentData->NumRows() == $Limit) {
         $CountComments = $Offset + $Limit + 1;
     }
     // Build a pager
     $PagerFactory = new Gdn_PagerFactory();
     $Sender->Pager = $PagerFactory->GetPager('MorePager', $Sender);
     $Sender->Pager->MoreCode = 'More Comments';
     $Sender->Pager->LessCode = 'Newer Comments';
     $Sender->Pager->ClientID = 'Pager';
     $Sender->Pager->Configure($Offset, $Limit, $CountComments, 'profile/comments/' . $Sender->User->UserID . '/' . Gdn_Format::Url($Sender->User->Name) . '/%1$s/');
     // Deliver JSON data if necessary
     if ($Sender->DeliveryType() != DELIVERY_TYPE_ALL && $Offset > 0) {
         $Sender->SetJson('LessRow', $Sender->Pager->ToString('less'));
         $Sender->SetJson('MoreRow', $Sender->Pager->ToString('more'));
         $Sender->View = 'profilecomments';
     }
     $Sender->Offset = $Offset;
     // Set the HandlerType back to normal on the profilecontroller so that it fetches it's own views
     $Sender->HandlerType = HANDLER_TYPE_NORMAL;
     // Do not show discussion options
     $Sender->ShowOptions = FALSE;
     // Render the ProfileController
     $Sender->Render();
 }