Linux cesa-www-main 6.1.0-49-cloud-amd64 #1 SMP PREEMPT_DYNAMIC Debian 6.1.174-1 (2026-05-26) x86_64
Apache/2.4.68 (Debian)
Server IP : 10.218.0.2 & Your IP : 216.73.216.28
Domains :
Cant Read [ /etc/named.conf ]
User : www-data
Terminal
Auto Root
Create File
Create Folder
Localroot Suggester
Backdoor Destroyer
Readme
/
var /
www /
cesa.co.za /
cesanet /
Delete
Unzip
Name
Size
Permission
Date
Action
BCE Home cover_files
[ DIR ]
drwxr-sr-x
2012-03-12 06:07
BCE Introduction_files
[ DIR ]
drwxr-sr-x
2012-03-12 06:07
BCE RESOURCE AND SUPPORT_files
[ DIR ]
drwxr-sr-x
2012-03-12 06:08
BCE RULES AND REGULATIONS_files
[ DIR ]
drwxr-sr-x
2012-03-12 06:07
BCE THE LEARNING PROGRAMME_files
[ DIR ]
drwxr-sr-x
2012-03-12 06:08
SpryAssets
[ DIR ]
drwxr-sr-x
2013-02-14 22:54
ajax
[ DIR ]
drwxr-sr-x
2026-08-20 14:43
assignments
[ DIR ]
drwxr-sr-x
2022-03-07 13:03
docthumbs
[ DIR ]
drwxr-sr-x
2022-03-14 09:40
facilitators
[ DIR ]
drwxr-sr-x
2012-01-18 08:00
guidelines
[ DIR ]
drwxr-sr-x
2021-04-29 08:34
images
[ DIR ]
drwxr-sr-x
2023-04-18 07:54
includes
[ DIR ]
drwxr-sr-x
2024-02-23 09:41
lightbox
[ DIR ]
drwxr-sr-x
2012-07-02 08:44
pdf
[ DIR ]
drwxr-sr-x
2012-03-15 12:53
pdf-viewer
[ DIR ]
drwxr-sr-x
2025-02-20 13:18
visual-countdown-timer
[ DIR ]
drwxr-sr-x
2021-11-03 09:27
activities.php
6.49
KB
-rw-r--r--
2024-02-23 09:36
activityadd.php
7.44
KB
-rw-r--r--
2024-02-23 09:36
advisory.php
1.37
KB
-rw-r--r--
2024-02-23 09:36
assignmentadd.php
43.1
KB
-rw-r--r--
2026-08-19 12:45
assignmentinfo.php
2.96
KB
-rw-r--r--
2025-02-24 16:01
assignmentpack.php
4.66
KB
-rw-r--r--
2024-02-23 09:36
assignmentpdf.php
3.64
KB
-rw-r--r--
2024-02-23 09:36
assignments.php
14.04
KB
-rw-r--r--
2026-06-24 12:03
assigsummary.php
12.25
KB
-rw-r--r--
2025-04-14 08:46
calendar.js
13.28
KB
-rw-r--r--
2024-02-23 09:36
calendar.php
502
B
-rw-r--r--
2024-02-23 09:47
cceregister.php
22.5
KB
-rw-r--r--
2013-10-09 08:40
changedates.php
1.35
KB
-rw-r--r--
2024-02-23 09:36
contacts.php
4.87
KB
-rw-r--r--
2025-06-26 12:42
contacts_students.php
2.34
KB
-rw-r--r--
2024-02-27 11:36
details.php
9.24
KB
-rw-r--r--
2025-02-06 10:38
document-pdf-proxy.php
1.95
KB
-rw-r--r--
2025-06-27 10:14
document-view.php
7.35
KB
-rw-r--r--
2025-06-27 12:42
download_student_agreement.php
1.71
KB
-rw-r--r--
2026-03-16 11:53
evaluations.php
6.85
KB
-rw-r--r--
2024-02-23 09:36
exam.php
47.02
KB
-rw-r--r--
2026-08-25 07:11
examresults.php
3.01
KB
-rw-r--r--
2026-02-17 09:45
extension.php
11.33
KB
-rw-r--r--
2026-08-19 12:45
feedback.php
3.91
KB
-rw-r--r--
2024-02-23 09:36
feedbackmsgs.php
5.04
KB
-rw-r--r--
2024-03-25 10:07
file-download.php
343
B
-rw-r--r--
2026-06-24 12:03
forgotpwd.php
2.57
KB
-rw-r--r--
2024-02-23 09:36
gallery.php
1.75
KB
-rw-r--r--
2024-02-23 09:36
guideline-view.php
812
B
-rw-r--r--
2026-02-17 09:45
guideline.php
1
KB
-rw-r--r--
2026-02-17 09:45
guideline_intro.php
14.2
KB
-rw-r--r--
2024-02-23 09:36
guideline_notes.php
2.35
KB
-rw-r--r--
2024-02-23 09:36
guideline_programme.php
39.82
KB
-rw-r--r--
2024-02-23 09:36
guideline_resources.php
21.47
KB
-rw-r--r--
2024-02-23 09:36
guideline_rules.php
44.97
KB
-rw-r--r--
2024-02-23 09:36
inc_dashboard.php
28.4
KB
-rw-r--r--
2026-08-20 12:16
inc_footer.php
412
B
-rw-r--r--
2025-02-20 13:01
inc_footer_html.php
59
B
-rw-r--r--
2024-02-23 09:36
inc_functions.php
1.86
KB
-rw-r--r--
2026-06-24 12:03
inc_guidelinemenu.php
944
B
-rw-r--r--
2024-02-23 09:36
inc_header.php
2.46
KB
-rw-r--r--
2025-02-20 13:01
inc_header_html.php
1.34
KB
-rw-r--r--
2024-02-23 09:36
inc_shared.php
27.07
KB
-rw-r--r--
2026-08-19 12:45
inc_sidebar.php
9.54
KB
-rw-r--r--
2026-05-13 15:17
index.php
8.47
KB
-rw-r--r--
2026-06-02 08:33
library-old.php
8.46
KB
-rw-r--r--
2024-02-16 11:19
library-render.php
11.09
KB
-rw-r--r--
2026-04-29 07:23
library.php
474
B
-rw-r--r--
2024-02-25 11:44
login.php
2.79
KB
-rw-r--r--
2025-02-06 10:39
logout.php
129
B
-rw-r--r--
2024-02-23 09:36
markmessagesread.php
546
B
-rw-r--r--
2024-02-23 09:36
messages.php
4.14
KB
-rw-r--r--
2026-05-05 11:48
modcontact.php
26.51
KB
-rw-r--r--
2026-07-30 15:46
module.php
2.78
KB
-rw-r--r--
2024-02-23 09:36
notices.php
2.73
KB
-rw-r--r--
2024-02-23 09:36
password.php
2.52
KB
-rw-r--r--
2024-02-23 09:36
pdfthumb.php
230
B
-rw-r--r--
2024-02-23 09:36
php_errors.log
14.11
KB
-rw-r--r--
2026-08-21 08:24
phpinfo.php
17
B
-rw-r--r--
2025-06-09 13:16
popups.php
1.71
KB
-rw-r--r--
2024-02-23 09:36
profile.php
14.69
KB
-rw-r--r--
2026-03-16 11:53
profile_mentor.php
4.23
KB
-rw-r--r--
2024-02-23 09:36
progress_report.php
2.53
KB
-rw-r--r--
2026-05-13 15:17
readmessage.php
2.49
KB
-rw-r--r--
2026-05-19 07:04
recommended.php
5.94
KB
-rw-r--r--
2024-02-16 11:18
resources.php
4.14
KB
-rw-r--r--
2024-02-23 09:36
results.php
1.54
KB
-rw-r--r--
2024-02-23 09:36
saveexam.php
5.72
KB
-rw-r--r--
2025-11-19 09:45
sentmessages.php
1.66
KB
-rw-r--r--
2024-03-27 09:30
style.css
26.86
KB
-rw-r--r--
2025-02-20 13:04
submittedactivities.php
2.98
KB
-rw-r--r--
2024-02-23 09:36
submittedassignments.php
7.78
KB
-rw-r--r--
2026-06-24 12:03
templates.php
2.08
KB
-rw-r--r--
2024-02-23 09:36
timetable-render.php
2.27
KB
-rw-r--r--
2025-02-20 13:03
timetable.php
476
B
-rw-r--r--
2024-03-16 16:02
v3_feedback_form.php
2.52
KB
-rw-r--r--
2026-05-27 08:23
v3_feedback_submit.php
2.55
KB
-rw-r--r--
2026-05-27 08:23
videos.php
4.06
KB
-rw-r--r--
2024-02-23 09:36
Save
Rename
<?php $prevMonthStart = new DateTime(); //$prevMonthStart->modify('-7 days'); $cceDocObj = new CCEDocuments($sqlf); $startDateTime = $prevMonthStart; $endDateTime = clone $startDateTime; $endDateTime->modify('+6 days'); $upcomingDocs = $cceDocObj->getUpcomingDocuments($startDateTime, $endDateTime, $_SESSION["StudentID"]); $startDateTime->modify('-14 days'); $endDateTime = new DateTime(); $previousDocs = $cceDocObj->getUpcomingDocuments($startDateTime, $endDateTime); $arrOverdue = GetOverdue($_SESSION["StudentID"], $_SESSION["ModulesEnrolled"]); $arrResubmissions = GetResubmissions($_SESSION["StudentID"], $_SESSION["ModulesEnrolled"]); //echo $_SESSION["StudentID"]; //exit; $AssignmentExtensionObj = new CCEStAssigExtensionRequest($sqlf); $arrExtensions = $AssignmentExtensionObj->findAllByStudent($_SESSION["StudentID"]); ?> <ul class="nav nav-tabs" id="myTab" role="tablist"> <li class="nav-item" role="presentation"> <button class="nav-link active" id="upcoming-documents" data-bs-toggle="tab" data-bs-target="#upcoming-documents-pane" type="button" role="tab" aria-controls="upcoming-documents-pane" aria-selected="true">Upcoming Documents (<?php echo count($upcomingDocs); ?>)</button> </li> <li class="nav-item" role="presentation"> <button class="nav-link" id="assignment-calendar-tab" data-bs-toggle="tab" data-bs-target="#assignment-calendar-tab-pane" type="button" role="tab" aria-controls="assignment-calendar-tab-pane" aria-selected="false">Assignment Calendar</button> </li> <li class="nav-item" role="presentation"> <button class="nav-link" id="overdue-assignments-tab" data-bs-toggle="tab" data-bs-target="#overdue-assignments-tab-pane" type="button" role="tab" aria-controls="overdue-assignments-tab-pane" aria-selected="false">Overdue Assignments (<?php echo count($arrOverdue); ?>)</button> </li> <li class="nav-item" role="presentation"> <button class="nav-link" id="resubmissions-tab" data-bs-toggle="tab" data-bs-target="#resubmissions-tab-pane" type="button" role="tab" aria-controls="resubmissions-tab-pane" aria-selected="false">Resubmissions (<?php echo count($arrResubmissions); ?>)</button> </li> <li class="nav-item" role="presentation"> <button class="nav-link" id="extensions-tab" data-bs-toggle="tab" data-bs-target="#extensions-tab-pane" type="button" role="tab" aria-controls="extensions-tab-pane" aria-selected="false">Extensions (<?php echo count($arrExtensions); ?>)</button> </li> <li class="nav-item" role="presentation"> <button class="nav-link" id="previous-documents" data-bs-toggle="tab" data-bs-target="#previous-documents-pane" type="button" role="tab" aria-controls="previous-documents-pane" aria-selected="false">Previous Documents (<?php echo count($previousDocs); ?>)</button> </li> </ul> <div class="tab-content" id="myTabContent"> <div class="tab-pane fade show active" id="upcoming-documents-pane" role="tabpanel" aria-labelledby="upcoming-documents" tabindex="0"> <?php if (count($upcomingDocs) > 0) { ?><div style="border:2px solid green; padding:5px"><p><b>The following documents are relevant to the next online session:</b></p> <table border="0" cellpadding="2" width="95%" align="center"> <tr style="border-bottom: solid 1px #009DDA;"> <?php $cellCnt = 0; foreach ($upcomingDocs as $row) { $bShow = true; if (!empty($row["ReleaseDate"]) && !empty($row["ReleaseTime"])) { if (strtotime($row["ReleaseDate"] . " " . $row["ReleaseTime"]) > strtotime("now")) { // echo 'Not showing document: ' . $row["DocumentName"] . ' because of release date<br>'; $bShow = false; } } if ($bShow && !empty($row["Students"])) { $arrStudentsAllowed = explode(",", $row["Students"]); $arrStudentsAllowed[] = 54; if (!in_array($_SESSION["StudentID"], $arrStudentsAllowed)) { $bShow = false; } } if ($bShow) { if ($cellCnt > 0 && $cellCnt % 2 == 0) { ?> </tr> <tr><td colspan="3"> </td></tr> <tr style="border-bottom: solid 1px #009DDA;" data-cell-count="<?php echo $cellCnt; ?>"> <?php } ?> <td valign="top" nowrap><?php echo date("d M", strtotime($row["AppliesToDate"])); ?></td> <td valign="top"><?php if (!empty($row["DocumentFile"])) { // echo $row['DisplayInline'] . ' inline!'; if (isset($row['DisplayInline']) && $row['DisplayInline'] > 0) { $target = ''; $docURL = '/cesanet/document-view.php?CCEDocumentID=' . $row['CCEDocumentID']; } else { $docURL = '/cceadmin/documents/' . $row['DocumentFile']; $target = 'target="_blank"'; } echo '<a href="' . $docURL . '" ' . $target . '>'; ?><img src="<?php $thumbfile = ""; if (true || empty($row["DocumentThumb"])) { $thumbfile = '/cesanet/images/book.jpg'; if (true || strtolower(substr($row["DocumentFile"], -4)) == ".pdf") { try { $thumbfile = CreateThumb($row["CCEDocumentID"], $row["DocumentFile"], '', $row); } catch (Exception $e) { } // if (empty($docthumb)) { // $thumbfile = '/cesanet/images/book.jpg'; // } else { // $thumbfile = '/cesanet/docthumbs/' . $docthumb; // } } } else { $thumbfile = $row["DocumentThumb"]; } echo $thumbfile; ?>" alt="<?php echo $row["DocumentName"]; ?>" height="40" border="0"<?php $size = getimagesize($thumbfile); } ?> hspace="2" /><?php if (!empty($row["DocumentFile"])) echo "</a>"; ?> </td> <td valign=top> <?php if (!empty($row["DocumentFile"])) echo '<a href="' . $docURL . '" ' . $target . '>'; echo $row["DocumentCode"] . ' - ' . $row["DocumentName"]; if (!empty($row["DocumentFile"])) echo "</a>"; ?><br> <?php if (!empty($row["PresenterName"])) echo "<br>" . $row["PresenterName"]; if (!empty($row["PresentationTime"])) echo "<br>" . $row["PresentationTime"]; ?> </td> <?php $cellCnt++; } else { // echo 'Not showing document: ' . $row["DocumentName"] . '<br>'; }//if } //while ?> </tr> </table> </div> <br> <?php } //upcoming documents ?> </div> <div class="tab-pane fade" id="assignment-calendar-tab-pane" role="tabpanel" aria-labelledby="assignment-calendar-tab" tabindex="1"> <p style="padding: 12px;">Due dates for assignments are <span style="background-color:#ffba6f">highlighted in orange</span>. Hover your mouse over the date to see the assignments.</p> <table border="0" width="95%" align="center" cellpadding="4" cellspacing="0"> <?php if (!isset($_GET["month"])) { $dtTrimesterStart = ""; $endDate = new \DateTime(); $endDate->modify('+1 months'); $sql = "SELECT MIN(SessionDate) AS FirstDate, MAX(SessionDate) AS LastDate, TrimesterNum FROM CCEWeeklySessions WHERE TrimesterNum IN ( SELECT MAX(TrimesterNum) AS Trimester FROM CCEWeeklySessions WHERE SessionDate<='" . $endDate->format("Y-m-d") . "' AND SessionDate>='" . date("Y-01-01") . "' )"; $sql = "SELECT MIN(SessionDate) AS FirstDate, MAX(SessionDate) AS LastDate, TrimesterNum FROM CCEWeeklySessions WHERE TrimesterNum IN ( SELECT MAX(TrimesterNum) AS Trimester FROM CCEWeeklySessions WHERE SessionDate<='" . $endDate->format("Y-m-d") . "' AND SessionDate>='" . date("Y-01-01") . "' ) AND SessionDate<='" . $endDate->format("Y-m-d") . "' AND SessionDate>='" . date("Y-01-01") . "'"; $rec = mysql_query($sql); // echo 'Please ignore debug info: ' . $sql . '<br />'; if ($row = mysql_fetch_assoc($rec)) { // var_dump($row); $dtTrimesterStart = $row["FirstDate"]; $iStartMonth = date("m", strtotime($row["FirstDate"])); $iEndMonth = date("m", strtotime($row["LastDate"])); $iTrimester = $row["TrimesterNum"]; if ($iTrimester <= 0) { $iTrimester = 1; } if ($iStartMonth == $iEndMonth) { $iEndMonth++; } } else { $iStartMonth = date("m"); $iEndMonth = intval($iStartMonth) + 2; $dtTrimesterStart = date("Y") . "-" . $iStartMonth . "-01"; } } else { $iStartMonth = $_GET["month"]; $iEndMonth = intval($iStartMonth) + 2; $dtTrimesterStart = date("Y") . "-" . $iStartMonth . "-01"; } if ($iEndMonth > 12) $iEndMonth = 12; $sql = "SELECT a.*, CASE WHEN ae.CCEExtensionDate IS NULL THEN a.DueDate ELSE ae.CCEExtensionDate END AS FinalDueDate " . "FROM CCEAssignments a " . "LEFT OUTER JOIN CCEStAssigExtensions ae ON a.CCEAssignmentID = ae.CCEAssignmentID AND ae.CCEStudentID = " . $_SESSION["StudentID"] . " " . "WHERE a.Archived=0 "; if ($_SESSION["StudentID"] != 54) { $sql .= " AND (a.ReleaseDate <= '" . date("Y-m-d") . "' OR a.ReleaseDate IS NULL)"; } $sql .= " AND a.DueDate>='" . $dtTrimesterStart . "' " . "ORDER BY a.DueDate, a.RefNum"; // echo 'Ignore debug info: ' . $sql . '<br />'; $rec = mysql_query($sql); ?> <tr> <td colspan="2"> <h2><?php echo $iStartMonth . '/' . date("Y") . ' - ' . $iEndMonth . '/' . date("Y"); ?></h2> </td> </tr> <?php for ($iMonth = $iStartMonth; $iMonth <= $iEndMonth; $iMonth++) { ?> <tr> <td align="center" valign="top"> <script language="javascript"> myCal = new CALENDAR(<?php echo date("Y"); ?>, <?php echo $iMonth; ?>); myCal.offset = 2; // start with Monday // Make Sat and Sun the same format as other days myCal.saFontColor = myCal.dFontColor; myCal.saBGColor = myCal.dBGColor; myCal.suFontColor = myCal.dFontColor; myCal.suBGColor = myCal.dBGColor; myCal.weekNumbers = false; myCal.dFontSize = 18; <?php $sList = ""; $sql = "SELECT ws.SessionDate " . "FROM CCEWeeklySessions ws " . "INNER JOIN CCESetup s ON (ws.ScheduleID = s.CurrentScheduleID) " . "WHERE MONTH(ws.SessionDate)=" . $iMonth . (!empty($iTrimester) ? " AND ws.TrimesterNum=" . $iTrimester : "") . " ORDER BY ws.SessionDate"; $recCal = mysql_query($sql); while ($rowCal = mysql_fetch_assoc($recCal)) { ?> myCal.viewEvent(<?php echo date("d", strtotime($rowCal["SessionDate"])); ?>, <?php echo date("d", strtotime($rowCal["SessionDate"])); ?>, "#94FA8E", "Online Session"); <?php } $arrDates = array(); if ($rec) { mysqli_data_seek($rec, 0); while ($row = mysql_fetch_assoc($rec)) { $sql = "SELECT COUNT(*) AS NumStudents " . "FROM CCEStudents JOIN CCEStudentCourses USING (CCEStudentID) " . "JOIN CCESetup ON (CCECourseScheduleID=CurrentScheduleID) " . "WHERE CCEStudents.Archived=0 " . "AND CCEStudents.ModulesEnrolled LIKE '%" . $row["CCEModuleID"] . "%' " . "AND CCEStudentID <> 54"; $recNS = mysql_query($sql); $rowNS = mysql_fetch_assoc($recNS); $iNumStudents = $rowNS["NumStudents"]; mysql_free_result($recNS); if (date("m", strtotime($row["DueDate"])) == $iMonth) { $sList = "<li>" . date("d M", strtotime($row["DueDate"])) . ": <a href='/cesanet/assignmentinfo.php?id=" . $row["CCEAssignmentID"] . "'>" . $row["RefNum"] . ": " . $row["AssignmentName"] . "</a>"; $sql = "SELECT COUNT(DISTINCT CCEStudentAssignments.CCEStudentID) AS NumSub " . "FROM CCEStudentAssignments JOIN CCEStudentCourses USING (CCEStudentID) " . "JOIN CCESetup ON (CCECourseScheduleID=CurrentScheduleID) " . "WHERE CCEAssignmentID=" . $row["CCEAssignmentID"] . " " . "AND CCEStudentAssignments.CCEStudentID <> 54 " . "AND YEAR(CCEStudentAssignments.DateSubmitted)=" . date("Y"); // echo 'Ignore debug info: ' . $sql . '<br />'; $recSub = mysql_query($sql); if (($rowSub = mysql_fetch_assoc($recSub))) { $sList .= "<br> <small>" . "<i>" . $rowSub["NumSub"] . " out of " . $iNumStudents . " students have submitted this assignment</i></small>"; } mysql_free_result($recSub); $extension = ''; if ($row["DueDate"] != $row["FinalDueDate"]) { $extDate = new DateTime($row["FinalDueDate"]); $extension = ' (Extension Granted Until: ' . $extDate->format('j F Y') . ')'; $sList .= '<br />' . $extension; } $sList .= "</li>"; $arrDates[date("m-d", strtotime($row["DueDate"])) . '_' . $row["RefNum"] . '_' . $row["CCEAssignmentID"]] = $sList; ?> myCal.viewEvent(<?php echo date("d", strtotime($row["DueDate"])); ?>, <?php echo date("d", strtotime($row["DueDate"])); ?>, "#ffba6f", "<?php echo $row["RefNum"] . ": " . $row["AssignmentName"]; ?>".$extension); <?php } if (strtotime($row["DueDate"]) < mktime(0)) { $dtResub = GetResubDate($row["CCEAssignmentID"]); if (!empty($dtResub) && (date("m", strtotime($dtResub)) == $iMonth)) { $sql = "SELECT COUNT(DISTINCT CCEStudentAssignments.CCEStudentID) AS NumSub FROM CCEStudentAssignments JOIN CCEStudentCourses USING (CCEStudentID) JOIN CCESetup ON (CCECourseScheduleID=CurrentScheduleID) WHERE CCEAssignmentID=" . $row["CCEAssignmentID"] . " AND YEAR(DateSubmitted)=" . date("Y") . " AND RulingCode='R'"; $recSub = mysql_query($sql); if (($rowSub = mysql_fetch_assoc($recSub)) && !empty($rowSub["NumSub"])) { $sList = "<li>" . date("d M", strtotime($dtResub)) . ": <a href='/cesanet/assignmentinfo.php?id=" . $row["CCEAssignmentID"] . "'>" . $row["RefNum"] . " Resubmissions Due</a>"; $iNumResubsDue = $rowSub["NumSub"]; $sql = "SELECT CCEStudentAssignments.CCEStudentID, COUNT(*) FROM CCEStudentAssignments JOIN CCEStudentCourses USING (CCEStudentID) JOIN CCESetup ON (CCECourseScheduleID=CurrentScheduleID) WHERE CCEAssignmentID=" . $row["CCEAssignmentID"] . " AND YEAR(DateSubmitted)=" . date("Y") . " GROUP BY CCEStudentAssignments.CCEStudentID HAVING COUNT(*)>1"; $recSub = mysql_query($sql); $sList .= "<br> <small><i>" . (mysql_num_rows($recSub) > $iNumResubsDue ? $iNumResubsDue : mysql_num_rows($recSub)) . " out of " . $iNumResubsDue . " students have re-submitted this assignment</i></small>"; $sList .= "</li>"; $arrDates[date("m-d", strtotime($dtResub)) . $row["RefNum"] . "_R"] = $sList; } mysql_free_result($recSub); ?> myCal.viewEvent(<?php echo date("d", strtotime($dtResub)); ?>, <?php echo date("d", strtotime($dtResub)); ?>, "#ffba6f", "<?php echo $row["RefNum"] . ": " . $row["AssignmentName"]; ?>"); <?php } } } } ?> document.write(myCal.create()); </script> </td> <td valign="top"> <ul><?php ksort($arrDates); echo implode("\r\n", $arrDates); ?></ul> </td></tr> <?php } //for month ?> </table> </div> <div class="tab-pane fade" id="overdue-assignments-tab-pane" role="tabpanel" aria-labelledby="overdue-assignments-tab" tabindex="2"> <?php if (!empty($_SESSION["StudentID"]) && !empty($arrOverdue)) { ?><div style="border:2px solid red; padding:5px"><p><b>NB: The following assignments are now <span style="color:red">OVERDUE</span>:</b></p> <ul><li> <?php echo implode("</li><li>", $arrOverdue); ?> </li></ul> </div> <?php } ?> </div> <div class="tab-pane fade" id="resubmissions-tab-pane" role="tabpanel" aria-labelledby="resubmissions-tab" tabindex="3"> <?php if (!empty($_SESSION["StudentID"]) && !empty($arrResubmissions)) { ?><p><b>NB: The following assignments must be resubmitted:</b></p> <ul><li> <?php echo implode("</li><li>", $arrResubmissions); ?> </li></ul> <?php } ?> </div> <div class="tab-pane fade" id="extensions-tab-pane" role="tabpanel" aria-labelledby="extensions-tab" tabindex="4"> <?php if (!empty($_SESSION["StudentID"]) && is_array($arrExtensions) && count($arrExtensions) > 0) { ?><p><b>NB: The following extensions have been applied for:</b></p> <ul> <?php foreach ($arrExtensions as $arrExtension) { $extensionDate = new DateTime($arrExtension['CCEExtensionDate']); $extensionApprovedString = 'Not Approved'; // Status A/P = approved (with or without penalty). Show the approved date even when // it is earlier than the requested date (convenor may grant a shorter extension). if (strlen((string) $arrExtension['ApprovedCCEExtensionDate']) > 0 || in_array($arrExtension['Status'], array('A', 'P'), true)) { $extensionApprovedDate = null; $approvedRaw = trim((string) $arrExtension['ApprovedCCEExtensionDate']); $requestedRaw = trim((string) $arrExtension['CCEExtensionDate']); if ($approvedRaw !== '') { $extensionApprovedDate = new DateTime($approvedRaw); } elseif ($requestedRaw !== '') { // Fallback: use requested date when status is approved but approved row date is empty. $extensionApprovedDate = new DateTime($requestedRaw); } if ($extensionApprovedDate instanceof DateTime) { $extensionApprovedString = $extensionApprovedDate->format('j F Y'); } else { $extensionApprovedString = 'Error reading approved date. The problem has been reported to our technical staff.'; $errorEmailBody = 'No approved date: ' . print_r($arrExtension, true); $errorEmailBodyHtml = nl2br(htmlspecialchars($errorEmailBody, ENT_QUOTES, 'UTF-8')); maill('cesa@igotafrica.com', 'Error on BCE Dashboard extensions', $errorEmailBodyHtml, null, array('isHTML' => true)); } } ?> <li> <a href="/cesanet/assignmentinfo.php?id=<?php echo $arrExtension['CCEAssignmentID']; ?>"><?php echo $arrExtension['RefNum']; ?>: <?php echo $arrExtension['AssignmentName']; ?></a> <br /> Requested: <?php echo $extensionDate->format('j F Y'); ?> <br /> Approved: <?php echo $extensionApprovedString; ?> </li> <?php } //foreach ?></ul> <?php } ?> </div> <div class="tab-pane fade" id="previous-documents-pane" role="tabpanel" aria-labelledby="previous-documents" tabindex="5"> <?php if (count($previousDocs) > 0) { ?><div style="border:2px solid green; padding:5px"><p><b>The following documents are relevant to the previous online session:</b></p> <table border="0" cellpadding="2" width="95%" align="center"> <tr style="border-bottom: solid 1px #009DDA;"> <?php $cellCnt = 0; foreach ($previousDocs as $row) { $bShow = true; if (!empty($row["ReleaseDate"]) && !empty($row["ReleaseTime"])) { if (strtotime($row["ReleaseDate"] . " " . $row["ReleaseTime"]) > strtotime("now")) { $bShow = false; } } if ($bShow && !empty($row["Students"])) { $arrStudentsAllowed = explode(",", $row["Students"]); $arrStudentsAllowed[] = 54; if (!in_array($_SESSION["StudentID"], $arrStudentsAllowed)) { $bShow = false; } } if ($bShow) { if ($cellCnt > 0 && $cellCnt % 2 == 0) { ?> </tr> <tr><td colspan="3"> </td></tr> <tr style="border-bottom: solid 1px #009DDA;" data-cell-count="<?php echo $cellCnt; ?>"> <?php } ?> <td valign="top" nowrap><?php echo date("d M", strtotime($row["AppliesToDate"])); ?></td> <td valign="top"><?php if (!empty($row["DocumentFile"])) echo '<a href="/cceadmin/documents/' . $row["DocumentFile"] . '" target="_blank">'; ?><img src="<?php $thumbfile = ""; if (true || empty($row["DocumentThumb"])) { $thumbfile = '/cesanet/images/book.jpg'; if (true || strtolower(substr($row["DocumentFile"], -4)) == ".pdf") { try { $thumbfile = CreateThumb($row["CCEDocumentID"], $row["DocumentFile"], '', $row); } catch (Exception $e) { } // if (empty($docthumb)) { // $thumbfile = '/cesanet/images/book.jpg'; // } else { // $thumbfile = '/cesanet/docthumbs/' . $docthumb; // } } } else { $thumbfile = $row["DocumentThumb"]; } echo $thumbfile; ?>" alt="<?php echo $row["DocumentName"]; ?>" height="40" border="0"<?php $size = getimagesize($thumbfile); ?> hspace="2" /><?php if (!empty($row["DocumentFile"])) echo "</a>"; ?> </td> <td valign=top><?php if (!empty($row["DocumentFile"])) echo '<a href="/cceadmin/documents/' . $row["DocumentFile"] . '" target="_blank">'; ?><?php echo $row["DocumentName"]; ?><?php if (!empty($row["DocumentFile"])) echo "</a>"; ?><br> <?php if (!empty($row["PresenterName"])) echo "<br>" . $row["PresenterName"]; if (!empty($row["PresentationTime"])) echo "<br>" . $row["PresentationTime"]; ?> </td> <?php $cellCnt++; } //if } //while ?> </tr> </table> </div> <br> <?php } //Previous documents ?> </div> </div> <?php