/** * Calculate the start- and end timestamp from the different time selector options * * @param \TYPO3\CMS\Belog\Domain\Model\Constraint $constraint * @return void */ protected function setStartAndEndTimeFromTimeSelector(\TYPO3\CMS\Belog\Domain\Model\Constraint $constraint) { $startTime = 0; $endTime = $GLOBALS['EXEC_TIME']; // @TODO: Refactor this construct switch ($constraint->getTimeFrame()) { case self::TIMEFRAME_THISWEEK: // This week $week = (date('w') ?: 7) - 1; $startTime = mktime(0, 0, 0) - $week * 3600 * 24; break; case self::TIMEFRAME_LASTWEEK: // Last week $week = (date('w') ?: 7) - 1; $startTime = mktime(0, 0, 0) - ($week + 7) * 3600 * 24; $endTime = mktime(0, 0, 0) - $week * 3600 * 24; break; case self::TIMEFRAME_LASTSEVENDAYS: // Last 7 days $startTime = mktime(0, 0, 0) - 7 * 3600 * 24; break; case self::TIMEFRAME_THISMONTH: // This month $startTime = mktime(0, 0, 0, date('m'), 1); break; case self::TIMEFRAME_LASTMONTH: // Last month $startTime = mktime(0, 0, 0, date('m') - 1, 1); $endTime = mktime(0, 0, 0, date('m'), 1); break; case self::TIMEFRAME_LAST31DAYS: // Last 31 days $startTime = mktime(0, 0, 0) - 31 * 3600 * 24; break; case self::TIMEFRAME_CUSTOM: if ($constraint->getManualDateStart() instanceof \DateTime) { $startTime = $constraint->getManualDateStart()->format('U'); if ($constraint->getManualDateStop() instanceof \DateTime) { $manualEndTime = $constraint->getManualDateStop()->format('U'); if ($manualEndTime > $startTime) { $endTime = $manualEndTime; } } else { $endTime = $GLOBALS['EXEC_TIME']; } } break; default: } $constraint->setStartTimestamp($startTime); $constraint->setEndTimestamp($endTime); }
/** * Adds users and groups to the query constraints. * * @param \TYPO3\CMS\Belog\Domain\Model\Constraint $constraint * @param \TYPO3\CMS\Extbase\Persistence\QueryInterface $query * @param array &$queryConstraints the query constraints to add to, will be modified * @return void */ protected function addUsersAndGroupsToQueryConstraints(\TYPO3\CMS\Belog\Domain\Model\Constraint $constraint, \TYPO3\CMS\Extbase\Persistence\QueryInterface $query, array &$queryConstraints) { $userOrGroup = $constraint->getUserOrGroup(); if ($userOrGroup === '') { return; } // Constraint for a group if (substr($userOrGroup, 0, 3) === 'gr-') { $groupId = (int) substr($userOrGroup, 3); $userIds = array(); foreach ($this->beUserList as $userId => $userData) { if (\TYPO3\CMS\Core\Utility\GeneralUtility::inList($userData['usergroup_cached_list'], $groupId)) { $userIds[] = $userId; } } if (!empty($userIds)) { $queryConstraints[] = $query->in('userid', $userIds); } else { // If there are no group members -> use -1 as constraint to not find anything $queryConstraints[] = $query->in('userid', array(-1)); } } elseif (substr($userOrGroup, 0, 3) === 'us-') { $queryConstraints[] = $query->equals('userid', (int) substr($userOrGroup, 3)); } elseif ($userOrGroup === '-1') { $queryConstraints[] = $query->equals('userid', (int) $GLOBALS['BE_USER']->user['uid']); } }
/** * @test */ public function setManualDateStopForNoArgumentSetsManualDateStop() { $this->subject->setManualDateStop(); $this->assertAttributeEquals(NULL, 'manualDateStop', $this->subject); }