/** * Check if the index or one of the given indices is on the given day * * @param \DateTime $day * @param Index $index * @param array $indices * * @return bool */ public function render(\DateTime $day, Index $index = null, $indices = []) { foreach ($indices as $idx) { /** @var $idx Index */ if ($idx->getStartDate()->format('d.m.Y') === $day->format('d.m.Y')) { return true; } } if ($index instanceof Index) { return $index->getStartDate()->format('d.m.Y') === $day->format('d.m.Y'); } return false; }
/** * Check if the index or one of the given indices is on the given day * * @param \DateTime $day * @param Index $index * @param array $indices * * @return bool */ public function render(\DateTime $day, Index $index = NULL, $indices = array()) { foreach ($indices as $idx) { /** @var $idx Index */ if ($idx->getStartDate()->format('d.m.Y') === $day->format('d.m.Y')) { return TRUE; } } if ($index instanceof Index) { return $index->getStartDate()->format('d.m.Y') === $day->format('d.m.Y'); } return FALSE; }
/** * Check if the Index is part of the range * * @param Index $index * @param \DateTime $rangeStart * @param \DateTime $rangeEnd * * @see IndexRepository::addTimeFrameConstraints * * @return bool */ public static function isIndexInRange($index, \DateTime $rangeStart, \DateTime $rangeEnd) { $indexStart = $index->getStartDateComplete(); $indexEnd = $index->getEndDateComplete(); // start in if ($indexStart >= $rangeStart && $indexStart <= $rangeEnd) { return true; } // end in if ($indexEnd >= $rangeStart && $indexEnd <= $rangeEnd) { return true; } // around range if ($indexStart <= $rangeStart && $indexEnd >= $rangeEnd) { return true; } return false; }
/** * Find by traversing information * * @param Index $index * @param bool|true $future * @param bool|false $past * @param int $limit * @param string $sort * * @return array|\TYPO3\CMS\Extbase\Persistence\QueryResultInterface */ public function findByTraversing(Index $index, $future = true, $past = false, $limit = 100, $sort = QueryInterface::ORDER_ASCENDING) { if (!$future && !$past) { return []; } $query = $this->createQuery(); $now = DateTimeUtility::getNow()->getTimestamp(); $constraints = []; $constraints[] = $query->logicalNot($query->equals('uid', $index->getUid())); $constraints[] = $query->equals('foreignTable', $index->getForeignTable()); $constraints[] = $query->equals('foreignUid', $index->getForeignUid()); if (!$future) { $constraints[] = $query->lessThanOrEqual('startDate', $now); } if (!$past) { $constraints[] = $query->greaterThanOrEqual('startDate', $now); } $query->setLimit($limit); $sort = $sort === QueryInterface::ORDER_ASCENDING ? QueryInterface::ORDER_ASCENDING : QueryInterface::ORDER_DESCENDING; $query->setOrderings($this->getSorting($sort)); return $this->matchAndExecute($query, $constraints); }
/** * Render the link to the given index * * @param Index $index * @param int $pageUid * * @return string */ public function render(Index $index, $pageUid = NULL) { $additionalParams = array('tx_calendarize_calendar' => array('index' => $index->getUid())); return parent::render($this->getPageUid($pageUid, 'detailPid'), $additionalParams); }
/** * @param string $base * @param Index $index * * @return string */ protected function generateRealUrl($base, Index $index) { $datePart = $index->isAllDay() ? 'Y-m-d' : 'Y-m-d-h-i'; /** @var \tx_realurl_advanced $realUrl */ $realUrl = GeneralUtility::makeInstance('tx_realurl_advanced'); $configuration = $GLOBALS['TYPO3_CONF_VARS']['EXTCONF']['realurl']['_DEFAULT']['pagePath']; if (is_array($configuration)) { ObjectAccess::setProperty($realUrl, 'conf', $configuration, true); } return $realUrl->encodeTitle($base . '-' . $index->getStartDateComplete()->format($datePart)); }
/** * Render the link to the given index * * @param Index $index * @param int $pageUid * * @return string */ public function render(Index $index, $pageUid = null) { $additionalParams = ['tx_calendarize_calendar' => ['index' => $index->getUid()]]; return parent::render($this->getPageUid($pageUid, 'detailPid'), $additionalParams); }