예제 #1
0
 /**
  * Get recent activity for a repository
  *
  * @param Repository $repository
  * @param int $from_days_before
  * @return array
  */
 function getRecentActivity($repository, $from_days_before = 15)
 {
     $from = new DateTimeValue($from_days_before - 1 . ' days ago');
     $last_commit = $repository->getLastcommit();
     $beginning_of_day = $from->beginningOfDay();
     $max_commits = Commits::count(array("parent_id = ? AND created_on >= ? GROUP BY DAY(created_on) ORDER BY row_count DESC LIMIT 1", $repository->getId(), $beginning_of_day));
     $from_days_before--;
     for ($i = $from_days_before; $i >= 0; $i--) {
         $date = new DateTimeValue($i . 'days ago');
         $this_date_beginning = $date->beginningOfDay();
         $this_date_end = $date->endOfDay();
         $commits_count = Commits::count(array("parent_id = ? AND created_on >= ? AND created_on <= ?", $repository->getId(), $this_date_beginning, $this_date_end));
         $activity[$i]['commits'] = $commits_count;
         $activity[$i]['created_on'] = date('F d, Y', $date->getTimestamp());
         $activity[$i]['percentage'] = round($commits_count * 100 / $max_commits);
     }
     return $activity;
 }
예제 #2
0
 function getRangeContactsByBirthday($from, $to, $tags = '', $project = null)
 {
     if (!$from instanceof DateTimeValue || !$to instanceof DateTimeValue || $from->getTimestamp() > $to->getTimestamp()) {
         return array();
     }
     $from = new DateTimeValue($from->getTimestamp());
     $from->beginningOfDay();
     $to = new DateTimeValue($to->getTimestamp());
     $to->endOfDay();
     $year1 = $from->getYear();
     $year2 = $to->getYear();
     if ($year1 == $year2) {
         $condition = 'DAYOFYEAR(`birthday`) >= DAYOFYEAR(' . DB::escape($from) . ')' . ' AND DAYOFYEAR(`birthday`) <= DAYOFYEAR(' . DB::escape($to) . ')';
     } else {
         if ($year2 - $year1 == 1) {
             $condition = 'DAYOFYEAR(`birthday`) >= DAYOFYEAR(' . DB::escape($from) . ')' . ' OR DAYOFYEAR(`birthday`) <= DAYOFYEAR(' . DB::escape($to) . ')';
         } else {
             $condition = "`birthday` <> '0000-00-00 00:00:00'";
         }
     }
     return $this->getAllowedContacts($condition);
 }
 /**
  * This function will return true if this day is today
  *
  * @param integer $offset
  * @return boolean
  */
 function isToday($offset = null)
 {
     $today = new DateTimeValue(time() + $offset);
     $today->beginningOfDay();
     return $this->getDay() == $today->getDay() && $this->getMonth() == $today->getMonth() && $this->getYear() == $today->getYear();
 }
예제 #4
0
 function getRangeContactsByBirthday($from, $to, $member_ids = null)
 {
     if (!$from instanceof DateTimeValue || !$to instanceof DateTimeValue || $from->getTimestamp() > $to->getTimestamp()) {
         return array();
     }
     $from = new DateTimeValue($from->getTimestamp());
     $from->beginningOfDay();
     $to = new DateTimeValue($to->getTimestamp());
     $to->endOfDay();
     $year1 = $from->getYear();
     $year2 = $to->getYear();
     if ($year1 == $year2) {
         $condition = 'DAYOFYEAR(`birthday`) >= DAYOFYEAR(' . DB::escape($from) . ')' . ' AND DAYOFYEAR(`birthday`) <= DAYOFYEAR(' . DB::escape($to) . ')';
     } else {
         if ($year2 - $year1 == 1) {
             $condition = '(DAYOFYEAR(`birthday`) >= DAYOFYEAR(' . DB::escape($from) . ')' . ' OR DAYOFYEAR(`birthday`) <= DAYOFYEAR(' . DB::escape($to) . '))';
         } else {
             $condition = "`birthday` <> '0000-00-00 00:00:00'";
         }
     }
     if (!is_null($member_ids) && count($member_ids) > 0) {
         $condition .= " AND object_id IN (SELECT om.object_id FROM " . TABLE_PREFIX . "object_members om WHERE om.member_id IN (" . implode(',', $member_ids) . "))";
     }
     return $this->getAllowedContacts($condition);
 }