function generateWeeks($month_value, $year_value) { $first_day = date("w", mktime(0, 0, 0, $month_value, 1, $year_value)); $day_count = 1; $day_total = cal_days_in_month(CAL_GREGORIAN, $month_value, $year_value); // Week (row) 1 for ($week = 1; $week <= 1; $week++) { echo " <tr>"; for ($day = 0; $day <= 6; $day++) { if ($day < $first_day) { generateDay("", " "); } else { generateDay(determineColor($month_value, $year_value, $day_count), $day_count); $day_count++; } } echo " </tr>"; } // Weeks (rows) 2 to 4 for ($week = 2; $week <= 4; $week++) { echo " <tr>"; for ($day = 0; $day <= 6; $day++) { generateDay(determineColor($month_value, $year_value, $day_count), $day_count); $day_count++; } echo " </tr>"; } // Weeks (rows) 5 to 6 for ($week = 5; $week <= 6; $week++) { echo " <tr>"; for ($day = 0; $day <= 6; $day++) { if ($day_count <= $day_total) { generateDay(determineColor($month_value, $year_value, $day_count), $day_count); $day_count++; } else { generateDay("", " "); } } echo " </tr>"; } }
/** * @param $start * @param $end * @param $workingHours * @return array */ function generateCalendarData($start, $end, $workingHours) { date_default_timezone_set('Europe/Athens'); $requestedStart = new DateTime(); $requestedEnd = new DateTime(); $requestedStart->setTimestamp($start); $requestedStart->sub(new DateInterval('P3D')); $requestedEnd->setTimestamp($end); $workingHoursJSON = array(); foreach ($workingHours as $workingHour) { $startTerm = new DateTime($workingHour[TermFetcher::DB_TABLE . "_" . TermFetcher::DB_COLUMN_START_DATE]); $endTerm = new DateTime($workingHour[TermFetcher::DB_TABLE . "_" . TermFetcher::DB_COLUMN_END_DATE]); $dayOfYearStartTerm = intval($startTerm->format("z")) + 1; $dayOfYearEndTerm = intval($endTerm->format("z")) + 1; $dayOfYearStartRequested = intval($requestedStart->format("z")); $dayOfYearEndRequested = intval($requestedEnd->format("z")) + 1; $dayOfYearStart = $dayOfYearStartRequested < $dayOfYearStartTerm ? $dayOfYearStartTerm : $dayOfYearStartRequested; $dayOfYearEnd = $dayOfYearEndRequested > $dayOfYearEndTerm ? $dayOfYearEndRequested : $dayOfYearEndTerm; while ($dayOfYearStart <= $dayOfYearEnd + 1) { $weekOfYearStart = $dayOfYearStart / 7 + 1; $dayOfWeek = $dayOfYearStart % 7 + 1; switch ($dayOfWeek) { case 1: if ($workingHour[ScheduleFetcher::DB_COLUMN_MONDAY] == 1) { $workingHoursJSON[] = generateDay($startTerm, $endTerm, $weekOfYearStart, $dayOfWeek, $workingHour); } break; case 2: if ($workingHour[ScheduleFetcher::DB_COLUMN_TUESDAY] == 1) { $workingHoursJSON[] = generateDay($startTerm, $endTerm, $weekOfYearStart, $dayOfWeek, $workingHour); } break; case 3: if ($workingHour[ScheduleFetcher::DB_COLUMN_WEDNESDAY] == 1) { $workingHoursJSON[] = generateDay($startTerm, $endTerm, $weekOfYearStart, $dayOfWeek, $workingHour); } break; case 4: if ($workingHour[ScheduleFetcher::DB_COLUMN_THURSDAY] == 1) { $workingHoursJSON[] = generateDay($startTerm, $endTerm, $weekOfYearStart, $dayOfWeek, $workingHour); } break; case 5: if ($workingHour[ScheduleFetcher::DB_COLUMN_FRIDAY] == 1) { $workingHoursJSON[] = generateDay($startTerm, $endTerm, $weekOfYearStart, $dayOfWeek, $workingHour); } break; default: $dayOfYearStart++; } $dayOfYearStart++; } } return $workingHoursJSON; }
$location = $course["timeCollection"]['time'][0]['location']; $_remind = $course["reminder"]; if ($_remind != 0 && $_remind != '0') { $remindText = $_remind . 'H0M0S'; $remindText = str_replace(array('%DESCRIPTION%', '%REMINDTIME%'), array($location, $remindText), $remind_template); } else { $remindText = ""; } $DESCRIPTION = $course[""]; foreach ($course["timeCollection"]['time'] as $time) { $UID = hash("sha256", $userName . $_time . $SUMMARY . rand() . rand() . rand()); $startDate = generateDate($time['startYr'], $time['startMon'], $time['startDay']); $endDate = generateDate($time['endYr'], $time['endMon'], $time['endDay']); $startTime = generateTime($time['startHr'], $time['startMin']); $endTime = generateTime($time['endHr'], $time['endMin']); $day = generateDay($time['day']); $DTSTART = $startDate . "T" . $startTime; $DTEND = $startDate . "T" . $endTime; $UNTIL = $endDate . "T" . $endTime; $BYDAY = $day; $LOCATION = $location; $DESCRIPTION = $time['instructor']; $vevent = str_replace(array('%UID%', '%DTSTART%', '%DTEND%', '%UNTIL%', '%BYDAY%', '%DESCRIPTION%', '%LOCATION%', '%SUMMARY%', '%REMIND%'), array($UID, $DTSTART, $DTEND, $UNTIL, $BYDAY, $DESCRIPTION, $LOCATION, $SUMMARY, $remindText), $str_template); $ics .= $vevent; } } $ics .= $ics_end; require "data_process/connect.php"; $sql = "INSERT INTO JSON (content, did, pid, name, semester, time, raw) VALUES \n\t\t\t(:content, :did, :pid, :name, :semester, :time, :raw)"; try { $st = $conn->prepare($sql);