/** * Return number of new objects in $project_ids since $since * * @param DateTimeValue $since * @param array $project_ids * @param array $exclude * @param integer $min_state * @param integer $min_visibility * @return integer */ function countNew($user) { $type_filter = ProjectUsers::getVisibleTypesFilter($user, array(PROJECT_STATUS_ACTIVE, PROJECT_STATUS_PAUSED, PROJECT_STATUS_CANCELED, PROJECT_STATUS_COMPLETED)); if ($type_filter) { $exclude = ProjectObjectViews::findViewedObjectIds($user); $last_visit_on = $user->getLastVisitOn(); if (!instance_of($last_visit_on, 'DateTimeValue')) { $last_visit_on = new DateTimeValue(filemtime(ENVIRONMENT_PATH . '/config/config.php')); } // if $month_ago = new DateTimeValue('-30 days'); // Last visit or last month $since = $last_visit_on->getTimestamp() > $month_ago->getTimestamp() ? $last_visit_on : $month_ago; if ($exclude) { return ProjectObjects::count(array($type_filter . ' AND state >= ? AND visibility >= ? AND created_on >= ? AND created_by_id != ? AND id NOT IN (?)', STATE_VISIBLE, $user->getVisibility(), $since, $user->getId(), $exclude)); } else { return ProjectObjects::count(array($type_filter . ' AND state >= ? AND visibility >= ? AND created_on >= ? AND created_by_id != ? ', STATE_VISIBLE, $user->getVisibility(), $since, $user->getid())); } // if } else { return 0; } // if }