/**
  * 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
 }