/**
* Default activity stream.
*
* @since 2.0.0
* @access public
*
* @param int $Offset Number of activity items to skip.
*/
public function index($Filter = false, $Page = false)
{
switch (strtolower($Filter)) {
case 'mods':
$this->title(t('Recent Moderator Activity'));
$this->permission('Garden.Moderation.Manage');
$NotifyUserID = ActivityModel::NOTIFY_MODS;
break;
case 'admins':
$this->title(t('Recent Admin Activity'));
$this->permission('Garden.Settings.Manage');
$NotifyUserID = ActivityModel::NOTIFY_ADMINS;
break;
case '':
case 'feed':
// rss feed
$Filter = 'public';
$this->title(t('Recent Activity'));
$this->permission('Garden.Activity.View');
$NotifyUserID = ActivityModel::NOTIFY_PUBLIC;
break;
default:
throw notFoundException();
}
// Which page to load
list($Offset, $Limit) = offsetLimit($Page, c('Garden.Activities.PerPage', 30));
$Offset = is_numeric($Offset) ? $Offset : 0;
if ($Offset < 0) {
$Offset = 0;
}
// Page meta.
$this->addJsFile('activity.js');
$this->addJsFile('spoilers.js');
$this->addCssFile('spoilers.css');
if ($this->Head) {
$this->Head->addRss(url('/activity/feed.rss', true), $this->Head->title());
}
// Comment submission
$Session = Gdn::session();
$Comment = $this->Form->getFormValue('Comment');
$Activities = $this->ActivityModel->getWhere(array('NotifyUserID' => $NotifyUserID), '', '', $Limit, $Offset)->resultArray();
$this->ActivityModel->joinComments($Activities);
$this->setData('Filter', strtolower($Filter));
$this->setData('Activities', $Activities);
$this->addModule('ActivityFilterModule');
$this->View = 'all';
$this->render();
}