Ejemplo n.º 1
0
 /**
  * @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);