public function getWhere($Where = [], $orderFields = '', $orderDirection = '', $Limit = false, $Offset = false)
{
if (is_string($Where)) {
deprecated('ActivityModel->getWhere($key, $value)', 'ActivityModel->getWhere([$key => $value])');
$Where = [$Where => $orderFields];
$orderFields = '';
}
if (is_numeric($orderFields)) {
deprecated('ActivityModel->getWhere($where, $limit)');
$Limit = $orderFields;
$orderFields = '';
}
if (is_numeric($orderDirection)) {
deprecated('ActivityModel->getWhere($where, $limit, $offset)');
$Offset = $orderDirection;
$orderDirection = '';
}
$Limit = $Limit ?: 30;
$Offset = $Offset ?: 0;
$orderFields = $orderFields ?: 'a.DateUpdated';
$orderDirection = $orderDirection ?: 'desc';
// Add the basic activity query.
$this->SQL->select('a2.*')->select('t.FullHeadline, t.ProfileHeadline, t.AllowComments, t.ShowIcon, t.RouteCode')->select('t.Name', '', 'ActivityType')->from('Activity a')->join('Activity a2', 'a.ActivityID = a2.ActivityID')->join('ActivityType t', 'a2.ActivityTypeID = t.ActivityTypeID');
// Add prefixes to the where.
foreach ($Where as $Key => $Value) {
if (strpos($Key, '.') === false) {
$Where['a.' . $Key] = $Value;
unset($Where[$Key]);
}
}
$Result = $this->SQL->where($Where)->orderBy($orderFields, $orderDirection)->limit($Limit, $Offset)->get();
self::getUsers($Result->resultArray());
Gdn::userModel()->joinUsers($Result->resultArray(), ['ActivityUserID', 'RegardingUserID'], ['Join' => ['Name', 'Email', 'Gender', 'Photo']]);
$this->calculateData($Result->resultArray());
$this->EventArguments['Data'] =& $Result;
$this->fireEvent('AfterGet');
return $Result;
}