Пример #1
0
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("", "&nbsp;");
            } 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("", "&nbsp;");
            }
        }
        echo "         </tr>";
    }
}
Пример #2
0
/**
 * @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;
}
Пример #3
0
    $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);