/**
  * 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']);
     }
 }
Example #3
0
 /**
  * @test
  */
 public function setManualDateStopForNoArgumentSetsManualDateStop()
 {
     $this->subject->setManualDateStop();
     $this->assertAttributeEquals(NULL, 'manualDateStop', $this->subject);
 }