/** * 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; }
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(); }
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); }