/** * 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(); }