/** * @param $segmentTime * @param Episode $episode * @return bool */ public static function isSegmentWithinEpisodeBounds($segmentTime, $episode) { $segmentDateTime = null; if ($segmentTime instanceof DateTime) { $segmentDateTime = $segmentTime; } else { $segmentDateTime = new DateTime("January 1, " . $segmentTime); } $segmentStartTimeInMinutes = self::getTimeInMinutesSinceMidnight($segmentDateTime); $episodeStartTime = $episode->getStartTime(); $episodeStartTimeInMinutes = self::getTimeInMinutesSinceMidnight($episodeStartTime); $episodeStartDay = $episodeStartTime->format('N'); $episodeEndTime = $episode->getEndTime(); $episodeEndTimeInMinutes = self::getTimeInMinutesSinceMidnight($episodeEndTime); $episodeEndDay = $episodeEndTime->format('N'); if ($episodeStartDay === $episodeEndDay) { if ($segmentStartTimeInMinutes >= $episodeStartTimeInMinutes && $segmentStartTimeInMinutes <= $episodeEndTimeInMinutes) { return true; } } else { if ($segmentStartTimeInMinutes + MINUTES_IN_DAY >= $episodeStartTimeInMinutes && $segmentStartTimeInMinutes <= $episodeEndTimeInMinutes || $segmentStartTimeInMinutes >= $episodeStartTimeInMinutes && $segmentStartTimeInMinutes <= $episodeEndTimeInMinutes + MINUTES_IN_DAY) { return true; } } return false; }
/** * @param PDO $dbConn * @param Episode $episodeObject * @return null */ public static function saveNewEpisode($dbConn, $episodeObject) { $startDateTimeObject = formatDateStringForDatabaseWrite($episodeObject->getStartTime()); $endDateTimeObject = formatDateStringForDatabaseWrite($episodeObject->getEndTime()); $columnNames = array(self::PLAYLIST_COLUMN_NAME, self::PROGRAM_COLUMN_NAME, self::PROGRAMMER_COLUMN_NAME, self::START_TIME_COLUMN_NAME, self::END_TIME_COLUMN_NAME, self::IS_PRERECORD_COLUMN_NAME, self::PRERECORD_COLUMN_NAME, self::IS_DRAFT_COLUMN_NAME); $values = array($episodeObject->getPlaylist()->getId(), $episodeObject->getProgram()->getId(), $episodeObject->getProgrammer()->getId(), $startDateTimeObject, $endDateTimeObject, $episodeObject->isPrerecord(), $episodeObject->getPrerecordDate(), true); return writeToDatabase::writeEntryToDatabase($dbConn, self::TABLE_NAME, $columnNames, $values); }
require_once "../../digital-logsheets-res/smarty/libs/Smarty.class.php"; require_once "../../digital-logsheets-res/php/database/manageSegmentEntries.php"; require_once "../../digital-logsheets-res/php/objects/Episode.php"; require_once "../../digital-logsheets-res/php/database/connectToDatabase.php"; require_once "../../digital-logsheets-res/php/objects/logsheetClasses.php"; // create object $smarty = new Smarty(); session_start(); //database interactions try { //connect to database $db = connectToDatabase(); $episodeId = $_SESSION['episodeId']; $episode = new Episode($db, $episodeId); $segments = $episode->getSegments(); $episodeEndTime = $episode->getEndTime(); $segments = computeSegmentDurations($segments, $episodeEndTime); foreach ($segments as $segment) { error_log("about to edit segment duration"); manageSegmentEntries::editExistingSegmentDuration($db, $segment); } $episodeAsArray = $episode->getObjectAsArray(); $segmentsForThisEpisode = manageSegmentEntries::getAllSegmentsForEpisodeId($db, $episodeId); for ($i = 0; $i < count($segmentsForThisEpisode); $i++) { $currentSegment = $segmentsForThisEpisode[$i]; $segmentsForThisEpisode[$i] = $currentSegment->getObjectAsArray(); } //close database connection $db = NULL; $smarty->assign("episode", $episodeAsArray); $smarty->assign("segments", $segmentsForThisEpisode);